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

MHTEST  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
 
	;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	A,D
	OR	E	;NIL?
	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
	   BIT	7,E
	   JR	Z,LI9
	   AND	M
	   JR	NZ,END2
	   LD	A,B
	   OR	M
	   LD	M,A
	   JR	LI10
LI9
	   AND	M
	   JR	NZ,LI11
	   BIT	1,E	;UNBESTIMMT?
	   JR	Z,END2
	   JR	NZ,LI12
LI11
	   LD	A,B
	   CPL
	   AND	M
	   LD	M,A
LI10
	   SET	4,E	;Abbruch
LI12
	   POP	BC
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
END2
	POP	BC
	POP	HL
	POP	AF
END1
	POP	BC
	SCF
	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
ð
OS:3
LHLA:0
RAUS:-
END1:*
END2:&
LA2:
ENDE:
LA4:
LA1:
NOMOD:

LI5:ù
LI13:ï
LI6:NC
	CALL	OS
	DB	19H
	RET
ð
OS:3
LHLA:0
RAUS:-
END1:*
END2:&
LA2:
ENDE:
LA4:
LA1:
NOMOD:

LI5:ù
LI13:ï
LI6:
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded