Program C64; USES FONTS; VAR Scr : PTR; Win : PTR; Zeile,st:string[80]; con: PTR; Flag,a,i:CARDINAL; Tos : TEXT; PROCEDURE OPENEMUL; BEGIN Scr:=OPEN_SCREEN(0,0,320,256, 2, 2,1, $4000, ' C-64 Emulator'); Win:=OPEN_WINDOW(0,0,320,250, 1, $00004, $0800, ' *** COMMODORE 64 BASIC V2 ***', Scr, 320,256, 320,256); con:=OPENConsole(Win); SETSTDIO(CON); writeln; Writeln('64K RAM SYSTEM 38911 BASIC BYTES');writeln; Writeln('READY.'); END; PROCEDURE B; BEGIN END; PROCEDURE SIMUL; BEGIN REWRITE(Tos,'df0:TEST.C64'); IF ioresult=0 THEN BEGIN FOR i:=0 TO 25 DO writeln(Tos,'Dies war nur eine LADE-Simulation von CEMUL!'); CLOSE(Tos); END ELSE Writeln('?NO DISK IN DEVICE 8!'); END; PROCEDURE SIMUL2; BEGIN REWRITE(Tos,'df0:TEST.C64'); IF ioresult=0 THEN BEGIN FOR i:=0 TO 200 DO writeln(Tos,'Dies war nur eine LADE-Simulation von CEMUL!'); CLOSE(Tos); END ELSE Writeln('?NO DISK IN DEVICE 8!'); END; PROCEDURE F; BEGIN Flag:=1; END; BEGIN OPENEMUL; REPEAT Flag:=0; Readln(zeile); IF (COPY(Zeile,1,4)='OPEN') THEN BEGIN b; writeln('?DEVICE NOT FOUND ERROR!'); f; END; IF (COPY(zeile,1,4)='LOAD') THEN BEGIN IF (zeile='LOAD"$",8') THEN BEGIN Writeln('SEARCHING FOR $'); delay(20); REWRITE(Tos,'df0:TEST.C64'); IF ioresult=0 THEN BEGIN writeln('LOADING $'); FOR i:=0 TO 25 DO writeln(Tos,'Dies war nur Simulation von CEMUL!'); CLOSE(Tos); END ELSE BEGIN b; Writeln('?NO DISK IN DEVICE 8!'); END; delay(50); writeln("READY."); f;END; IF (zeile='LOAD"*",8,1') THEN BEGIN Writeln('SEARCHING FOR *'); Delay(50); b; writeln('?FILE NOT FOUND ERROR!'); f; END; IF (COPY(zeile,6,2)='BL') THEN BEGIN writeln('SEARCHING FOR BLOW IT'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,1)='C') THEN BEGIN writeln('SEARCHING FOR CHOPLIFTER'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,1)='W') THEN BEGIN writeln('SEARCHING FOR WIZARD'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,1)='S') THEN BEGIN writeln('SEARCHING FOR SUPER ZAXXON 3'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,1)='R') THEN BEGIN writeln('SEARCHING FOR ROBIN OF THE WOOD'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,1)='M') THEN BEGIN writeln('SEARCHING FOR BLOW IT'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,1)='K') THEN BEGIN writeln('SEARCHING FOR KAISER'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,1)='L') THEN BEGIN writeln('SEARCHING FOR LODE RUNNER'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,2)='BU') THEN BEGIN writeln('SEARCHING FOR BUBBLE BOBBLE ++'); writeln('LOADING'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,2)='BR') THEN BEGIN writeln('SEARCHING FOR BRUCE LEE'); writeln('LOADING.');SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,2)='BO') THEN BEGIN writeln('SEARCHING FOR BOULDER DASH'); writeln('LOADING.'); SIMUL2; delay(3*50); writeln('READY.'); f; END; IF (COPY(zeile,6,2)<>'BL') AND (COPY(zeile,6,1)<>'C') AND (COPY(zeile,6,1)<>'W') AND (COPY(zeile,6,1)<>'S') AND (COPY(zeile,6,1)<>'R') AND (COPY(zeile,6,1)<>'M') AND (COPY(zeile,6,2)<>'BU') AND (COPY(zeile,6,2)<>'BR') AND (COPY(zeile,6,1)<>'K') AND (COPY(zeile,6,1)<>'L') AND (COPY(zeile,6,2)<>'BO') AND (COPY(zeile,6,1)<>'$') AND (COPY(zeile,6,1)<>'*') THEN BEGIN writeln('SEARCHING FOR ???'); delay(20); b; writeln('?FILE NOT FOUND ERROR!'); writeln('READY.'); f; END; END; IF (zeile='') THEN f; IF (COPY(Zeile,1,1)='1') OR (COPY(Zeile,1,1)='2') OR (COPY(Zeile,1,1)='3') OR (COPY(Zeile,1,1)='4') OR (COPY(Zeile,1,1)='5') OR (COPY(Zeile,1,1)='6') OR (COPY(Zeile,1,1)='7') OR (COPY(Zeile,1,1)='8') OR (COPY(Zeile,1,1)='9') OR (COPY(Zeile,1,3)='100') OR (COPY(Zeile,1,4)='1000') THEN BEGIN B; Writeln('LINE PROGRAMMING NOT ALLOWED!'); writeln('?MEMORY ERROR.'); f; END; IF (COPY(Zeile,1,1)='?') THEN BEGIN writeln; writeln(copy(Zeile,3,80));writeln; f; END; IF (COPY(Zeile,1,5)='PRINT') THEN BEGIN b; writeln('USE "?" FOR PRINT COMMAND'); f; END; IF (Zeile='LIST') THEN BEGIN delay(15); Writeln(' ');reverse; writeln(' C-64 SPIELE DISK 1 '); normal; writeln('------------------------------'); writeln('122 "BLOW IT" PRG'); writeln('134 "BRUCE LEE" PRG'); writeln(' 92 "BUBBLE BOBBLE ++" PRG'); writeln(' 64 "CHOPLIFTER" PRG'); writeln(' 61 "WIZARD OF WAR" PRG'); writeln('143 "SUPER ZAXXON 3" PRG'); writeln('108 "ROBIN OF THE WOOD" PRG'); writeln(' 48 "MONOPOLY" PRG'); writeln('106 "KAISER" PRG'); writeln(' 0"----------------------"DEL'); writeln('146 "LODE RUNNER" PRG'); writeln(' 0"----------------------"DEL'); writeln('102 "BOULDER DASH" PRG'); writeln('------------------------------'); writeln(' 23 BLOCKS FREE'); writeln('READY.'); f; END; IF (copy(zeile,1,2)='IF') THEN BEGIN f; b; writeln('?IF/THEN/ELSE ERROR.'); END; IF (copy(zeile,1,4)='PEEK') THEN BEGIN f; writeln('USE POKE FOR PEEK!'); END; IF (Zeile='RUN') THEN BEGIN b; Writeln('?SYNTAX ERROR IN 0!'); f; END; IF (zeile='SYSTEM') THEN BEGIN Write('ARE YOU SURE(Y/N)?'); f; END; IF (copy(zeile,1,4)='POKE') AND (copy(zeile,1,12)<>'POKE 775,128') THEN BEGIN b; reverse; REPEAT write('#'); UNTIL 1>2; END; IF (copy(zeile,1,12)='POKE 775,128') THEN BEGIN f; writeln('READY.'); END; IF (copy(zeile,1,3)='SYS') AND (copy(zeile,4,3)<>'TEM') THEN BEGIN b; delay(5*50); f; clrscr; writeln; Writeln('64K RAM SYSTEM 38911 BASIC BYTES');writeln; Writeln('READY.'); END; IF (Flag=0) THEN writeln('?SYNTAX ERROR.'); UNTIL (zeile='SYSTEM'); Delay(3*50); END.