; COLD BOOTER FOR S. D. SALES VERSAFLOPPY ; VERSION 2.0 8/21/79 USED WITH CP/M VERSION 2.0 MSIZE EQU 56 ;SYSTEM SIZE IN KILOBYTES CBIOS EQU .RES.(MSIZE*1024-600H) CPMB EQU .RES.(CBIOS-1600H) ;LOAD ADDRESS FOR CP/M BDOS EQU .RES.(CBIOS-0DFAH) ;BDOS ENTRY POINT NSECTS EQU 33H ;# SECTORS IN BOOT BIOS EQU 0F000H ;PROM BIOS ADDRESS LOADER EQU BIOS+2DH ;LOADER ENTRY WBOOT EQU CBIOS+3 ;WARM BOOT ENTRY SETDMA EQU BIOS+24H ;SETDMA ENTRY PRINTR EQU 78H ;PORT USED TO INIT PRINTER ; RAM LOCATIONS USED BY BIOS RBASE EQU 0 ; START OF RAM TADDR EQU RBASE+40H ; DISK TRANSFER ADDRES UNIT EQU RBASE+42H ; DISK DRIVE UNIT # SCTR EQU RBASE+43H ; SECTOR TRK EQU RBASE+44H ; TRACK NREC EQU RBASE+45H ; NUMBER OF SECTORS ORG 80H COLD: LD HL,CPMB ; LOAD ADDRESS OF CP/M LD (TADDR),HL LD A,NSECTS ; # SECTORS IN BOOT LD (NREC),A XOR A LD (TRK),A LD (UNIT),A ; BOOT FROM TRK0, UNIT0 LD A,2 LD (SCTR),A ; BOOT FROM SECTOR 2 CALL LOADER ; LOAD CP/M JR Z,COLD0 ; IF NO ERROR, JUMP HALT ; IF ERROR, HALT COLD0: LD A,0C3H ; OP CODE FOR 'JP' LD (0),A LD HL,WBOOT LD (1),HL ; WARM BOOT VECTOR AT 0 LD (5),A LD HL,BDOS LD (6),HL ; BDOS VECTOR AT 5 LD BC,COLD CALL SETDMA LD A,5 OUT (PRINTR),A LD A,20H OUT (PRINTR),A XOR A LD (4),A ; DEFAULT DISK UNIT LD C,A LD SP,COLD JP CPMB END