TITLE 'CompuPro Disk Sub-system CP/M-86 BIOS.' DEBUG EQU 0 ; list m ; ; +-----------------------+ ; | | ; | C B I O S | ; | | ; +-----------------------+ ; ; ; CompuPro Sorcim ; Oakland, CA Santa Clara, CA ; ; Copyright 1981, Sorcim Corporation. ; Copyright 1982, CompuPro div. Godbout Electronics ; ; This product is a copyright program product of ; SORCIM and is supplied for use with the CompuPro ; Disk controllers. ; ; CPm-86 Version number: 1.0 ; Level A 80-10-27 ; B 81-02-04 ; C 81-04-17 ; D 81-04-28 ;Beta test release ; E 81-05-03 ;Fix BioSeg presumption ; F 81-07-17 ;Fix Single to double density xfer ; G 81-09-10 ;Add Interfacer 3, fix boot from 1024 ; byte sector diskette, fix I/O ; on double sided diskettes. ; H 81-10-31 ;Add list device to interfacer 3 ; Initialize stack on cold boot ; J 81-12-3 ;Fix Copysys.cmd boot without SS1 ; K-M 82-6-4 ;Upped to CP/M 86 1.1 ; L 82-9-9 ;System Support list device changed ; to I/O 3/4 user 4, ; UL1 is I/O 3/4 user 5 to be ; compatible with MP/M 816 ; MA 82-6-4 ;Hard disk drivers for Disk 2 add ; PA 82-11-3 ;Memory disk code added. llo. ; PA 83-2-8 ;CP/M 816 added. llo. ; PB 83-4-14 ;DISK 3 code added. llo. ; PC 83-10-19 ;DISK 3 code modified for new firmware ; PD 83-11-14 ;DISK 3 code fixed for 8086/80286 ; ; The following code is supplied to customers who ; purchase a hard/floppy disk system from CompuPro. ; The intent of the following code is to illustrate ; how to create a CBIOS for the user supplied ; CP/M-86. The following CBIOS was developed and ; tested using the following hardware components. ; ; CompuPro IEEE 696 Floppy Disk Controller. ; CompuPro IEEE 696 chassis and motherboards. ; CompuPro IEEE 696 Dual Processor board. ; CompuPro IEEE 696 CPU 86/87 Processor board. ; CompuPro IEEE 696 RAM 17 boards (2). ; CompuPro IEEE 696 Interfacer I (assigned port 0 thru 3). ; CompuPro IEEE 696 Disk 2 Hard disk controller. ; CompuPro IEEE 696 M-DRIVE/H Memory disk board ; CompuPro IEEE 696 DISK3 ST506 hard disk controller. OPARM SET *o ;capture o-parameter VERS: EQU 11 CBIOSV: EQU 16 ;CBIOS revision level (ver 1.1P) floppy CBIOSH: EQU 4 ;CBIOS revision level (ver 1.1PD) hard FALSE: EQU 1 = 2 TRUE: EQU not FALSE CPU '8088' CPM816: EQU TRUE ;True for Assembely of CP/M 816 ; Decipher memory lengths (in paragraph units). LOMEM = (OPARM and 0FFFh)*(1024/16) ;length of lower memory OPARM: SET OPARM shr 12 HPARM: SET OPARM and 3 IF HPARM = 3 HPARM: SET 4 endif HIMEM = HPARM * (4000h/16) ;upper mem paras SysSeg = 410h /16 @LDR = OPARM and 4 if @LDR MSG 'Assembling for LOADER.CMD' BioSeg = 4000h L$CCP = 0400h ;length of LdCpm L$DOS = 0E00h ;length of LdBdos else if cpm816 MSG 'Assembling for CPM.SYS 816' BioSeg = SysSeg L$CCP = 0B00H L$DOS = 01D00H ;Length of CP/M 86 BDOS else MSG 'Assembling for CPM.SYS' BioSeg = SysSeg L$CCP = 0B00h L$DOS = 1A00h ;length of CP/M 816 BDOS endif endif space 4,20 ; Link files. LINK GBCBIOS0.a86 ;System equates LINK GBCBIOS1.a86 ;Jump Table LINK GBCBIOS2.a86 ;CP/M disk definitions LINK GBCBIOS3.a86 ;Unit record I/O LINK GBCBIOS4.a86 ;Non data transfer disk LINK GBCBIOS5.a86 ;Cold and Warm boot LINK GBCBIOS6.a86 ;Disk data transfer I/O LINK GBCBIOS7.a86 ;Hard disk transfer I/O LINK GBCBIOS8.a86 ;Utility routines LINK GBCBIOS9.a86 ;Initialized CBIOS storage cells LINK GBCBIOSA.A86 ;Cold boot data LINK GBCBIOSB.A86 ;Unitialized data