C 64
Multi-Programm-System

M-P-S: Multi-Programm-System – Mehr als 30 Programme gleichzeitig im Speicher

Wer hat nicht schon den Wunsch verspürt, mehr als ein Programm gleichzeitig im Speicher zu haben. M-P-S erlaubt sogar bis zu 32 verschiedene Basic-Programme. Dafür stehen 42 KByte(!) freier Basic-Speicher zur Verfügung. Jedes Programm kann unabhängig von einem anderen aufgerufen und gestartet werden. Zu jeder Zeit behalten Sie den Überblick über die im Computer stehenden Programme. Auch Directories lassen sich permanent im Speicher halten. Eine tolle Sache.

M-P-S bietet die Möglichkeit, mehr als nur ein Basic-Programm im Speicher zu halten. Vorgesehen ist eine Verwaltung von maximal 32 Basic-Programmen, wobei die Anzahl der tatsächlich speicherbaren Programme aber auch von deren Umfang abhängt. Jedes Programm erhält eine Kennummer, die zusammen mit den Programmnamen, Anfangs- und Endadresse in einem Inhaltsverzeichnis abgelegt wird. Durch die Eingabe der Kennummer kann dann jedes einzelne Basic-Programm aufgerufen werden. Für die Basic-Programme stehen etwa 42-KByte zur Verfügung. Dies wurde dadurch erreicht, daß Tabellen und Programmspeicher teilweise in den RAM-Bereich unter dem ROM gelegt wurde.

Um die Länge von M-P-S in Grenzen zu halten, wurde die Länge der Befehlswörter auf drei Buchstaben begrenzt.

Die Befehle:
1. OFF
2. STO(Store)
3. REC(Recall)
4. DSP (Display)
5. SPA (Space)
6. DEL(Delete)

1. OFF

OFF bewirkt ein Abschalten von M-P-S. Möchte man anschließend M-P-S wieder aktivieren, so gibt es zwei Möglichkeiten:

a) Die Eingabe von 8Y8 51200 bewirkt einen Kaltstart Alle Pointer werden neu gesetzt Das Inhaltsverzeichnis wird gelöscht
b) Die Eingabe von 8YS 51297 bewirkt einen Warmstart Inhaltsverzeichnis und Pointer bleiben erhalten.

2. STO"Programmname",X

Mit STO wird ein Basic-Programm in einen bestimmten RAM-Bereich abgespeichert (verschoben). Der Programmname darf maximal 16 Zeichen lang sein. X ist eine Zahl zwischen 0 und 31. Sie dient als Trennmarke für die einzelnen Programme. Am besten fängt man bei 0 an und erhöht X mitjedem weiteren Programm um 1.
Beispiel:
STO"Test T",0
STO"Test 2",1
STO"Test 3",2

3. RECN

Mit REC kann ein abgespeichertes Programm aufgerufen werden. N ist hierbei die Kennummer (siehe 4. DSP). Anschließend kann man LIST oder RUN eingeben.
Beispiel:
REC0
REC1
REC2

4. DSP

DSP gibt das Inhaltsverzeichnis der im Speicher stehenden Programme auf dem Bildschirm aus. Dabei erscheinen Kennnummer, Programmname und belegter Speicherbereich.
Beispiel:

0. »Test 1« $C7FF - $C600
Kennummer Name Anfangsadresse Endadresse+1

5. SPA

SPA gibt die Anfangs(immer $0801)- und Endadresse des gerade lauffähigen Basicgrogramms, sowie dessen Länge in Bytes an. Man kann so feststellen, ob das Programm noch verschoben werden kann.
Beispiel (nach NEW):
SPA
$0801-$0803/3Bytes

6. DEL

DEL löscht das Inhaltsverzeichnis und setzt die Pointer neu. Solange man mit STO keine neuen Programme eingibt, kann man die alten noch mit REC aufrufen.

Hinweise:

