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
/
SIMTEL
/
CPMUG
/
CPMUG029.ARK
/
WSYSGEN.ASM
< prev
Wrap
Assembly Source File
|
1984-04-29
|
3KB
|
217 lines
;
;NSYSGEN RESOURCED 7/27/78 BY WARD CHRISTENSEN
; TO ADD LOOP FUNCTION ON 'PUT SYSTEM'
;
ORG 0100H
BDOS EQU 05H
BUFFER EQU 0900H
LXI SP,STACK
JMP START
KEYIN MVI C,01H
CALL BDOS
ANI 5FH
RET
TYPE MOV E,A
MVI C,02H
CALL BDOS
RET
CRLF MVI A,0DH
CALL TYPE
MVI A,0AH
CALL TYPE
RET
PRTMSG PUSH H
CALL CRLF
POP H
MSGLP MOV A,M
ORA A
RZ
PUSH H
CALL TYPE
POP H
INX H
JMP MSGLP
SELDSK MOV C,A
LHLD 0001H
LXI D,0018H
DAD D
PCHL
SETTRK LHLD 0001H
LXI D,001BH
DAD D
PCHL
SETSEC LHLD 0001H
LXI D,001EH
DAD D
PCHL
SETDMA LHLD 0001H
LXI D,0021H
DAD D
PCHL
READSEC LHLD 0001H
LXI D,0024H
DAD D
PCHL
WRSEC LHLD 0001H
LXI D,0027H
DAD D
PCHL
RWSYS LXI H,BUFFER
SHLD BUFAD
XRA A
STA TRKNO
LOOP LXI H,TRKNO
MOV A,M
CPI 02H
RNC
INR M
MOV C,A
CALL SETTRK
TRKLOOP XRA A
STA SECTNO
SECLOOP CALL CKEOTRK
NOP
NOP
NOP
JNC LOOP
INR M
LHLD BUFAD
MOV B,H
MOV C,L
LXI D,0080H
DAD D
SHLD BUFAD
CALL SETDMA
XRA A
STA ERRCT
RETRY LDA ERRCT
CPI 10
JC CONT
LXI H,PERRMSG
CALL PRTMSG
CALL KEYIN
CPI 0DH
JNZ REBOOT
CALL CRLF
JMP SECLOOP
CONT INR A
STA ERRCT
LDA SECTNO
MOV C,A
CALL SETSEC
LDA RWFLG
ORA A
JZ READING
CALL WRSEC
JMP CKRETCD
READING CALL READSEC
CKRETCD ORA A
JZ SECLOOP
JMP RETRY
KRET1 RET
START LXI H,VERSMSG
CALL PRTMSG
LXI H,GETMSG
CALL PRTMSG
CALL KEYIN
MVI C,01H
CPI 'Y'
JZ GETFRB
CPI 'B'
JZ GETFRB
MVI C,00H
CPI 'A'
JNZ ASKPUT
GETFRB MOV A,C
ADI 'A'
STA SRCDSK
MOV A,C
CALL SELDSK
CALL CRLF
LXI H,SRCMSG
CALL PRTMSG
CALL KEYIN
CPI 0DH
JNZ REBOOT
CALL CRLF
XRA A
STA RWFLG
CALL RWSYS
LXI H,CPLTMSG
CALL PRTMSG
ASKPUT CALL CRLF
LXI H,PUTMSG
CALL PRTMSG
CALL KEYIN
MVI C,01H
CPI 'Y'
JZ PUTSYS
CPI 'B'
JZ PUTSYS
MVI C,00H
CPI 'A'
JNZ REBOOT
PUTSYS MOV A,C
ADI 'A'
STA DESTDSK
MOV A,C
CALL SELDSK
CALL CRLF
LXI H,DESTMSG
CALL PRTMSG
CALL KEYIN
CPI 0DH
JNZ REBOOT
CALL CRLF
LXI H,RWFLG
MVI M,01H
CALL RWSYS
LXI H,CPLTMSG
CALL PRTMSG
JMP ASKPUT
REBOOT LXI H,BOOTMSG
CALL PRTMSG
CALL KEYIN
CPI 0DH
JNZ REBOOT
MVI A,00H
CALL SELDSK
CALL CRLF
JMP 0000H
VERSMSG DB 'SYSGEN VERSION 1.1',0
GETMSG DB 'GET SYSTEM? (Y/N)',0
SRCMSG DB 'SOURCE ON '
SRCDSK DB 'B, THEN TYPE RETURN',0
PUTMSG DB 'PUT SYSTEM? (Y/N)',0
DESTMSG DB 'DESTINATION ON '
DESTDSK DB 'B, THEN TYPE RETURN',0
PERRMSG DB 'PERMANENT ERROR, TYPE RETURN '
DB 'TO IGNORE',0
CPLTMSG DB 'FUNCTION COMPLETE',0
BOOTMSG DB 'REBOOTING, TYPE RETURN'
DB 0,0
TRKNO DB 0
SECTNO DB 0
RWFLG DB 0
BUFAD DW 0000H
ERRCT DB 0
DS 0014H
STACK DS 001FH
;
;CHECK FOR END OF TRK
;
CKEOTRK LXI H,TRKNO
MOV A,M
DCR A
DCR A
JZ TRKTWO
LXI H,SECTNO
MOV A,M
CPI 1AH
RET
TRKTWO LXI H,SECTNO
MOV A,M
CPI 22H
RET
END