Re: BASICODE in Java
Verfasst: 25.12.2023, 19:56
Danke für die Blumen. Das Original stammt vom ZX81
Code: Alles auswählen
(...)
1090 GOSUB 210:IF IN<>69 THEN GOSUB 600:GOTO 1015
1999 GOSUB 100:GOTO 950
Code: Alles auswählen
1 RANDOMIZE (60*PEEK(64503!)+PEEK(64504!)) (...)
Ich denke, Paul liegt da ganz richtig. Der Aufwand ist nicht einmal hoch. Die Zeit und Datumsangaben lasen sich ohne konvertierung einfach so wie sie zurückgeliefert werden als 32-bit Zufallszahl verwenden. der BDOS-Aufruf ist simpel:Man müsste wohl eine BDOS Funktion zur Ermittlung der Uhrzeit verwenden statt eines einfachen Peek
Code: Alles auswählen
/** <
* @fn unsigned char *getclock(unsigned char *clk) <
* @brief Get CP/M clock. <
* <
* This function fills the clk array with the current CP/M clock values. <
* <
* @param clk - pointer to clock array <
* @return pointer to clk <
*/ <
getclock(clk) <
unsigned char *clk; <
{ <
// CP/M fills day, hour & minute; the A register holds the second. <
<
clk[4] = bdos_a(105, clk); <
<
return clk; <
} <
Code: Alles auswählen
1 RANDOMIZE (PEEK(&HFBF6)+PEEK(&HFBF7)+PEEK(&HFBF8)):IF PEEK(&HF000)=&H7E THEN 10
20 GOSUB 100:CLEAR:RANDOMIZE (PEEK(&HFBF6)+PEEK(&HFBF7)+PEEK(&HFBF8)):SV=7:OSETCHAR=&HF000:OSETPOINT=&HF0BA:OPOINT2=&HF256:ODRAW=&HF162:OGETCUR=&HF263:OREADCHAR=&HF277:OFINDCHAR=&HF287
Zweimal mit RUN
Einen computereigenen BASIC-Betrieb gibt es in der Java-Implementierung (derzeit) nicht; die ist als reine Ausführumgebung von BASIC- bzw. BASICODE-Programmen gedacht. Eine komplette BASIC-Umgebung mit Eingabeaufforderung etc. zu bauen, war nie meine Absicht.ein Thüringer hat geschrieben: ↑26.12.2023, 21:44 Ein kleiner Änderungswunsch für Dein Programm: es läuft ungebremst in das GOTO 950 hinein. Laut Vereinbarungen ... wird mit dem Rückführen in den computereigenen Basic-Betrieb aber auch der Bildschirm gelöscht (das wird Michael bestimmt noch hineinarbeiten), der Baum ist also eigentlich augenblicklich wieder fort. Wenn Du vor das GOTO 950 noch ein GOSUB 210 setzt, passiert das erst nach beliebigem Tastendruck.