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

DEPASM 
;Diskettenerweiterungsprogramm DEP
 
	org	100h
;
SYSLW	equ	0e9e2h
;
;------ INITIALISIERUNG --------------
;
u0100	ld	hl,(6)
	dec	hl
	dec	hl
	ld	sp,hl
	ld	a,0
	ld	(0fd80h),a
	ld	a,1
	ld	(0fd81h),a
	ld	de,txt1
	ld	c,9
	call	5
	ld	e,1bh
	ld	c,2
	call	5
	ld	e,5ch
	ld	c,2
	call	5
	ld	hl,BYTE1
	ld	(0ee04h),hl
	ld	e,0feh
	ld	c,2dh
	call	5
	ld	c,0eh
	ld	a,(0fd81h)
	ld	e,a
	call	5
	ld	c,25h
	ld	de,0ffh
	call	5
	ld	de,80h
	ld	c,1ah
	call	5
	ld	de,INIT
	ld	c,0fh
	call	5
	cp	0ffh
	jr	z,MM0177
	ld	de,INIT
	ld	c,14h
	call	5
	inc	a
	jr	z,MM0177
	ld	b,80h
	ld	de,80h
	ld	hl,0fe80h
MM015f	ld	a,(de)
	inc	de
	cp	0ah
	jr	z,MM016f
	and	a
	jr	z,MM016f
	cp	3
	jr	nz,MM016d
	xor	a
MM016d	ld	m,a
	inc	hl
MM016f	djnz	MM015f
	ld	m,0
	ld	a,48h
	jr	MM0179
;
MM0177	ld	a,0c8h
MM0179	ld	(0ff80h),a
MM017c	ld	hl,(6)
	dec	hl
	dec	hl
	ld	sp,hl
;
;------ ABFRAGESCHLEIFE --------------
;
MM0182	ld	a,(0ff80h)
	bit	0,a
	jr	nz,normal
;
;------ TEST AUF LW-WECHSEL ----------
;
	ld	a,(0fd80h)
	bit	0,a
	jr	z,MM0182
;
;------ LW-WECHSEL ausf}hren ---------
;
	cp	1
	jr	nz,anzeige
	ld	a,(0fd81h)
	and	7
	cp	0	; LW A verbot
	jr	nz,gut1
	ld	a,80h
	ld	(0fd80h),a
	jr	MM0182
gut1	ld	a,(0fd81h)
	ld	e,a
	ld	c,0eh
	call	5	; LW anw{hlen
 
	ld	a,(0fd81h)
	inc	a	  ;  1=A ... 8
	ld	(SYSLW),a ; System-LW s
 
anzeige	ld	c,19h
	call	5
	ld	(0fd81h),a
	xor	a
	ld	(0fd80h),a
	jr	MM0182
 
;--------------------------------------
 
normal	ld	b,a
	and	34h
	jp	nz,MM02de
	ld	a,b
	bit	1,a
	jp	nz,MM0216
	bit	3,a
	jr	z,MM01da
	call	MM058b
	ld	hl,65h
	ld	a,m
	cp	20h
	jr	nz,MM01c1
	ld	a,(BUFF5)
	and	a
	jr	nz,MM01c1
	ld	m,4bh
	inc	hl
	ld	m,43h
	inc	hl
	ld	m,43h
MM01c1	ld	c,0fh
	call	5
	cp	0ffh
	jr	nz,MM01ed
MM01ca	ld	a,80h
	ld	(0ff80h),a
	ld	a,h
	ld	(0ff81h),a
	jp	MM017c
;
MM01d6	ld	h,77h
	jr	MM01ca
;
MM01da	bit	6,a
	jr	z,MM01f1
	ld	c,10h
	ld	de,5ch
	call	5
	cp	0ffh
	jp	nz,MM029d
	jr	MM01ca
;
MM01ed	xor	a
	ld	(7ch),a
MM01f1	ld	de,5ch
	ld	c,14h
	call	5
	cp	0ffh
	jr	z,MM01ca
	cp	1
	ld	h,81h
	jr	z,MM01ca
	ld	hl,80h
	ld	de,0fe80h
	ld	bc,80h
	ldir
MM020e	ld	a,0
	ld	(0ff80h),a
	jp	MM017c
;
MM0216	bit	3,a
	jp	z,MM02a4
	call	MM058b
	jp	c,MM01d6
	ld	hl,65h
	ld	a,43h
	cp	m
	jr	nz,MM023a
	inc	hl
	ld	a,4fh
	cp	m
	jr	nz,MM024d
	inc	hl
	ld	a,4dh
	cp	m
	ld	hl,65h
	jr	z,MM0245
	jr	MM024d
;
MM023a	ld	a,20h
	cp	m
	jr	nz,MM024d
	ld	a,(BUFF5)
	and	a
	jr	nz,MM024d
MM0245	ld	m,4bh
	inc	hl
	ld	m,43h
	inc	hl
	ld	m,43h
MM024d	ld	de,5ch
	ld	c,0fh
	call	5
	cp	0ffh
	jr	z,MM0266
	ld	de,5ch
	ld	c,13h
	call	5
	cp	0ffh
	jp	z,MM01ca
MM0266	ld	de,5ch
	ld	c,16h
	call	5
	cp	0ffh
	jp	z,MM01ca
MM0273	ld	hl,0fe80h
MM0276	ld	de,80h
	ld	bc,80h
	ldir
	ld	de,5ch
	ld	c,15h
	call	5
	cp	0ffh
	jp	z,MM01ca
	cp	1
	jr	nz,MM0294
	ld	h,81h
	jp	MM01ca
;
MM0294	cp	2
	jr	nz,MM029d
	ld	h,82h
	jp	MM01ca
;
MM029d	xor	a
	ld	(0ff80h),a
	jp	MM017c
;
MM02a4	bit	6,a
	jr	z,MM0273
MM02a8	ld	de,5ch
	ld	c,10h
	call	5
	cp	0ffh
	jp	z,MM01ca
	jr	MM029d
;
txt1	equ	$
	db	' DEP aktiviert !'
	ds	10,20h
	db	'(26/03/89)'
	db	0ah,0dh,24h
MM02de	cp	34h
	jp	nz,MM03c4
	bit	1,b
	jp	z,MM036c
MM02e8	bit	3,b
	jr	z,MM0316
	call	MM0585
MM02ef	jp	c,MM01d6
	ld	c,0fh
	call	5
	cp	0ffh
	jp	z,MM0309
	ld	de,5ch
	ld	c,13h
	call	5
	cp	0ffh
	jp	z,MM01ca
MM0309	ld	de,5ch
	ld	c,16h
	call	5
	cp	0ffh
MM0313	jp	z,MM01ca
MM0316	ld	a,(0ff8eh)
	ld	hl,(BUFF1)
	ld	m,a
	ld	a,(0ff80h)
	bit	6,a
	jr	z,MM032c
	bit	7,a
	jr	z,MM033e
	ld	m,1dh
	jr	MM033e
;
MM032c	inc	hl
	ld	(BUFF1),hl
	ld	a,l
	and	a
	jp	nz,MM029d
	ld	hl,6080h
	ld	(BUFF1),hl
	jp	MM0276
;
MM033e	inc	hl
	ld	a,1ah
	ld	hl,6080h
	ld	de,80h
	ld	bc,80h
	ldir
	ld	de,5ch
	ld	c,15h
	call	5
	cp	0ffh
	jp	z,MM01ca
	cp	1
	jr	nz,MM0362
	ld	h,81h
	jp	MM01ca
;
MM0362	cp	2
	jp	nz,MM02a8
	ld	h,82h
	jp	MM01ca
;
MM036c	bit	6,b
	jp	nz,MM029d
	bit	3,b
	jr	z,MM0389
	call	MM0585
	ld	c,0fh
	ld	de,5ch
	call	5
	cp	0ffh
	jp	z,MM01ca
	xor	a
	ld	(7ch),a
MM0389	ld	hl,(BUFF1)
	ld	a,l
	cp	80h
	jr	nz,MM03af
	ld	de,5ch
	ld	c,14h
	call	5
	cp	0ffh
MM039b	jp	z,MM01ca
	cp	1
	ld	h,81h
	jr	z,MM039b
	ld	hl,80h
	ld	de,6080h
	ld	bc,80h
	ldir
MM03af	ld	hl,(BUFF1)
	ld	a,m
	ld	(0ff8eh),a
	inc	hl
	ld	a,l
	and	a
	jr	nz,MM03be
	ld	hl,6080h
MM03be	ld	(BUFF1),hl
	jp	MM029d
;
MM03c4	cp	4
	jp	z,MM0452
	cp	10h
	jp	z,MM0512
	cp	20h
	jp	z,MM0528
	cp	14h
	jr	z,MM03e4
	cp	24h
	jp	z,MM0559
	cp	30h
	jp	z,MM0569
	jp	MM017c
;
MM03e4	ld	de,80h
	ld	c,1ah
	call	5
	ld	a,(0fd81h)
	ld	e,a
	ld	c,0eh
	call	5
	ld	a,(0fd81h)
	ld	c,2eh
	ld	e,a
	call	5
	cp	0ffh
	jp	z,MM01ca
	ld	hl,(0080h)
	srl	h
	rr	l
	srl	h
	rr	l
	srl	h
	rr	l
	ld	a,2fh
	and	a
	ld	de,64h
MM0414	inc	a
	sbc	hl,de
	jr	nc,MM0414
	add	hl,de
	cp	30h
	ld	b,1
	jr	nz,MM0423
	ld	a,20h
	dec	b
MM0423	ld	(0ff82h),a
	and	a
	ld	de,0ah
	ld	a,2fh
MM042c	inc	a
	sbc	hl,de
	jr	nc,MM042c
	add	hl,de
	dec	b
	jr	z,MM043b
	cp	30h
	jr	nz,MM043b
	ld	a,20h
MM043b	ld	(0ff83h),a
	ld	a,l
	add	a,30h
	ld	(0ff84h),a
	ld	hl,txt2
	ld	de,0ff85h
	ld	bc,11h
	ldir
	jp	MM020e
;
MM0452	bit	3,b
	jr	z,MM04ab
	ld	hl,BUFF6
	ld	(BUFF2),hl
	ld	hl,2
	ld	(BUFF3),hl
	ld	l,h
	ld	(BUFF4),hl
	ld	bc,(BUFF3)
	ld	e,1bh
	call	MM060c
MM046f	ld	bc,(BUFF2)
	ld	e,21h
	call	MM060c
	ld	bc,(BUFF4)
	ld	e,1eh
	call	MM060c
	ld	e,24h
	call	MM060c
	ld	h,a
	and	a
	jp	nz,MM01ca
	ld	hl,(BUFF2)
	ld	de,80h
	add	hl,de
	ld	(BUFF2),hl
	ld	a,(BUFF4)
	inc	a
	ld	(BUFF4),a
	cp	20h
	jr	nz,MM046f
	ld	hl,BUFF6
	ld	(BUFF2),hl
	ld	a,80h
	ld	(BUFF4),a
MM04ab	ld	b,3
	ld	hl,0ff82h
	ld	a,(BUFF4)
	and	a
	jr	nz,MM04be
	ld	a,4
	ld	(0ff80h),a
	jp	MM017c
;
MM04be	ld	a,(BUFF4)
	dec	a
	ld	(BUFF4),a
	ld	ix,(BUFF2)
	ld	a,(ix)
	or	(ix+0ch)
	jr	z,MM04dc
	ld	de,20h
	add	ix,de
	ld	(BUFF2),ix
	jr	MM0500
;
MM04dc	inc	ix
	ld	c,0bh
MM04e0	ld	a,(ix)
	ld	m,a
	inc	ix
	inc	hl
	dec	c
	jr	nz,MM04e0
	ld	m,20h
	inc	hl
	ld	de,14h
	add	ix,de
	ld	(BUFF2),ix
	djnz	MM0500
MM04f8	ld	m,0dh
	inc	hl
	ld	m,0ah
	jp	MM020e
;
MM0500	ld	a,(BUFF4)
	and	a
	jr	nz,MM04be
MM0506	ld	c,0ch
MM0508	ld	m,20h
	inc	hl
	dec	c
	jr	nz,MM0508
	djnz	MM0506
	jr	MM04f8
;
MM0512	call	MM058b
	jp	c,MM01d6
	ld	c,13h
MM051a	ld	de,5ch
	call	5
	cp	0ffh
	jp	z,MM01ca
	jp	MM020e
;
MM0528	bit	3,b
	jr	z,MM053d
	call	MM058b
	ld	hl,5ch
	ld	de,BUFF6
	ld	bc,10h
	ldir
	jp	MM020e
;
MM053d	call	MM058b
	ld	hl,5ch
	ld	de,6ch
	ld	bc,10h
	ldir
	ld	hl,BUFF6
	ld	de,5ch
	ld	c,10h
	ldir
	ld	c,17h
	jr	MM051a
;
MM0559	call	MM058b
	ld	hl,65h
	set	7,m
MM0561	ld	c,1eh
	ld	de,5ch
	jp	MM051a
;
MM0569	call	MM058b
	ld	hl,65h
	res	7,m
	jr	MM0561
;
BYTE1	equ	$
	ret
;
txt2	equ	$
	defm	' kbyte frei !  '
	defb	0ah,0dh
MM0585	ld	hl,6080h
	ld	(BUFF1),hl
MM058b	xor	a
	ld	(BUFF5),a
	ld	hl,5ch
	ld	a,(0fd81h)
	inc	a
	ld	m,a
	inc	hl
	ld	b,0bh
	ld	de,0ff82h
	ld	a,(de)
	bit	7,a
	jr	nz,MM05f1
	ld	b,8
MM05a1	ld	a,(de)
MM05a2	inc	de
MM05a3	cp	2eh
	jr	z,MM05e7
	cp	20h
	jr	nc,MM05ad
	ld	a,20h
MM05ad	ld	m,a
	inc	hl
	djnz	MM05a1
MM05b1	ld	a,(de)
	cp	2eh
	jr	nz,MM05ba
	ld	(BUFF5),a
	inc	de
MM05ba	ld	b,3
MM05bc	ld	a,(de)
	inc	de
	cp	20h
	jr	nc,MM05c4
	ld	a,20h
MM05c4	ld	m,a
	inc	hl
	djnz	MM05bc
MM05c8	ld	b,16h
MM05ca	ld	m,0
	inc	hl
	djnz	MM05ca
	ld	de,5ch
	ld	hl,005dh
	ld	b,0bh
MM05d7	ld	a,m
	inc	hl
	cp	20h
	jr	c,MM05e5
	cp	7fh
	jr	nc,MM05e5
MM05e1	djnz	MM05d7
	and	a
	ret
;
MM05e5	scf
	ret
;
MM05e7	ld	m,20h
	inc	hl
	djnz	MM05e7
	ld	(BUFF5),a
	jr	MM05b1
;
MM05f1	ld	hl,65h
	ld	b,3
MM05f6	ld	a,(de)
	and	7fh
	ld	m,a
	inc	de
	inc	hl
	djnz	MM05f6
	ld	hl,5dh
	ld	bc,8
	ex	de,hl
	ldir
	ld	hl,68h
	JR	MM05c8
;
MM060c	ld	d,0
	ld	hl,(0001)
	add	hl,de
	jp	hl
;
;------ MERKPUFFER ------------------
;
BUFF1	equ	$
 	db	1,80h
	ds	1,0
BUFF2	equ	$
	ds	2,0
BUFF3	equ	$
	ds	2,0
BUFF4	equ	$
	ds	2,0
BUFF5	equ	$
	ds	1,0
INIT	equ	$
	db	2
	db	'INITIAL UUU'
	ds	24,0
BUFF6	equ	$
	db	'270688'
MM0647	ds	9,0
	db	2
	ds	2,0
	db	9bh
	ds	2,0
	db	0e0h
	ds	36,0
MM067b	ds	100,0
TEST	equ	$
	db	0
	db	'INITIAL SUB'
	ds	24,0
	end

TEST:¸
MM067B:„
MM0647:~
BUFF6:Z
0e0h
	ds	36,0
MM067b	ds	100,0
TEST	equ	$
	db	0
	db	'INITIAL SUB'
	ds	24,0
	end

TEST:¸
MM067B:„
MM0647:~
BUFF6:Z
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded