MINESW3 ASM ;
OS EQU 0F003H
BBH DEFB 35
BBD DEFB 35H
BXH DEFB 19
BXD DEFB 19H
BYH DEFB 14
BYD DEFB 14H
EBD DEFB 35H
DEFW 7F7FH
DEFM 'MINESWEEPER'
DEFB 1
CALL TITLE
CALL OS
DEFB 23H
DEFW 0D0AH
DEFW 0A0AH
DEFM ' (Benutzen Sie die '
DEFM 'KC-Maus!)'
NOP
MAIN CALL OS
DEFB 0EH
JR NC,MAIN
CP 3
JR Z,EXIT
CP 0DH
JR NZ,MAIN
LD DE,(0B7A0H)
LD A,D
OR A
JR NZ,MAIN
LD A,E
CP 10
JR C,NEGA
CP 14
JR C,MAIN
CP 19
JR NC,MAIN
EXIT LD A,39H
LD (0B7A3H),A
CALL OS
DEFB 23H
DEFB 0CH
DEFM '%MINESWEEPER'
DEFW 0D0AH
DEFM '%MENU'
DEFW 0D0AH
NOP
RET
NEGA
CALL TITLE
LD A,(BXH)
LD B,A ;Spielfeld-
LD A,(BYH)
LD C,A ;Gr|~e
LD A,(BBD)
LD (EBD),A
CALL OS
DEFM '# Bombs: '
NOP
CALL BZAHL
LD DE,200H
LD (0B7A0H),DE
LD A,7
LD (0B7A3H),A
NEGA1
PUSH BC
LD H,80H
LD L,81H
LD D,82H
LD E,83H
CALL WRLINE
NXTLIN LD H,84H
LD L,' '
LD D,85H
LD E,86H
CALL WRLINE
DEC C
JR Z,ENDLIN
LD H,87H
LD L,88H
LD D,89H
LD E,8AH
CALL WRLINE
JR NXTLIN
ENDLIN LD H,8BH
LD L,8CH
LD D,8DH
LD E,8EH
CALL WRLINE
POP BC
CALL BOMBEN
INPUT CALL OS
DEFB 0EH
JR NC,INPUT
LD DE,(0B7A0H)
OR A
JR Z,NSTATUS
CP 3
JP Z,EXIT
CP 0DH
JR NZ,INPUT
LD A,D
OR A
JR NZ,NSTATUS
LD A,E
CP 10
JP C,NEGA
CP 14
JR C,INPUT
CP 19
JP C,EXIT
JR INPUT
NSTATUS
PUSH AF
LD A,D
SRL A
JR NC,FAULT
DEC A
CP C
JR NC,FAULT
LD A,E
SRL A
JR NC,FAULT
CP B
JR C,NOFAULT
FAULT
POP AF
JR INPUT
NOFAULT POP AF
OR A
JP NZ,DCOVER
CALL OS
DEFB 32H
LD A,M
PUSH AF
AND 7FH
CP 32
JR Z,SPERR
CP 23H
JR Z,FRAGE
LD A,7
LD (0B7A3H),A
LD A,' '
JR OUTP
SPERR LD A,3FH
LD (0B7A3H),A
LD A,'#'
JR OUTP
FRAGE LD A,77H
LD (0B7A3H),A
LD A,'?'
OUTP CALL OS
DEFB 24H
CP 23H
JR NZ,NDECBZ
CALL DECBZ
CALL BZAHL
JR NNNN
NDECBZ CP 32
JR NZ,NNNN
CALL INCBZ
CALL BZAHL
NNNN POP AF
RLA
JR NC,NOBOMB
SET 7,M
NOBOMB JP INPUT
WRLINE
PUSH BC
LD A,H
CALL OS
DEFB 24H
WRL1 LD A,L
CALL OS
DEFB 24H
DEC B
JR Z,WRL2
LD A,D
CALL OS
DEFB 24H
JR WRL1
WRL2 LD A,E
CALL OS
DEFB 24H
CALL OS
DEFB 2CH
POP BC
RET
BOMBEN
WDH LD A,R
OR A
JR Z,WDH
LD E,A
LD A,(BBH)
LD D,A ;Bombenzahl
NXTB LD A,E
AND 0B8H
JP PE,NSCF
SCF
NSCF RL E
PUSH DE
LD A,E
LD D,C
NXZ CP B
JR C,RDY
SUB B
DEC D
JR NZ,NXZ
NXB POP DE
JR NXTB
;
RDY ADD A
INC A
LD E,A
SCF
RL D
LD (0B7A0H),DE
LD A,0A0H
CALL OS
DEFB 32H
CP M
JR Z,NXB
CALL OS
DEFB 24H
POP DE
DEC D
JR NZ,NXTB
RET
DCOVER ;Discovery
CALL OS
DEFB 32H
LD A,M
AND 7FH
CP 23H
JP Z,INPUT
LD A,M
RLA
JR C,BOMB ;draufgelatscht
PUSH BC
PUSH DE
XOR A
DEC HL
DEC HL
BIT 7,M
JR Z,ZAE1
INC A
ZAE1 LD DE,-82
ADD HL,DE
LD B,3
ZAE3 INC HL
INC HL
BIT 7,M
JR Z,ZAE2
INC A
ZAE2 DJNZ ZAE3
LD DE,80
LD B,2
ZAE4 ADD HL,DE
BIT 7,M
JR Z,ZAE5
INC A
ZAE5 DJNZ ZAE4
LD B,2
ZAE6 DEC HL
DEC HL
BIT 7,M
JR Z,ZAE7
INC A
ZAE7 DJNZ ZAE6
LD E,A
ADD A
ADD A
ADD A
OR 7
LD (0B7A3H),A
LD A,E
ADD '0'
CALL OS
DEFB 24H
POP DE
POP BC
JP INPUT
BOMB
LD A,87H
LD (0B7A3H),A
LD A,8FH
CALL OS
DEFB 24H
PUSH BC
LD D,3
BOB1 LD E,1
PUSH BC
BOB2 CALL OS
DEFB 32H
LD A,M
CP 8FH
JR Z,KEINT
CP 0A3H
JR Z,KEINT
CP 23H
JR Z,DENKSTE
RLA
JR C,EXTRAB
JR KEINT
;
DENKSTE LD A,27H
JR GOSHI
EXTRAB
LD A,7
GOSHI LD (0B7A3H),A
LD A,8FH
LD (0B7A0H),DE
CALL OS
DEFB 24H
KEINT
INC E
INC E
DJNZ BOB2
POP BC
INC D
INC D
DEC C
JR NZ,BOB1
POP BC
JP MAIN
TITLE
LD HL,0
LD (0B79CH),HL
LD HL,2028H
LD (0B79EH),HL
LD HL,600H
LD (0B7A2H),HL
LD HL,5300H
LD (0B7ACH),HL
CALL OS
DEFB 23H
DEFB 0CH
DEFM ' New Game Exit'
NOP
RET
BZAHL
LD A,6
LD (0B7A3H),A
LD DE,29
LD (0B7A0H),DE
LD A,(EBD)
CALL OS
DEFB 1CH
RET
DECBZ LD A,(EBD)
SUB 1
INCBZ1 DAA
LD (EBD),A
RET
INCBZ LD A,(EBD)
ADD 1
JR INCBZ1
EFB 0 ;Byte-Z{h
Detected encoding: ASCII (7 bit) | 2
|