010
26.12.2020, 11:03 Uhr
Bert
|
Zitat: | Lippi schrieb Früher hatte ich einige Tricks von den BöGames abgeschaut |
Ja, genau um so ein Spiel geht es hier: CALYPSO
Hier ist eine Version von CALYPOSO (für den KC85/3), die alles in einer Datei beinhaltet: http://kc85.info/index.php/download-topmenu/viewdownload/27-spiele/373-calypso.html
Für den KC85/4 müsste ich auch das BASIC-Programm darin anpassen.
Zitat: | wpwsaw schrieb ...war das nicht so, das etwas spezielles in der erste BASIC Zeile stehen musste und dadurch das auflisten verhindert wurde...
|
Ja, das gab es wohl auch. Hier in diesem Fall sind zwischen den Arbeitszellen und dem eigentlichen BASIC-Programm noch Zeichenbildtabellen untergebracht.
Super! Genau so eine Tabelle habe ich gesucht. Jetzt bräuchte man nur noch an der einen oder anderen Stellen eine Erklärung, was welcher Wert bewirkt.
Dank dieser Tabelle konnte ich mir einen kleinen Decoder schreiben:
Quellcode: | $ ./KCB_decode.py CALYPSO6.KCC HEADER ====== Name: bytearray(b'\xcd B:\x00\x03 E:9w') Args: 2 Load : 0300h End+1: 7739h Start: BA0Ch DATA ==== 0300 Warmstart C389C0 0303 USR() C367C9 0306 Toradresse 00h 0307 E/A-Flag 00h 0308 OUT-Index 01h 0309 IN-Index 00h 030A Trace-Flag 00h 030B SBC-Routine D6006F7CDE006778DEC8473E00C9 0319 RND-Variable 190101 031C RND-Daten 3524CA99391C76982295B3980ADD479853D199990A1A9F9865BCCD98D6773E98 033C RND(0) 092C057F 0340 Anz. Dummy 0Bh 0341 Ausgabezeilen FFh 0342 Anz. Formate 1Bh 0343 Ausgabeunterdrückung 00h 0344 Zeilenzahl LIST 0000h 0346 Zeilenzahl LIST (wdh.) 0000h 0348 Prüfsumme CLOAD/CSAVE 0000h 03A4 Eingaberoutine 000000 034D AUTO-Flag 00h 034E akt. Zeilennummer 15B8h 0350 Zeilennummer Abstand 000Ah 0352 (NANF) 0000h 0354 (DISTAN) 0000h 0356 RAM-Mindestgröße 7EFFh 0358 akt. Zeilennummer FFFFh 035A WINJP 0000C9 035D DATBYTE 00h 035E DATFLG (Listschutz) 19h 035F Programadresse 1000h 0361 Eingabepuffer 009B000...0000000 03AC Kursorposition 00h 03AD Suche Variable 00h 03AE Datentyp 01h 03AF Datastmnt. Flag 00h 03B0 Memory Size 7FFFh 03B2 Ende Stringadressen+1 03B4h 03B4 Stringadressentabelle 03001DC30100F92B000000 03C0 Länge+Adresse akt. STR 03001DC3 03C4 Zeiger für String 7FFFh 03C6 Index letztes Byte 0365h 03C8 PC bei FOR-Suche 4096h 03CA letzte DATA-Zeile 7940h 03CC FOR-Flag 00h 03CD Inputphase-Flag 00h 03CE RD/RW-Flag FFh 03CF Adr. aktueller Befehl 10E9h 03D1 Adr. nächstes Element 0365h 03D3 letzte Zeilennummer 2F44h 03D5 Adr. bei ERROR 0000h 03D7 Adr. Einfachvariablen 7739h 03D9 Adr. Feldvariablen 7739h 03DB Adr. nach Listen 7739h 03DD Adr. DATA/READ 0FFFh 03DF Adr. FN-Statement 0000h 03E1 Arithmetikregister 0 00000000 03E5 Arithmetikregister 1 B4030030 03E9 Vorzeichen (SGN) C1h 03EA PRINT-Puffer 20353400303030302020202020 03F7 Arithmetikregister 2 80000000 03FB Listen-Flag 00h 03FC Erweiterungs-Flag AFh 03FD Print-Erweiterungsflag 03h 03FE FARBBYTE 00h
|
Zitat: | schnaari schrieb im Buch "Basic - effektiv programmieren" von Horst Völz ist das KC-Basic umfänglich erklärt.
|
Sieht gut aus: https://d-nb.info/891416846/04
Eine Frage an Holger: Hast Du das Buch schon eingescannt?
Zitat: | ralle schrieb Eine mögliche Ursache, FA Heft 12 1989:
|
Dort wird das ROM-BASIC zum RAM-BASIC gemacht und dann gepatcht. Die m.E. elegantere Methode ist in BASVE.KCC umgesetzt: dort wird in den Eingabepuffer von BASIC das RUN-Token geschrieben, der BASIC-ROM zugeschalten und angesprungen.
Hast Du zufällig die Ausgabe der MP parat? Einige Ausgaben habe ich hier. Das BASIC-Handbuch zum Z9001 scheint da ausführlicher zu sein, als das vom Mühlhausen-KC. Das muss ich mir mal näher zu Gemüte führen.
Zitat: | maleuma schrieb LIST-Schutz: POKE 862,1 Aufheben: POKE 862,0 |
(862=035Eh) Ja, das ist die einfache Variante. Bei CALYPSO waren Profis am Werk :-) Zum Glück ist der BASIC-Editor vom JKCEMU noch einen Ticken besser und man kann sich den Quelltext anschauen...
Vielen Dank für die vielen hilfreichen Tipps! Bert |