C 64
Tips & Tricks

RAM-Floppy

Wer kennt das nicht: ein paar Veränderungen an einem Programm — eine Zeile rein, eine andere raus — und nichts geht mehr. Das lästige Neuladen des Originalprogramms von Diskette können Sie ab jetzt vergessen.

Ist ein Programm mal wieder zu Tode editiert, werden Sie nun nicht mehr von den langen Ladezeiten der 1541 in Ihrem Programmierdrang gebremst. Mit »RAM-Floppy« kann ein Programm bearbeitet werden, während man eine Kopie davon im RAM hat. In Sekundenschnell kann die Kopie in den Basic-Speicher gebracht oder mit der Originalversion vertrauscht werden. Ganz einfach durch Eingabe von »@V« oder »@T«. Numerische Variablen bleiben dabei erhalten. Die »RAM-Floppy« besitzt eine Speicherkapazität von maximal 25 KByte. Der Speicher beginnt ab Adresse 40960.

Ein Problem ergibt sich im Speicherbereich des Kernal- und Basic-ROMs. Ein POKE-Befehl schreibt ins RAM, während die PEEK-Funktion auf das ROM zugreift. Noch komplizierter sieht es beim Zeichen-ROM und den I/O-Bausteinen aus. Wie Sie vielleicht aus unserem Grafikkurs wissen, gibt es in diesen Bereichen drei Speicheretagen. Der Inhalt der Zelle 1 regelt den Zugriff des Computers auf die verschiedenen Speicherebenen. Werden die Bits 0 und 1 in Adresse 1 gelöscht, sieht der Computer nur noch das RAM. Basic- und Kernal-ROM sind verschwunden. Löschen Sie diese Bits deshalb nur durch ein Maschinenspracheprogramm, wenn vorher Ein- und Ausgaben gesperrt wurden. Dies wird durch Setzen des Interruptregisters erreicht.

Das Maschinenprogramm besteht aus drei Teilen. Im Bereich von 40704 bis 40768 erfolgt die Auswertung der Befehle von »RAM-Floppy« und der Aufruf der beiden Unterprogramme, die das Tauschen oder Verschieben der Basic-Programme erledigen.

Das abgedruckte Basic-Programm POKEt das Maschinenprogramm ab Adresse 40704. Mit SYS 40704 wird es initialisiert.

Wie bereits erwähnt, hat die »RAM-Floppy« eine Kapazität von 25 KByte. Das Programm im Basic-Speicher kann zwar 38 KByte lang sein, läßt sich dann allerdings nicht mehr vollständig verschieben oder vertauschen. Der Speicherbedarf sollte auch bei Programmen mit vielen Variablen nicht außer acht gelassen werden. Bei langen Programmen mit vielen Variablen kann es durchaus vorkommen, daß die Programme zwar getauscht, die Variablen allerdings nicht mehr übernommen werden können.

(Uwe Klatt/hm)
0 rem**********************************
1 rem*          ram-floppy            *
2 rem**********************************
3 rem*  uwe klatt                     *
4 rem*  billerbecker str. 27          *
5 rem*  4939 steinheim                *
6 rem*  tel. 05233/5672               *
7 rem**********************************
8 poke53280,0:poke53281,11
9 poke646,8
10 print"bitte warten"
11 rem *****************************
12 rem *** datas  lesen          ***
13 rem *****************************
14 fori=40704to40768:reada:pokei,a:s=s+a:next
15 ifs<>6567thenend
16 fori=40784to40849:reada:pokei,a:s=s+a:next
17 ifs<>14392thenend
18 fori=40853to40902:reada:pokei,a:s=s+a:next
19 ifs<>20412thenend
20 rem *****************************
21 rem ***        menue          ***
22 rem *****************************
23 printchr$(147)
24 print"{rvon}                                        ";
25 print"{rvon} ram-floppy 25.5 kbyte                  ";
26 print"{rvon}                                        "
27 print"'@v'  verschiebt programm in  ram-floppy"
28 print"'@t'  vertauscht programm mit ram-floppy"
29 rem *****************************
30 rem *** mc programm starten   ***
31 rem *****************************
32 sys40704:new
33 rem *****************************
34 rem *** datas fuer 1. mc teil ***
35 rem *****************************
36 data169,159,133,56,133,52,169,0,133,55,169,21,141,8,3,169
37 data159,141,9,3,96,32,115,0,240,4,201,64,240,3,76,231
38 data167,32,115,0,201,84,240,7,201,86,240,12,76,8,175,32
39 data115,0,32,80,159,76,174,167,32,115,0,32,149,159,76,174
40 data167
41 rem *****************************
42 rem *** datas fuer 2. mc teil ***
43 rem *****************************
44 data169,0,133,45,169,104,133,46,120,165,1,41,252,133,1,169
45 data0,133,98,133,100,141,0,160,169,160,133,101,169,8,133,99
46 data162,96,160,0,177,98,133,102,177,100,145,98,165,102,145,100
47 data200,208,241,230,99,230,101,202,208,232,165,1,9,3,133,1
48 data88,96
49 rem *****************************
50 rem *** datas fuer 3. mc teil ***
51 rem *****************************
52 data120,165,1,41,252,133,1,169,0,133,98,133,100,141,0,160
53 data169,160,133,101,169,8,133,99,162,96,160,0,177,98,145,100
54 data200,208,249,230,99,230,101,202,208,240,165,1,9,3,133,1
55 data88,96
Listing zu »Ram-Floppy«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →