Quelltext /~heha/hs/kcemu/kcswberg.zip/DISK/SCHON2.ASM

SCHON2ASMOS	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
Vorgefundene Kodierung: ANSI (CP1252)4
Umlaute falsch? - Datei sei ANSI-kodiert (CP1252)