; CP/M BASIC INPUT/OUTPUT OPERATING SYSTEM (BIOS) ; This version boots in SINGLE OR DOUBLE DENSITY ; IT LINKS TO MYDDPROM.Z80 IN PROM ; PROM EQU 0F800H ;LOCATION OF ROM CONTAINING MAIN BIOS MSIZE EQU 60 ;MEMORY SIZE IN KBYTES. CBASE EQU (MSIZE-21)*1024 ;BIAS FOR CPM LARGER THAN 17K.(NOTE I ALLOW A ;2K BIOS TO MAKE ROOM FOR A VDM BOARD AT EC00H) CCP EQU CBASE+3400H ;START OF CPM BIOS EQU CCP+1600H ORG BIOS ;START OF BIOS. BOOT: JMP PROM ;FROM COLD START LOADER. WBOOTE: JMP PROM+03H ;FROM WARM BOOT. JMP PROM+06H ;CHECK CONSOLE KB STATUS. JMP PROM+09H ;READ CONSOLE CHARACTER. CONOT: JMP PROM+0CH ;WRITE CONSOLE CHARACTER. JMP PROM+0FH ;WRITE LISTING CHAR. JMP PROM+12H ;WRITE PUNCH CHAR. JMP PROM+15H ;READ READER CHAR. JMP PROM+18H ;MOVE DISK TO TRACK ZERO. JMP TEMPSELDSK ;SELECT DISK DRIVE. JMP PROM+1EH ;SEEK TO TRACK IN REG A. JMP PROM+21H ;SET SECTOR NUMBER. JMP PROM+24H ;SET DISK STARTING ADR. JMP PROM+27H ;READ SELECTED SECTOR. JMP PROM+2AH ;WRITE SELECTED SECTOR. JMP PROM+2DH ;LIST STATUS CHECK JMP PROM+30H ;SECTOR TRANSLATE ROUTINE MACLIB DISKDEF ;***************************************************************************** DISKS 4 DISKDEF 0,1,26,6,1024,243,64,64,2 DISKDEF 1,0 DISKDEF 2,1,50,1,2048,234,64,64,2 DISKDEF 3,2 ;****************************************************************************** ; ; TEMPSELDSK CALL PROM+1BH LXI D,DPBASE DAD H DAD H DAD H DAD H DAD D RET ; ; ENDEF ; ;END