; NEW BIOS BOOT MAINTENENCE PROGRAM ; ;PURPOSE ; THIS PROGRAM PROVIDES THE MEANS TO SYSGEN A NEW ; BIOS CP/M SYSTEM. IT WRITES THE BOOT, BDOS AND BIOS TO ; THE SYSTEM TRACKS OF DISK B. IT CAN BE USED FOR MULTIPLE ; GENERATIONS WITH AN OPTIONAL SYSTEM OBTAINED FROM DRIVE ; A. ;DATE WRITTEN ; MAY 23, 1980 WITH THE HELP OF S.J. SINGER'S PGEN PROGRAM ;OUTLINE ; TO GENERATE A NEW SYSTEM, DO THE FOLLOWING: ; DDT CPMXX.COM (XX = MEMORY SIZE) ; -M1180,1F80,980 ; -I21BIOS.HEX ; -H1780,NNNN (NNNN = START OF BIOS, ; SEE ASSEMBLY LISTING.) ; XXXX YYYY ; -RYYYY (LOADS BIOS) ; -^C ; NPGEN ; GET SYSTEM (Y/N)? N ; PUT SYSTEM (Y/N)? Y ; ETC. ; TOGENERATE FROM AN OLD SYSTEM, JUST RUN NPGEN TELLING ; IT TO GET THE SYSTEM FROM DRIVE A. ; ; MACLIB MACRO ;INCLUDE MACROS FALSE EQU 00H TRUE EQU NOT FALSE ; SPOOL EQU FALSE ;TRUE FOR KLH SPOOLER ; ; MSIZE EQU 61 ;MEMORY SIZE IN KBYTES CBASE EQU (MSIZE-20)*1024 CPMB EQU CBASE+3400H ;START OF CP/M BDOS EQU CPMB+0800H ;START OF BDOS (ROUNDED TO ; EVEN SECTOR BOUNDARY) BIOS EQU CPMB+1600H ;START OF BIOS IF SPOOL JMPDSP EQU 033H+9 ;DISPLACEMENT TO SPECIAL BIOS JUMPS ENDIF IF NOT SPOOL JMPDSP EQU 033H ;DISPLACEMENT TO SPECIAL BIOS JUMPS ENDIF TPA EQU 100H RDCON EQU 1 WRBUF EQU 9 START EQU 900H FBYTE EQU 97FH ;DISK FORMAT BYTE LOCATION ; ; ; ORG TPA ; ; LXI H,0 ;ZERO HL DAD SP ;GET OLD STACK POINTER SHLD OLDSTK ;AND SAVE IT LHLD 1 SHLD SAVADR LXI SP,STACK MAIN: PRINT PRINT CALL GET$BOOTER CALL PUT$BOOTER JMP REBOOT ; ; SELDSK: ;SELECT DISK PUSH H LHLD 1 MVI L,00H+JMPDSP XTHL RET ; ; HOME: ;HOME DISK PUSH H LHLD 1 MVI L,03H+JMPDSP XTHL RET ; ; SEEK: ;SEEK TRACK PUSH H LHLD 1 MVI L,06H+JMPDSP XTHL RET ; ; READ: ;READ A SECTOR PUSH H LHLD 1 MVI L,09H+JMPDSP XTHL RET ; WRITE: ;WRITE A SECTOR PUSH H LHLD 1 MVI L,0C