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 SYS 51200 bewirkt einen Kaltstart Alle Pointer werden neu gesetzt Das Inhaltsverzeichnis wird gelöscht
b) Die Eingabe von SYS 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 mit jedem 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
  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 FOR I=51200 TO52367 
 30 READ A:POKE I,A:L=L+A 
 40 NEXT I 
 50 IF L<>157782 THENPRINT"FEHLER IN DATAS !":END 
 60 SYS 51200 
 61 DATA 169,0,141,32,208,141,33,208,169,1,141,134,2,169,23,160,200,32,30 
 62 DATA 171,76,93,204,147,32,32,32,32,32,32,42,42,42,32,77,85,76,84,73,45 
 63 DATA 80,82,79,71,82,65,77,77,45,83,89,83,84,69,77,32,42,42,42,13,13,32 
 64 DATA 32,32,32,32,32,32,32,32,32,40,67,41,32,66,89,32,75,46,77,79,83,83 
 65 DATA 65,86,73,32,32,49,57,56,52,13,13,13,0,169,110,160,200,141,4,3,140 
 66 DATA 5,3,76,116,164,162,0,160,0,185,0,2,221,190,200,240,17,189,190,200 
 67 DATA 208,3,76,187,200,185,0,2,232,232,232,76,117,200,232,200,185,0,2,221 
 68 DATA 190,200,240,5,202,136,76,130,200,232,200,185,0,2,221,190,200,240 
 69 DATA 7,202,202,136,136,76,130,200,189,215,200,141,185,200,232,189,215 
 70 DATA 200,141,186,200,76,48,201,76,124,165,79,70,70,83,80,65,83,84,79,68 
 71 DATA 83,80,82,69,67,68,69,76,69,88,67,0,0,0,0,0,0,241,200,0,48,201,0,127 
 72 DATA 201,0,120,202,0,78,203,0,36,204,0,99,204,0,255,255,0,169,124,160 
 73 DATA 165,141,4,3,140,5,3,76,116,164,72,74,74,74,74,32,22,201,170,104,41 
 74 DATA 15,32,22,201,72,138,32,210,255,104,76,210,255,24,105,246,144,2,105 
 75 DATA 6,105,58,96,169,36,32,210,255,165,253,32,254,200,165,254,32,254,200 
 76 DATA 96,169,13,32,210,255,169,1,162,8,133,254,134,253,32,32,201,169,45 
 77 DATA 32,210,255,165,45,166,46,133,254,134,253,32,32,201,169,32,32,210 
 78 DATA 255,169,47,32,210,255,169,32,32,210,255,165,46,56,233,8,133,98,165 
 79 DATA 45,133,99,32,209,189,169,119,160,201,32,30,171,76,116,164,32,66,89 
 80 DATA 84,69,83,13,0,230,122,230,122,230,122,169,34,32,255,174,174,144,204 
 81 DATA 172,145,204,232,208,1,200,142,164,201,140,165,201,160,0,185,4,2,201 
 82 DATA 34,240,16,141,11,240,238,164,201,208,3,238,165,201,200,192,16,208 
 83 DATA 233,152,24,101,122,133,122,230,122,32,253,174,32,158,183,224,32,144 
 84 DATA 3,76,72,178,173,164,201,172,165,201,141,213,201,140,214,201,142,11 
 85 DATA 240,169,1,141,238,201,169,8,141,239,201,173,146,204,174,147,204,141 
 86 DATA 241,201,142,242,201,173,249,10,141,68,194,238,238,201,208,3,238,239 
 87 DATA 201,206,241,201,208,3,206,242,201,173,238,201,197,45,208,227,173 
 88 DATA 239,201,197,46,208,220,174,148,204,172,149,204,173,146,204,142,33 
 89 DATA 202,140,34,202,141,4,248,232,208,1,200,173,147,204,142,49,202,140 
 90 DATA 50,202,141,5,248,232,208,1,200,173,241,201,142,65,202,140,66,202 
 91 DATA 141,6,248,232,208,1,200,173,242,201,142,81,202,140,82,202,141,7,248 
 92 DATA 232,208,1,200,142,148,204,140,149,204,173,241,201,174,242,201,141 
 93 DATA 146,204,142,147,204,173,164,201,174,165,201,141,144,204,142,145,204 
 94 DATA 76,116,164,169,13,32,210,255,169,1,162,240,141,161,202,142,162,202 
 95 DATA 162,248,142,208,202,162,0,138,141,207,202,72,169,0,32,205,189,32 
 96 DATA 222,203,120,169,53,133,1,173,1,240,162,55,134,1,88,201,255,208,3 
 97 DATA 76,61,203,201,32,144,14,32,210,255,238,161,202,208,3,238,162,202 
 98 DATA 76,155,202,169,34,32,210,255,32,238,203,120,169,53,133,1,173,0,248 
 99 DATA 133,254,174,207,202,172,208,202,232,208,1,200,142,228,202,140,229 
 100 DATA 202,173,5,248,133,253,32,247,203,169,45,32,14,204,174,228,202,172 
 101 DATA 229,202,232,208,1,200,142,1,203,140,2,203,173,6,248,133,254,174,1 
 102 DATA 203,172,2,203,232,208,1,200,142,22,203,140,23,203,173,7,248,133,253 
 103 DATA 232,208,1,200,142,207,202,140,208,202,32,247,203,104,168,200,152 
 104 DATA 72,170,169,13,32,5,204,238,161,202,208,3,238,162,202,76,147,202,169 
 105 DATA 20,32,210,255,32,210,255,32,210,255,32,210,255,76,116,164,32,84,203 
 106 DATA 76,116,164,230,122,230,122,230,122,32,158,183,134,251,169,4,133,252 
 107 DATA 169,0,133,253,162,8,70,252,144,3,24,101,251,106,102,253,202,208,243 
 108 DATA 165,253,141,136,203,169,248,141,137,203,160,0,120,169,53,133,1,185 
 109 DATA 0,248,153,150,204,200,192,4,208,245,169,54,133,1,88,173,150,204,141 
 110 DATA 174,203,173,151,204,141,175,203,169,1,141,177,203,169,8,141,178,203 
 111 DATA 173,60,197,141,196,10,206,174,203,208,3,206,175,203,238,177,203,208 
 112 DATA 3,238,178,203,173,174,203,205,152,204,208,226,173,175,203,205,153 
 113 DATA 204,208,218,173,177,203,133,45,32,28,204,133,46,96,169,46,32,210 
 114 DATA 255,169,32,32,210,255,169,34,32,210,255,96,169,32,32,210,255,32,210 
 115 DATA 255,96,169,55,133,1,88,32,32,201,120,169,53,133,1,96,160,55,132,1 
 116 DATA 88,32,210,255,96,160,55,132,1,88,32,210,255,120,169,53,133,1,96,160 
 117 DATA 55,132,1,173,178,203,96,32,42,204,76,116,164,169,0,141,144,204,141 
 118 DATA 148,204,169,240,141,145,204,169,255,141,146,204,169,199,141,147,204 
 119 DATA 169,248,141,149,204,160,0,169,255,153,0,240,153,0,241,153,0,242,153 
 120 DATA 0,243,153,0,244,200,208,238,96,32,42,204,76,107,204,32,84,203,169 
 121 DATA 138,76,231,167,162,1,160,6,24,32,240,255,160,0,169,61,32,210,255 
 122 DATA 200,192,29,208,248,169,13,32,210,255,32,210,255,32,210,255,32,210 
 123 DATA 255,76,97,200 
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →