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:- 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.
- 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)
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