% Content-encoding: UTF-8
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage{xspace}
\setcounter{secnumdepth}{0}
\setcounter{tocdepth}{0}

%\newcommand{\code}[1]{\texttt{#1}}
%\newcommand{\ret}{\textsf{$<$ret$>$}\xspace}

\renewcommand{\reftextbefore}{auf der vorherigen Seite}
\renewcommand{\reftextfacebefore}{auf der gegenüberliegenden Seite}
\renewcommand{\reftextafter}{auf der nächsten Seite}
\renewcommand{\reftextfaceafter}{auf der gegenüberliegenden Seite}
\renewcommand{\figurename}{Abbildung}

\begin{document}

\title{RSC--FORTH V1.7 --- vintage computing}
\author{Michael Kalus}

\begin{document}
\maketitle

Neulich stolperte ich auf dem Dachboden über einen verstaubten Umzugskarton mit der Aufschrift "`Keller."' Weil grad etwas Zeit war öffnete ich den Karton und fand darin einige Platinen, darunter ein fein säuberlich verpacktes RSC--Forth Board. Ob es noch laufen würde? Aber da kein Anlass bestand, packte ich das Teil wieder ein, zurück in den Karton.

\begin{multicols}{2}
\section{Zufall}
Wie der Zufall es so wollte, traf ich auf Carsten Strotmann, der gerade vom Vintage Computer Festival in München zurückgekommen war. Er berichtet von dem Spa"s dort, die alten Rechner ans Laufen zu bringen. Davon angeregt, wollte ich es dann doch wissen, ging wieder auf den Dachboden und ans Werk. Die RSC--Platine sah noch sehr gut erhalten aus, keinen Kratzer hatte sie. Auch das separate Netzteil von damals, Marke Eigenbau, sah gut aus. Es war schnell aufgebaut und angeschlossen, die rote LED auf der Platine zeigte an, dass die Spannung da war, aber auf der seriellen Schnittstelle tat sich nichts.

\section{Hilfe}
Hilfe kam von einem Freund mit Speicheroszilloskop. Da war klar zu erkennen, dass alles da war: Die ROM--Adressen wurden abgefragt nach dem reset, der Quarz lief, und auf der seriellen Leitung waren tatsächlich Pegelwechsel zu erkennen. Eingefangen, zeigten sie eine Bit--Dauer, die auf Baud--Rate 2400 hinwies, und bei näherer Betrachtung wurde klar, dass 7--N--2 eingestellt werden musste am Terminal. Und siehe da, das ersehnte OK war da. Nach reset kam brav die Meldung  RSC--FORTH V1.7 und VLIST lieferte die altgewohnte Wordlist, ASSEMBLER VLIST ebenso. Also alles da und intakt.  Nun wurde erstmal der Forth--Kern ausgelesen. Zum einen als \\

\begin{verbatim}
HEX F400 0C00 DUMP 
\end{verbatim} 

und zum anderen als\\

\begin{verbatim} 
HEX F400 FFFF ADMP
\end{verbatim} 

Letzteres ist das Intel--Hex--Format, das alle Prommer lesen können. Freundlicherweise ist das ADMP ja schon im Entwicklungs--ROM des Forth mit drin. 

Fotos wurden gemacht, das VLIST gefilmt. Was man so alles kann heutzutage mit der Digitalkamera. Auch die Ausgaben des RSC--Forth in eine Datei zu sichern, alles auf USB--Stick an den Apple--Laptop zu transferieren --- all das, was man damals sich wünschte, es ist heute Realität. Die Textfiles lassen sich bequem austauschen, Bilder betrachten, und ins Internet stellen, per mail übermitteln. Und es wird auch klappen, auf dem Mac ein gforth zu starten, dort hinein das RSC--Forth zu laden, zu decompilieren und zu  simulieren. Eigentlich eine unglaubliche Leistung, die man kaum ermessen kann, wenn man mit Rechnern groß geworden ist, auf denen Windows 7 betrieben wird, Mac OSX und Linux und dergleichen, diese fetten Betriebssysteme die (fast) alles können. Diese Micros, wie der 6502 und Forth darin, waren die Anfänge davon. Man hat es geahnt, was damit so alles kommen könnte, von manchem geträumt, und auf etliches dann mit hingearbeitet.

\includegraphics[scale=0.23]{2011-02/RSC-Forth-Board}

\end{multicols}

\section{Links}
\url{http://forth-ev.de/filemgmt/singlefile.php?lid=372}\\ 

\newpage

\section{Nostalgiepaket}
Nun, nostalgisch Angehauchte finden das so Geborgene nun im Internet, in meiner drop--box --- auch so ein Ding, das vor noch nicht allzu langer Zeit nur Science Fiction gewesen ist. In dem Archiv \texttt{RSC\_Forth\_V1.7.zip}, das dort nun liegt befinden sich folgende Dateien:\\
\\
{\small
\texttt{6502\_FIG\_Forth.ASM   ( Assembler Quelle des FIG Forth zum Vergleich )\\
6502\_Forth\_Assembler.fs   ( Forth Quelle des Assemblers )\\
6502\_RSC\_Forth.ASM   ( Assembler Quelle des RSC Forth )\\
R1200-14\_Rockwell.jpg   ( Bild des Prozessors )\\
R65FRIP1.7.jpg   ( Bild des ROM )\\
RSC\_FORTH\_V17.bin   ( Binäres Image des ROM )\\
RSC\_FORTH\_V17\_VLIST.txt   ( Textausdruck des FORTH VLIST )\\
RSC\_FORTH\_V17\_VLIST\_ASSEMBLER.txt   ( Textausdruck des ASSEMBLER VLIST )\\ 
RSC\_FORTH\_V17\_admp\_0x2000\_0x3FFF.txt   ( Intel Hex Format )\\
RSC\_FORTH\_V17\_admp\_0xF400\_0xFFFF.txt   ( Intel Hex Format )\\
RSC\_FORTH\_V17\_dump\_0x2000\_0x3FFF.txt   ( Forthtypisches hex dump )\\
RSC\_FORTH\_V17\_dump\_0xF400\_0xFFFF.txt   ( Forthtypisches hex dump )\\
RSC\_Forth\_V17\_readme.txt ( Erklärungen )\\}
}
Viel Vergnügen damit.

\section{VLIST}
Zur Erinnerung hier mal das VLIST-Ergebnis. Der Forthkern passte in F400 bis FFFF also in 3071 Bytes, und das Entwicklungs ROM belegte die Adressen 0x2000 bis 0x4000, also  8192 bytes --- cool, oder?

{\small
\begin{verbatim}
COLD 
RSC-FORTH V1.7
VLIST 
  40B TASK          3852 ADMP          3813 ;DUMP         37DB FORMAT       
 368A FMTRK         3680 BANKEXECUTE   3670 BANKEEC!      3663 BANKC@       
 3658 BANKC!        364D EEC!          362A CASE:         360A MEMTOP       
 35FA SCDR          35EC SCSR          35DE SCCR          35D0 MCR          
 35C3 IER           35B6 IFR           35A9 PG            359D PF           
 3591 PE            3585 PD            3579 PC            356D PB           
 3561 PA            3555 NMIVEC        3545 IRQVEC        3535 INTVEC       
 3525 INTFLG        34FC C,CON         34B9 .S            34AC MON          
 3468 VLIST         33F9 INDEX         33AD LIST          33A4 ?            
 339E .             3398 .R            3391 D.            338A D.R          
 3382 #S            337B #             3375 SIGN          336C #>           
 3365 <#            335E SPACES        334B WHILE         3327 ELSE         
 330E IF            32F5 REPEAT        32DC AGAIN         32CC END          
 32B6 UNTIL         329E +LOOP         3286 LOOP          3271 DO           
 3264 THEN          3247 ENDIF         3233 BEGIN         3192 FORGET       
 3156 AUTOSTART     311D ?KERNEL       30C9 HWORD         3093 H/C          
 307B '             3075 SEEK          306C INIT          3063 DWRITE       
 3058 DREAD         304E SELECT        3043 DISK          3030 R/W          
 3024 B/SCR         3016 B/BUF         2FFA -BCD          2FD6 -->          
 2FA6 LOAD          2F4D MESSAGE       2F1C >LINE         2F08 .LINE        
 2EE4 (LINE)        2EA1 DUMP          2E76 FLUSH         2E16 BLOCK        
 2DCC BUFFER        2DA7 EMPTY-BUFFERS  2D7F UPDATE        2D4E +BUF         
 2D45 M/MOD         2D3B */            2D34 */MOD         2D2A MOD          
 2D22 /             2D1C /MOD          2D13 *             2D0D M/           
 2D06 M*            2CFF MAX           2CF7 MIN           2CEF DABS         
 2CE6 ABS           2CDE D+-           2CD6 +-            2CCF S->D         
 2CC6 COLD          2C59 ABORT         2C2A QUIT          2C18 (            
 2C06 DEFINITIONS   2BEE ASSEMBLER     2BD6 FORTH         2BA4 VOCABULARY   
 2B8A IMMEDIATE     2B3A INTERPRET     2B0F ?STACK        2AF2 DLITERAL     
 2ABF LITERAL       2AA1 [COMPILE]     29ED CREATE        29C4 ID.          
 2987 ERROR         2973 (ABORT)       2945 -FIND         28ED NUMBER       
 28E2 (NUMBER)      2890 WORD          2887 HOLD          287E BLANKS       
 2873 ERASE         2869 FILL          2842 
\end{verbatim}
}
\end{document}


