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