SCHON2 ASM OS EQU 0F003H
HOR EQU 0B7D3H
VERT EQU 0B7D5H
FARB EQU 0B7D6H
DB 7FH,7FH,'SCHON2',1
;Schirm loeschen
LD HL,0
LD (0B79CH),HL
LD HL,2028H
LD (0B79EH),HL
LD A,38H
LD (0B7A3H),A
CALL OS
DEFB 23H,0CH,0
ANFANG LD IY,PUFFER
LD B,50
;Pkt loeschen
LOOP PUSH BC
LD A,2 ;Loeschcode
CALL PSET
;Neuen Pkt berechnen
LD L,(IY)
LD H,(IY+1)
LD A,(IY+3)
LD D,H
LD E,L
AND 7
JR SROK
SRX SRA D
RR E
DEC A
SROK JR NZ,SRX
BIT 7,D ;Vorzeichen
JR NZ,MINX
INC DE ;+1
MINX ADD HL,DE
PUSH HL ;Neue Pos
BIT 7,H
CALL NZ,NEGHL
LD BC,159
CALL CPHLBC
POP HL
JR NC,NEWPOS
;HL okay!
LD C,(IY+2)
LD A,(IY+3)
LD B,C
AND 7
JR SROKY
SRY SRA B
DEC A
SROKY JR NZ,SRY
BIT 7,B
JR NZ,MINY
INC B
MINY LD A,B
AND 7FH
JR Z,NEWPOS;+/- 128!
LD A,C
ADD B ;vzb!
JP PE,NEWPOS
POSSET
LD (IY),L
LD (IY+1),H
LD (IY+2),A
LD A,(IY+3)
AND 7
ADD A
ADD A
ADD A
ADD 8
CP 40H
JR NZ,LOCOL
ADD 16
LOCOL
CALL PSET
INC IY
INC IY
INC IY
INC IY
POP BC
DEC B
JP NZ,LOOP
CALL OS
DB 0EH
RET C
JP ANFANG
NEWPOS
PUSH IY
POP HL
LD A,H
OR 0E0H
LD H,A ;^CAOS
LD A,R
ADD L
LD L,A
LD E,M
INC HL
LD A,M
LD (IY+3),A
INC HL
LD A,M
LD D,0
BIT 7,E
JR Z,NEWPO1
DEC D
NEWPO1 EX DE,HL
JR POSSET
PSET ;A=Farbbyte
;IY=^Koordinaten
LD (FARB),A
LD L,(IY)
LD H,(IY+1)
LD DE,160
ADD HL,DE
LD (HOR),HL
LD A,(IY+2)
ADD 128
LD (VERT),A
CALL OS
DB 30H
RET
NEGHL: ;Negiert HL
PUSH DE
EX DE,HL
LD HL,0
OR A
SBC HL,DE
POP DE
RET
CPHLBC ;CMP HL,BC
PUSH HL
OR A
SBC HL,BC
POP HL
RET
PUFFER
PUFFEND:ñ
PUFL,0
OR A
SBC HL,DE
POP DE
RET
CPHLBC ;CMP HL,BC
PUSH HL
OR A
SBC HL,BC
POP HL
RET
PUFFER
PUFFEND:ñ
PUF
Detected encoding: ANSI (CP1252) | 4
|
|