% Content-encoding: UTF-8 \documentclass[ngerman]{article} \usepackage[utf8]{inputenc} \usepackage{multicol,babel} \setcounter{secnumdepth}{0} \setcounter{tocdepth}{0} \begin{document} \renewcommand{\figurename}{Tabelle} \title{Kleine Helfer:$\!$ Dump, modulo base und mit Lineal} \ifx\shorttitle\undefined\else \shorttitle{DUMP mit Lineal} \fi \author{Adolf Krüger, Michael Kalus} \maketitle Das Wort dump listet Werte aus dem RAM auf. Beginnend bei der Startadresse holt es aufsteigend Byte für Byte aus dem Speicher und zeigt diese zeilenweise an. Vor jeder Zeile wird die Adresse angegeben, von der die Bytes stammen. Daneben wird dieselbe Bytefolge in ASCII-Zeichen wiedergegeben. \begin{multicols}{2} So hat es sich eingebürgert. Nützlich finde ich die Darstellung der Werte passend zur verwendeten Zahlenbasis, wie sie in der Uservariablen base abgelegt ist. Und die Länge der Zeile ist dabei modulo base, das erleichtert die Orientierung. Ein Lineal über der Liste nummeriert die Position der Zelle. Es wird immer mindestens eine ganze Zeile angezeigt. Gewöhnlich belasse ich solche tools wie dump nicht in der Applikation, aber sie werden bei der Entwicklung benötigt und vorübergehend dazugeladen. Darum hat es sich bei mir eingebürgert, solch ein tool am Stück zu codieren, um nicht Gefahr zu laufen, die einzelnen Teile zu verlieren oder inkompatible Teile zu laden. Drum hier der Code unfaktorisiert als Modul. \end{multicols} \vfill \begin{quote} \begin{listing}{1} : dump ( addr n -- ) cr cell 2* spaces over \ print a ruler base @ 0 do i over + base @ mod cell .r loop 2 spaces base @ 0 do i over + base @ mod 1 .r loop drop \ dump bytes 0 ?do cr dup 0 cell 2* d.r space \ print line of bytes base @ 0 do i over + c@ cell .r loop space \ print same bytes in ascii again base @ 0 do i over + c@ $7F and dup $20 < if drop $2E then emit loop key? if leave then base @ + base @ +loop cr drop ; \end{listing} \end{quote} \vfill \begin{center} \includegraphics[width=0.8\textwidth]{2009-03/rulerdump} \end{center} \vfill \section{Links} \url{http://www.forth-ev.de/wiki/doku.php/words:dump} \end{document}