Simons Basic Extension Tipps

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Simons Basic 2 mit Vice[Bearbeiten]

Das Steckmodul Simons' BASIC einstecken und Simons Basic Extension von Diskette laden, ist schon eine ziemlich umständliche Prozedur.

Mit Vice allerdings lässt sich das automatisieren, indem man den Kommandozeilenparameter -cartcrt für die CRT-Datei benutzt und den Pfad der D64 mit Simons Basic Extension als zweiten Parameter angibt.

Ein Beispiel (für WinVice):

  1. SB.CRT und SBX.D64 liegen im Vice-Verzeichnis, wo auch das Programm x64.exe ist.
  2. Dann erstellt man eine Verknüpfung zu x64.exe und ergänzt (unter Eigenschaften/Ziel) hinter x64.exe die Parameter -cartcrt sb.crt sbx.d64.

Mehr Speicher für BASIC[Bearbeiten]

Die Initialisierung von Simons Basic 2 enthält Fehler, die den verfügbaren BASIC-Speicher unnötig klein machen. Das Hauptprogramm SIMONSBASIC EXT kann so geändert werden, dass der gesamte BASIC-Speicher zwischen $0801 und $7700, dem Beginn der Erweiterung, zur Verfügung steht. Dazu ändert man in den Zeilen 15 bis 17 an Stelle der alten Zeile 15:

15 SYS58451:SYS30464:POKE51,0:POKE52,119:POKE55,0:POKE56,119:POKE643,0:POKE644,119:CLR
16 PRINT"{clr}{left}"FRE(0)+2 "BASIC BYTES FREE."
17 POKE 45593,240:POKE 45605,0:FOR I=0 TO 6:POKE 45613+I,234:NEXT

In Zeile 15 wird das BASIC-Ende und die Obergrenze des String-Heaps auf $7700 ($77=119) gesetzt. In Zeile 17 wird die Initialisierungs-Unterroutine ab $B1EC gepatcht, damit der BASIC-Speicher bei einem SB2-Neustart mit SYS$7700 nicht schrumpft. Tatsächlich setzt die originale Routine bei jedem Aufruf das Speicherende um 256 ($0100) Bytes herunter, beim ersten Mal also von $7680 (Zeile 1 des Hauptprogramms) auf $7580.

28415 statt 28031 BASIC Bytes

Original:

...
.C:b215  A5 38       LDA $38
.C:b217  C9 77       CMP #$77
.C:b219  90 09       BCC $B224
.C:b21b  A9 77       LDA #$77
.C:b21d  85 38       STA $38
.C:b21f  85 34       STA $34
.C:b221  8D 84 02    STA $0284
.C:b224  A9 80       LDA #$80
.C:b226  85 37       STA $37
.C:b228  8D 83 02    STA $0283
.C:b22b  85 33       STA $33
.C:b22d  C6 34       DEC $34
.C:b22f  C6 38       DEC $38
.C:b231  CE 84 02    DEC $0284
...

Geändert:

.C:b215  A5 38       LDA $38
.C:b217  C9 77       CMP #$77
.C:b219  F0 09       BEQ $B224  ;gepatcht
.C:b21b  A9 77       LDA #$77
.C:b21d  85 38       STA $38
.C:b21f  85 34       STA $34
.C:b221  8D 84 02    STA $0284
.C:b224  A9 00       LDA #$00   ;gepatcht
.C:b226  85 37       STA $37
.C:b228  8D 83 02    STA $0283
.C:b22b  85 33       STA $33
.C:b22c  EA          NOP        ;gepatcht
.C:b22d  EA          NOP        ;gepatcht
.C:b22e  EA          NOP        ;gepatcht
.C:b22f  EA          NOP        ;gepatcht
.C:b231  EA          NOP        ;gepatcht
.C:b232  EA          NOP        ;gepatcht
.C:b233  EA          NOP        ;gepatcht

Erweiterung ein-/ausschalten[Bearbeiten]

  • SYS 64760 ($FCF8) schaltet von Simons Basic 2 in BASIC V2.
  • SYS 30464 ($7700) schaltet Simons Basic 2 wieder ein.

SB2 sollte - wie unter dem vorigen Abschnitt "Mehr Speicher für BASIC" erklärt - korrigiert sein, sonst wird bei jedem Reset der BASIC-Speicher kleiner. Siehe dazu auch Erweiterung ein-/ausschalten im Simons Basic Artikel.