Folgendes sollte bei der Benutzung von M-P-S beachtet werden:
  1. Die Basic-Programme, die abgespeichert und später auch gestartet werden sollen, dürfen keine Maschinenprogramme enthalten. Ansonsten besteht die Möglichkeit, daß das Programm M-P-S selbst, Tabellen oder Basic-Programme überschrieben werden und so nicht mehr lesbar sind.
  2. Bei REC dürfen nur tatsächlich vorhandene Kennummern eingegeben werden. Gibt man Nummern ein, zu denen kein Programm vorhanden ist, so führt dies meist zum Systemabsturz.

Adressenbelegung:

M-P-S belegt: $C800-$CC8F (1167 Bytes)
Befehl
OFF:$C8F1-$C8FD
SPA:$C930-$C97E
STO:$C97F-$CA77
DSP:$CA78-$CB4D
REC:$CB4E-$CBDD
DEL:$CC24-$CC5C

Arbeitsspeicher und Pointer:$CC90-$CC99

Speicher für Programmnamen ab:$F000
Tabelle der Anfangs- und Endadressen ab:$F800

Speicher für Basic-Programme ab:$C7FF (abnehmend)

(Kasem Mossavi / gk)
0 rem  ********************
1 rem  *       m-p-s      *
2 rem  *       -----      *
3 rem  *  k.mossavi       *
4 rem  *  kirchweg 24     *
5 rem  *  3008 garbsen 1  *
6 rem  *  tel.05137/71767 *
7 rem  ********************
8 :
9 :
10 print"{clr}moment bitte..."
20 fori=51200to52367
30 read a:pokei,a:l=l+a
40 nexti
50 ifl<>157782thenprint"fehler in datas !":end
60 sys51200
61 data169,0,141,32,208,141,33,208,169,1,141,134,2,169,23,160,200,32,30
62 data171,76,93,204,147,32,32,32,32,32,32,42,42,42,32,77,85,76,84,73,45
63 data80,82,79,71,82,65,77,77,45,83,89,83,84,69,77,32,42,42,42,13,13,32
64 data32,32,32,32,32,32,32,32,32,40,67,41,32,66,89,32,75,46,77,79,83,83
65 data65,86,73,32,32,49,57,56,52,13,13,13,0,169,110,160,200,141,4,3,140
66 data5,3,76,116,164,162,0,160,0,185,0,2,221,190,200,240,17,189,190,200
67 data208,3,76,187,200,185,0,2,232,232,232,76,117,200,232,200,185,0,2,221
68 data190,200,240,5,202,136,76,130,200,232,200,185,0,2,221,190,200,240
69 data7,202,202,136,136,76,130,200,189,215,200,141,185,200,232,189,215
70 data200,141,186,200,76,48,201,76,124,165,79,70,70,83,80,65,83,84,79,68
71 data83,80,82,69,67,68,69,76,69,88,67,0,0,0,0,0,0,241,200,0,48,201,0,127
72 data201,0,120,202,0,78,203,0,36,204,0,99,204,0,255,255,0,169,124,160
73 data165,141,4,3,140,5,3,76,116,164,72,74,74,74,74,32,22,201,170,104,41
74 data15,32,22,201,72,138,32,210,255,104,76,210,255,24,105,246,144,2,105
75 data6,105,58,96,169,36,32,210,255,165,253,32,254,200,165,254,32,254,200
76 data96,169,13,32,210,255,169,1,162,8,133,254,134,253,32,32,201,169,45
77 data32,210,255,165,45,166,46,133,254,134,253,32,32,201,169,32,32,210
78 data255,169,47,32,210,255,169,32,32,210,255,165,46,56,233,8,133,98,165
79 data45,133,99,32,209,189,169,119,160,201,32,30,171,76,116,164,32,66,89
80 data84,69,83,13,0,230,122,230,122,230,122,169,34,32,255,174,174,144,204
81 data172,145,204,232,208,1,200,142,164,201,140,165,201,160,0,185,4,2,201
82 data34,240,16,141,11,240,238,164,201,208,3,238,165,201,200,192,16,208
83 data233,152,24,101,122,133,122,230,122,32,253,174,32,158,183,224,32,144
84 data3,76,72,178,173,164,201,172,165,201,141,213,201,140,214,201,142,11
85 data240,169,1,141,238,201,169,8,141,239,201,173,146,204,174,147,204,141
86 data241,201,142,242,201,173,249,10,141,68,194,238,238,201,208,3,238,239
87 data201,206,241,201,208,3,206,242,201,173,238,201,197,45,208,227,173
88 data239,201,197,46,208,220,174,148,204,172,149,204,173,146,204,142,33
89 data202,140,34,202,141,4,248,232,208,1,200,173,147,204,142,49,202,140
90 data50,202,141,5,248,232,208,1,200,173,241,201,142,65,202,140,66,202
91 data141,6,248,232,208,1,200,173,242,201,142,81,202,140,82,202,141,7,248
92 data232,208,1,200,142,148,204,140,149,204,173,241,201,174,242,201,141
93 data146,204,142,147,204,173,164,201,174,165,201,141,144,204,142,145,204
94 data76,116,164,169,13,32,210,255,169,1,162,240,141,161,202,142,162,202
95 data162,248,142,208,202,162,0,138,141,207,202,72,169,0,32,205,189,32
96 data222,203,120,169,53,133,1,173,1,240,162,55,134,1,88,201,255,208,3
97 data76,61,203,201,32,144,14,32,210,255,238,161,202,208,3,238,162,202
98 data76,155,202,169,34,32,210,255,32,238,203,120,169,53,133,1,173,0,248
99 data133,254,174,207,202,172,208,202,232,208,1,200,142,228,202,140,229
100 data202,173,5,248,133,253,32,247,203,169,45,32,14,204,174,228,202,172
101 data229,202,232,208,1,200,142,1,203,140,2,203,173,6,248,133,254,174,1
102 data203,172,2,203,232,208,1,200,142,22,203,140,23,203,173,7,248,133,253
103 data232,208,1,200,142,207,202,140,208,202,32,247,203,104,168,200,152
104 data72,170,169,13,32,5,204,238,161,202,208,3,238,162,202,76,147,202,169
105 data20,32,210,255,32,210,255,32,210,255,32,210,255,76,116,164,32,84,203
106 data76,116,164,230,122,230,122,230,122,32,158,183,134,251,169,4,133,252
107 data169,0,133,253,162,8,70,252,144,3,24,101,251,106,102,253,202,208,243
108 data165,253,141,136,203,169,248,141,137,203,160,0,120,169,53,133,1,185
109 data0,248,153,150,204,200,192,4,208,245,169,54,133,1,88,173,150,204,141
110 data174,203,173,151,204,141,175,203,169,1,141,177,203,169,8,141,178,203
111 data173,60,197,141,196,10,206,174,203,208,3,206,175,203,238,177,203,208
112 data3,238,178,203,173,174,203,205,152,204,208,226,173,175,203,205,153
113 data204,208,218,173,177,203,133,45,32,28,204,133,46,96,169,46,32,210
114 data255,169,32,32,210,255,169,34,32,210,255,96,169,32,32,210,255,32,210
115 data255,96,169,55,133,1,88,32,32,201,120,169,53,133,1,96,160,55,132,1
116 data88,32,210,255,96,160,55,132,1,88,32,210,255,120,169,53,133,1,96,160
117 data55,132,1,173,178,203,96,32,42,204,76,116,164,169,0,141,144,204,141
118 data148,204,169,240,141,145,204,169,255,141,146,204,169,199,141,147,204
119 data169,248,141,149,204,160,0,169,255,153,0,240,153,0,241,153,0,242,153
120 data0,243,153,0,244,200,208,238,96,32,42,204,76,107,204,32,84,203,169
121 data138,76,231,167,162,1,160,6,24,32,240,255,160,0,169,61,32,210,255
122 data200,192,29,208,248,169,13,32,210,255,32,210,255,32,210,255,32,210
123 data255,76,97,200
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →