% 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}