procedure l_3390; (* Hilfe ausgeben *) Begin port[248]:=8; (* Bildschirm ausschalten *) writeln(cls_dollar,szaus_dollar,curaus_dollar); writeln(FNc_dollar(11,11),'Deine Aufgabe ist, m|glichst viele Goldst}cke einzusammeln. Pa~ aber'); writeln(FNc_dollar(13,11),'auf, der Schatz wird von drei Geistern bewacht, die Dir ans Leben'); writeln(FNc_dollar(15,11),'wollen. F}r jeweils 50 Goldst}cke erh{ltst Du 3 Bonus-Leben. Wenn Du'); writeln(FNc_dollar(17,11),'zu den 10 Besten geh|rst, wirst Du im Highscore verewigt. Der Schatz'); writeln(FNc_dollar(19,29),'umfa~t insgesamt 300 Goldst}cke.'); port[248]:=7; (* Bildschirm einschalten *) while INKEY_dollar<>nul do; while INKEY_dollar=nul do; End; procedure l_140; (* Rahmen ausgeben *) var z, s : integer; Begin writeln(cls_dollar,szaus_dollar,curaus_dollar, FNc_dollar(0,29),t1_dollar, FNc_dollar(1,29),t2_dollar, FNc_dollar(3,37),co_dollar); writeln(FNc_dollar(6,0),#162,STRING_dollar(87,#160),#161,#170); writeln(FNc_dollar(7,0),#239,#165,#168,STRING_dollar(84,#163),#239,#165,#167); for z:=8 to 27 do for s:=0 to 1 do writeln(FNc_dollar(z,s*87),#239,#165,#167); for s:=0 to 1 do writeln(FNc_dollar(28,s*87),#166,#165,#167); writeln(FNc_dollar(29,0),#162,STRING_dollar(87,#160),#161,#167); write (FNc_dollar(30,0),#169,STRING_dollar(88,#163),#171); End; procedure l_1060; (* Bonus oder Spielstand ausgeben *) var bonus : integer; Begin if leben>3 then begin writeln(FNha_dollar(1,16),FNha_dollar(1,13),FNha_dollar(1,10)); writeln(FNc_dollar(3,10),'BONUS'); bonus:=leben-3; if bonus<10 then writeln(FNc_dollar(3,16),bonus) else writeln(FNc_dollar(3,15),bonus); end else begin writeln(FNc_dollar(3,10),SPACE_dollar(8)); case leben of 3 : writeln(FNha_dollar(1,16)+FNha_dollar(1,13),FNha_dollar(1,10)); 2 : writeln(FNhacl_dollar(1,16,1,13)); 1 : writeln(FNclab_dollar(1,13)); 0 : begin writeln(FNclab_dollar(1,10)); tot:=1; end; end; end; End; procedure l_1170; (* Goldbestand ausgeben *) Begin if goldi=0 then writeln(FNgoa_dollar(2,72),' '); if goldi<10 then writeln(FNgoa_dollar(2,72),FNc_dollar(2,76),goldi); if goldi in [10..99] then writeln(FNgoa_dollar(2,72),FNc_dollar(2,75),goldi); if goldi in [100..999] then writeln(FNgoa_dollar(2,72),FNc_dollar(2,74),goldi); End; procedure l_1920; (* Spielstand aller Spieler ausgeben *) var n, z : integer; Begin writeln(FNc_dollar(11,29),'* H A L L O F F A M E *', FNc_dollar(12,28),STRING_dollar(33,'_')); z:=15; for n:=1 to 10 do begin writeln(FNc_dollar(z,31),UPPER_dollar(name_dollar[n]),SPACE_dollar(20-length(name_dollar[n]))); case gold[n] of 0..9 : writeln(FNc_dollar(z,56),gold[n]); 10..99 : writeln(FNc_dollar(z,55),gold[n]); else writeln(FNc_dollar(z,54),gold[n]); end; z:=z+1; end; if score=1 then score:=0 else begin while INKEY_dollar<>nul do; while INKEY_dollar= nul do; for n:=10 to 24 do writeln(FNc_dollar(n,28),SPACE_dollar(33)); end; End; procedure l_220; var n : integer; Begin objekt1:=0; objekt2:=0; leben:=3; goldi:=0; hz:=8; hs:=5; namei_dollar:=''; score:=1; gz1:=8; gs1:=83; gz2:=26; gs2:=5; gz3:=26; gs3:=83; zeit:=0; tot:=0; l_1060; l_1170; writeln(FNha_dollar(hz,hs), FNga_dollar(gz1,gs1), FNga_dollar(gz2,gs2), FNga_dollar(gz3,gs3)); l_1920; port[248]:=7; (* Bildschirm einschalten *) while INKEY_dollar<>nul do; while INKEY_dollar= nul do randomize; for n:=10 to 24 do writeln(FNc_dollar(n,28)+SPACE_dollar(33)); End; procedure l_2430; (* Zeichensatz und Kontrollzeichen fuer den JOYCE aufsetzen *) type MCode = array[0..20] of byte; const Keys : array[1..84,0..8] of byte = (* Mauerelemente *) ((160,$E7,$E7,$E7,$00,$7E,$7E,$7E,$00), (161,$CC,$CC,$CC,$00,$7C,$7C,$7C,$00), (162,$E7,$E7,$E7,$00,$FE,$FE,$FE,$00), (163,$88,$22,$88,$22,$00,$00,$00,$00), (239,$FC,$00,$FC,$FC,$FC,$00,$FC,$FC), (165,$FC,$FC,$FC,$00,$FC,$FC,$FC,$00), (166,$FC,$00,$FC,$FC,$FC,$00,$FC,$00), (167,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA), (168,$88,$A2,$A8,$AA,$AA,$AA,$AA,$AA), (169,$88,$22,$08,$02,$00,$00,$00,$00), (170,$80,$A0,$A8,$AA,$AA,$AA,$AA,$AA), (171,$AA,$2A,$8A,$22,$00,$00,$00,$00), (* Geist Bild 1 *) (172,$02,$0A,$0A,$22,$22,$AA,$AA,$AA), (173,$80,$A0,$A0,$88,$88,$AA,$AA,$AA), (174,$AA,$AA,$8A,$8A,$88,$88,$88,$08), (175,$AA,$AA,$AA,$A2,$A2,$A2,$22,$20), (* Geist Bild 2 *) (176,$02,$0A,$0A,$2E,$2E,$AA,$AA,$AA), (177,$80,$A0,$A0,$E8,$E8,$AA,$AA,$AA), (178,$AA,$AA,$AA,$8A,$8A,$8A,$88,$08), (179,$AA,$AA,$A2,$A2,$22,$22,$22,$20), (* Spieler Bild 1 *) (180,$00,$00,$00,$0A,$2A,$5D,$A2,$A2), (181,$00,$00,$00,$A0,$A8,$74,$8A,$8A), (182,$5D,$2A,$0A,$08,$78,$FC,$00,$00), (183,$74,$A8,$A0,$3C,$7E,$00,$00,$00), (* Spieler Bild 2 *) (184,$00,$00,$00,$0A,$2A,$5D,$BE,$A2), (185,$00,$00,$00,$A0,$A8,$74,$FA,$8A), (186,$5D,$2A,$0A,$78,$FC,$00,$00,$00), (187,$74,$A8,$A0,$20,$3C,$7E,$00,$00), (* Muenze *) (188,$0F,$7D,$F5,$FD,$FD,$7D,$2F,$05), (189,$D0,$7A,$7D,$7D,$7D,$7A,$D4,$40), (* Schraegstrich *) (190,$00,$00,$01,$07,$1E,$79,$54,$00), (191,$00,$78,$E4,$90,$40,$00,$00,$00), (* Kleines Kreuz *) (192,$00,$00,$00,$03,$0C,$07,$03,$3F), (193,$00,$00,$00,$40,$D0,$A0,$40,$F4), (194,$2B,$03,$03,$03,$01,$00,$00,$00), (195,$54,$40,$40,$40,$40,$00,$00,$00), (* Grosses Kreuz *) (196,$00,$07,$1C,$3A,$1C,$0F,$07,$FF), (197,$00,$A0,$E8,$74,$E8,$D0,$A0,$FD), (198,$FF,$57,$07,$07,$07,$07,$02,$00), (199,$FD,$95,$A0,$A0,$A0,$A0,$A0,$00), (* Volle Eieruhr *) (200,$00,$FF,$55,$17,$17,$0B,$05,$02), (201,$00,$FE,$54,$D0,$D0,$A0,$40,$80), (202,$02,$04,$08,$10,$10,$55,$FF,$00), (203,$80,$40,$20,$10,$10,$54,$FE,$00), (* Leere Eieruhr *) (204,$00,$FF,$55,$10,$10,$08,$04,$02), (205,$00,$FE,$54,$10,$10,$20,$40,$80), (206,$02,$05,$0B,$17,$17,$55,$FF,$00), (207,$80,$40,$A0,$D0,$D0,$54,$FE,$00), (* Spieltitel - "GEISTERJAGD" *) (219,$3C,$C3,$C3,$C3,$C0,$C0,$CF,$C3), (220,$C3,$C3,$BD,$A5,$25,$21,$21,$20), (221,$00,$00,$FF,$C0,$C0,$C0,$FC,$C0), (222,$C0,$C0,$FF,$95,$94,$90,$10,$00), (223,$00,$00,$18,$18,$18,$18,$18,$18), (224,$18,$18,$18,$10,$10,$10,$10,$10), (225,$00,$00,$3C,$C3,$C3,$C0,$3C,$03), (226,$C3,$C3,$BD,$A9,$A9,$89,$89,$09), (227,$00,$00,$FF,$18,$18,$18,$18,$18), (228,$18,$18,$18,$08,$08,$08,$08,$00), (229,$00,$00,$FC,$C3,$C3,$C3,$FC,$D8), (230,$CC,$C6,$CB,$4A,$4A,$42,$42,$02), (231,$FF,$03,$03,$03,$03,$03,$03,$03), (232,$03,$C3,$BD,$A9,$A9,$29,$09,$08), (233,$00,$00,$18,$3C,$66,$C3,$FF,$D3), (234,$D3,$D3,$D3,$52,$52,$42,$40,$40), (235,$00,$00,$3C,$C3,$C3,$C0,$CF,$C3), (236,$C3,$C3,$BD,$95,$95,$91,$11,$00), (237,$00,$00,$F0,$CC,$C3,$C3,$C3,$C3), (238,$C3,$CD,$F9,$A9,$89,$89,$09,$01), (* Copyright - "(C) 1991 RALF WILGALIS" *) (240,$0A,$20,$8A,$88,$8A,$20,$0A,$00), (241,$80,$20,$88,$08,$88,$20,$80,$00), (242,$00,$09,$29,$09,$08,$09,$00,$00), (243,$00,$52,$12,$52,$10,$52,$00,$00), (244,$00,$A1,$25,$A1,$21,$A1,$00,$00), (245,$00,$05,$04,$05,$04,$04,$00,$00), (246,$00,$4A,$48,$4A,$88,$48,$00,$00), (247,$00,$90,$90,$90,$90,$95,$00,$00), (248,$00,$2A,$20,$28,$20,$20,$00,$00), (249,$00,$08,$08,$08,$0A,$08,$00,$00), (250,$00,$92,$92,$92,$92,$92,$00,$00), (251,$00,$05,$04,$05,$04,$A5,$00,$00), (252,$00,$4A,$08,$4A,$48,$48,$00,$00), (253,$00,$90,$90,$90,$90,$95,$00,$00), (254,$00,$25,$24,$25,$20,$25,$00,$00), (255,$00,$40,$00,$40,$40,$40,$00,$00)); Data : MCode = ($01,$09,$C0, (* ld bc,rout *) $CD,$5A,$FC, (* call 0fc5ah *) $E9,$00, (* dw 00e9h *) $C9, (* ret *) $21,$15,$C0, (* rout: ld hl,tabb *) $01,$08,$00, (* ld bc,8 *) $11,$00,$00, (* ld de,$-$ *) (* ^Charadr *) $ED,$B0, (* ldir *) $C9 (* ret *) (* tabb: *) ); var Zeichencode, i,j : integer; MProg : MCode absolute $C000; tabb : array[1..8] of byte absolute $C015; Charadr : array[1..2] of byte absolute $C010; procedure code; external $C000; Begin { l_2430 } MProg:=Data; for i:=1 to 84 do begin Zeichencode:=Keys[i][0]; for j:=1 to 8 do tabb[j]:=Keys[i][j]; Charadr[1]:= lo(Zeichencode*8); Charadr[2]:=$b8+hi(Zeichencode*8); code; end; End;