DEP ASM
;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
|
|