Source file: /~heha/hs/kcemu/kcswberg.zip/DISK/MHTEST2.ASM

MHTEST2 ASM 
	;TESTPROGRAMME
	;ZUR MODULVERWALTUNG
	;9 MODULE:
	;F4 16K-MODUL
	;F5 256K-MODUL
	;F6 64K-MODUL
	;78 128K
	;79 256K
	;7A 512K
	;7B 1M
	;F1 16K CMOS
	;F2 32K CMOS
 
;Anfordern indirekt	ss06
;Anfordern direkt	1D hhhh
;Freigeben (direkt)	9D hhhh
;Zaehlen		ss42
;Abfragen (Kette)	ss2B
;Auslisten		ss??
	;GROESZENBYTE
 
RLTAB
	DW	40F4H,8F2H,8F6H
	DW	2078H,2079H,207AH,107BH
	DW	8F5H,40F1H
 
RL
;BESTIMME RAM-LAENGE
;PE: B=MODULSCHACHT
;PA: C=LAENGE
;    B=ADDIEROFFSET
;    A=Strukturbit
;CY=BIT7 KENNBYTE
;Z:EXTRAWURST F5-MODUL
	LD	A,B
	SUB	3
	JR	Z,RLR8
	DEC	A
	JR	Z,RLR4
	LD	C,80H
	IN	A,(C)
	CP	0FFH	;KEIN MODUL?
	JR	Z,RL1
	PUSH	HL
	LD	HL,RLTAB
	LD	B,9
RL2
	RLC	C
	CP	M
	INC	HL
	JR	Z,RL3
	INC	HL
	DJNZ	RL2
	POP	HL
RL1
	LD	BC,0
	SCF
	RET
RL3
	LD	B,M
	POP	HL
	CP	0F5H	;Z:256-EIGEN
	RLCA		;CY:OFFSET
RLR1	LD	A,B
	LD	B,4
	RET	NC
	CCF
	LD	B,40H
	RET	NZ
	LD	C,16	;EXTRAWURST
	LD	B,14H
	RET
RLR4
	LD	BC,302H
	JR	RLR1	;CY=0
RLR8
	LD	A,(0B7F0H)
	BIT	0,A
	LD	BC,402H
	JR	Z,RLR1
	LD	C,0EH
	JR	RLR1
 
;HAUPTPGM:
MHX
	LD	BC,0
	BIT	2,L
	JR	NZ,LOOPA
	BIT	6,L	;ZAEHLEN?
	CALL	NZ,LA2	;DE:=0
	JR	NZ,LOOPA
	LD	DE,8303H
	SCF
	RET
LOOPA
	LD	A,E
	CP	B
	JR	NZ,$+4
	RES	0,L
	 PUSH	BC
	 CALL	RL
	 JP	C,NOMOD
	 BIT	0,L
	 JP	NZ,LA1
	 BIT	1,L	;Strukturtest?
	 JR	Z,LA3
	 AND	H
	 JP	Z,LA1
LA3
	 LD	A,83H
LOOPI
	 BIT	3,L
	 JR	Z,LI3
	 CP	D
	 JR	NZ,LI13
	 RES	3,L
LI3
	;EXTRAWURST FUER RAM4??HIER
	 EX	DE,HL
	 EX	(SP),HL
	  PUSH	AF
	  PUSH	HL
	  BIT	1,E
	  JR	Z,XR1
	  LD	A,H
	  CP	4
	  JR	NZ,XR1
	  LD	A,D
	  RRA
	  BIT	0,L
	  JR	NZ,XR2
	  RRA
XR2
	  JR	NC,LI8	;UEBERGEHEN
XR1
	  CALL	LHLA
	  BIT	2,E
	  JR	NZ,LI7
	  AND	M
	  JR	Z,LI8
	  SET	7,E
	  JR	LI8
LI7	;SETZEN/RUECKSETZEN
	   PUSH	BC
	   LD	B,A
	   AND	M
	   ADD	0FFH
	   LD	A,B
	   POP	BC
	   BIT	7,E
	   JR	NZ,LI9
	   JR	C,XORS
	   BIT	1,E
	   JR	NZ,LI8
END2	   POP	HL
	   POP	AF
	 EX	DE,HL
END1	 SCF
	 POP	BC
	RET
 
LI9	JR	C,END2
XORS	XOR	M
	LD	M,A
	SET	4,E	;Abbruch
LI8
	  POP	HL
	  POP	AF
	 EX	(SP),HL
	 EX	DE,HL
LI4
	 BIT	6,L
	 JR	NZ,LI14
	 EX	(SP),HL
	 LD	E,H
	 EX	(SP),HL
	 LD	D,A
	 JR	LI6
LI14
	 BIT	7,L
	 JR	Z,LI13
	 RES	7,L
	 INC	DE	;ZAEHLEN
	;JR	LI13
LI6
	 BIT	4,L	;Rausschmi~?
	 JR	NZ,RAUS
	 BIT	5,L
	 JR	Z,$+4
	 SET	4,L
LI13
	 EX	(SP),HL
	 INC	L	;BITNR
	 EX	(SP),HL
	 JR	Z,END1	;MIT POP
	 ADD	B
	 BIT	4,B
	 JR	Z,LI5
	 BIT	2,A
	 JR	NZ,LI5
	 BIT	3,A
	 JR	NZ,LI5
	 SUB	10H
LI5
	 DEC	C
	 JP	NZ,LOOPI
NOMOD
	 POP	BC
	JR	LA4
LA1	;JUMP OVER
	 LD	A,C
	 POP	BC
	ADD	C
	JR	C,ENDE
	LD	C,A
LA4	INC	B
	JP	NZ,LOOPA
ENDE
	SCF
	BIT	2,L
	RET	NZ
	OR	A
	BIT	6,L
	RET	NZ
LA2	LD	DE,0	;Ende:NIL
	RET
RAUS
	POP	BC
	OR	A
	RET
 
;L IN HL UND A UMRECHNEN
LHLA
	LD	A,(0B7F1H)
	LD	H,A
	LD	A,L
	SRL	L
	SRL	L
	SCF
	RR	L	;80..9F
	PUSH	HL
	LD	H,0FDH
	OR	0F8H
	LD	L,A
	LD	A,M
	POP	HL
	RET
 
OS	EQU	0F003H
	DB 7FH,7FH,'EMS',1
	CALL	MHX
	PUSH	AF
	CALL	OS
	DB	1BH
	PUSH	BC
	POP	HL
	CALL	OS
	DB	1AH
	POP	AF
	RET	NC
	CALL	OS
	DB	19H
	RET
 
IOO
	PUSH	AF
	IN	A,88H
	XOR	4
	OUT	88H,A
	POP	AF
	RET
 
	DB	7FH,7FH,'256K',1
	CALL	IOO
	PUSH	HL
	DI
	LD	H,80H
	LD	A,(IX+1)
	LD	L,A
	AND	0FH
	OUT	84H
	LD	C,M
	LD	M,A
	XOR	H	;80H
	OUT	84H
	LD	B,M
	LD	M,A
	XOR	H
	OUT	84H
	CP	M	;Z-Flag!
	LD	M,C
	SET	7,A
	OUT	84H
	LD	M,B
	LD	A,L
	OUT	84H
	EI
	POP	HL
	CALL	IOO
	;
	RET	NZ
	CALL	OS
	DB	23H,'256K BESTUECKT',0
	RET
X
IOO:ð
OS:(
LHLA:%
RAUS:!
LA2:
ENDE:
LA4:
LA1:
NOMOD:
LI5:ô
L	NZ
	CALL	OS
	DB	23H,'256K BESTUECKT',0
	RET
X
IOO:ð
OS:(
LHLA:%
RAUS:!
LA2:
ENDE:
LA4:
LA1:
NOMOD:
LI5:ô
L
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded