home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
BEEHIVE
/
UTILITYS
/
SCNTODS.ARC
/
SCNTODS.Z80
< prev
Wrap
Text File
|
1989-09-27
|
4KB
|
334 lines
ASEG
.Z80
.RADIX 10D
MACLIB MACROS.LIB
ORG 100H
JP OVER
BDOS EQU 5
CR EQU 0DH
LF EQU 0AH
FILEN: DS 12
INTO: DB 13,'EPTEMP $$$'
DB 6BH
DB 40H
DB 51H
DB 37H
DB 12H
DB 09H
DB 12H
DB 12H
DB 48H
DB 0FH
DB 2FH
DB 0FH
DB 0
DB 0
DB 0
CTREND: DB 0
SAVEM: LD DE,128
PUSH BC
PUSH HL
PUSH DE
LD C,26
EX DE,HL
CALL BDOS
LD DE,5CH
LD C,21
CALL BDOS
POP DE
POP HL
POP BC
ADD HL,DE
DEC BC
LD A,B
OR C
JP NZ,SAVEM
; LD C,16
; LD DE,5CH
; CALL BDOS
RET
NEWFIL: CALL RESFIL
XOR A
LD (7CH),A
PUSH HL
PUSH BC
LD HL,5CH+12
LD DE,5CH+13
LD BC,5
LD (HL),0
LDIR
POP BC
POP HL
PUSH HL
PUSH BC
LD C,19
LD DE,5CH
CALL BDOS
LD C,22
LD DE,5CH
CALL BDOS
LD C,15
LD DE,5CH
CALL BDOS
POP BC
POP HL
RET
CLOSE: LD C,16
LD DE,5CH
CALL BDOS
RET
LOADM: PUSHALL
PUSH HL
LD A,0
LD (7CH),A
LD HL,5CH+12
LD DE,5CH+13
LD BC,6
LD (HL),0
LDIR
LD DE,5CH
LD C,15
CALL BDOS
CP 0FFH
JP Z,LODERR
POP HL
LD DE,128
LOOP1: EX DE,HL
PUSH HL
PUSH DE
LD C,26
CALL BDOS ; FILE LOAD ROUTINE
POP DE
POP HL
EX DE,HL
ADD HL,DE
PUSH HL
PUSH DE
LD DE,5CH
LD C,20
CALL BDOS
POP DE
POP HL
OR A
JR Z,LOOP1
LD DE,5CH
LD C,16
CALL BDOS
POPALL
LD A,0
RET
LODERR: POP HL
POPALL
LD A,2
RET
GETKEY: BIOS 2
RET
STOFIL: LD HL,INTO
LD DE,FILEN
LD BC,12
LDIR
LD HL,FILEN
LD (HL),13
CALL RESFIL
RET
RESFIL: PUSHALL
LD DE,5CH
LD HL,FILEN
LD BC,12
LDIR
XOR A
LD (7CH),A
LD HL,5CH+12
LD DE,5CH+13
LD BC,6
LD (HL),0
LDIR
POPALL
RET
PUT4: PUSH AF
LD A,0
LD (DE),A
INC DE
LD (DE),A
INC DE
LD (DE),A
INC DE
LD (DE),A
INC DE
POP AF
RET
WR16: PUSHALL
LD HL,8000H
LD DE,8001H
LD BC,0A00H ; 20 SECTORS!
LD (HL),0
LDIR
LD HL,8000H
LD BC,18
CALL SAVEM
POPALL
RET
WR16D: LD DE,8000H ; BEFORE FILLING: WRITE XXXX NULLS TO FILE
; THEN WRITE SCREEN, THEN ANOTHER AMOUNT
; OF NULLS! 576*720 OR 72B*720B 405 SECTORS
NOFIN: CALL PUT4
LD A,128
PUSH BC
MOG: OUT (28),A
LD B,8
PUSH AF
PUSH HL
MOGGIE: LD A,255
SUB (HL)
LD (DE),A
INC DE
LD (HL),A
XOR A
PUSH DE
LD DE,16*16
ADD HL,DE
POP DE
DJNZ MOGGIE
POP HL
POP AF
INC A
CP 136
JP NZ,MOG
POP BC
DEC BC
INC HL
CALL PUT4
LD A,B
OR C
JP NZ,NOFIN
LD HL,8000H
LD BC,36
CALL SAVEM
RET
PUTCRT: LD B,16
CLOOP: LD A,B
DEC A
OUT (12),A
LD A,(HL)
OUT (13),A
DEC HL
DJNZ CLOOP
RET
OVER: LD (18000),A
LD HL,64000
LD DE,64001
LD BC,16
LD (HL),0
LDIR
LD E,1AH
LD C,2
CALL BDOS
LD HL,CTREND
CALL PUTCRT
LD HL,10000-128
CALL LOADM
CP 2
JP Z,0
HIRES2: LD A,7
LD B,8
LD HL,10000+1024
PUSH HL
LOOPIE: ADD A,128
OUT (28),A
SUB 128
POP HL
PUSH HL
LD DE,63488
PUSH BC
LD BC,2048
LDIR
POP BC
DEC A
LD DE,2048
POP HL
ADD HL,DE
PUSH HL
DJNZ LOOPIE
LD HL,10000+1024+8*2048
LD DE,61440
LD BC,1024
LDIR
LD HL,10000+9*2048
LD DE,61440
LD A,144
OUT (28),A
LD BC,1024
LDIR
LD A,128
OUT (28),A
LD HL,10000
LD DE,63488
LD A,64
OUT (8),A
LD BC,1024
LDIR
XOR A
OUT (8),A
CALL STOFIL
CALL NEWFIL
CALL WR16
CALL WR16
CALL WR16
CALL WR16
LD HL,63488
LD BC,16*4
CALL WR16D
LD HL,63488+64
LD BC,16*4
CALL WR16D
LD HL,63488+128
LD BC,16*4
CALL WR16D
LD HL,63488+128+64
LD BC,16*4
CALL WR16D
CALL WR16
CALL WR16
CALL WR16
CALL WR16
CALL WR16
CALL WR16
CALL WR16
CALL WR16
CALL WR16
CALL WR16 ; HOPEFULLY THIS ADDS UP!
CALL CLOSE
BIOS 2
CLS 2048
BIOS 0
RET
END