|
DataMuseum.dkPresents historical artifacts from the history of: Jet Computer Jet80 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Jet Computer Jet80 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 10368 (0x2880) Types: TextFile Names: »WDRIVES.ASM«
└─⟦7303e23ba⟧ Bits:30003507 JET80 System diskette └─ ⟦this⟧ »WDRIVES.ASM«
TITLE 'WDRIVES.ASM TABLES FOR DISKETTE AND WINCHESTER' ;************************************************************** ;* * ;* MODULE FOR DEFINING THE FLOPPY- AND WINCHER- * ;* UNITS IN THE SYSTEM. * ;* * ;************************************************************** ; LATEST CHANGE: 1984-06-18. PSW ; BIOSREVISION D. ; FOR THE RMAC ASSEMBLER TRUE EQU 0FFH FALSE EQU 0 PAGE 42 ;****************************************************************** ; What kind of floppy do You want ? VERIFY EQU TRUE ; Verify after write. M8 EQU FALSE ; A: 8" 2x77x8x1024, 256 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT0 M5 EQU FALSE ; A: 5" 2x77x8x1024, 256 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT0 MIN96 EQU TRUE ; A: 5" 2x80x5x1024, 128 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT0 ; MARK CORRECT FLOPPPY TYPE WITH TRUE. NOTE ONLY ONE TRUE. ;****************************************************************** ;****************************************************************** ; What kind of winchester do You want ? RO352 EQU TRUE ; Rodime 352 ;****************************************************************** ; Consult the XEBEC-manual for the two following constants: LEAV EQU 7 ; INTERLEAV FACTOR used at formatting. RESTEP EQU 00000100B ; RETRY & BUFF STEP OPTION. ;****************************************************************** ; Diskdrive size and number of directory entries. E512 EQU TRUE ; 512 ENTRIES E1024 EQU FALSE ; 1024 ENTRIES REDUCE EQU 34 ; # of kBytes to reduce from second ; winchester unit. ;NOTE. The size of this reduce factor is depending on how many bad ; tracks the formatter utility has found on the disk. ; If the formatter tells You that it has reduced more kBytes ; than this factor, You must change this factor immediatly ; and generate a new operating system before copying any files ; to the winchester. ;***************************************************************** PAGE ; CONSTANTS: RATE0 EQU 00000000B ; Floppy step rate 3ms/6ms RATE1 EQU 00000001B ; Floppy step rate 6ms/12ms RATE2 EQU 00000010B ; Floppy step rate 10ms/20ms RATE3 EQU 00000011B ; Floppy step rate 15ms/30ms UNIT0 EQU 00000000B ; Floppy phys. unit 0 UNIT1 EQU 00000001B ; Floppy phys. unit 1 UNIT2 EQU 00000010B ; Floppy phys. unit 2 UNIT3 EQU 00000011B ; Floppy phys. unit 3 WUNIT0 EQU 00000000B ; Winchester phys. unit 0 WUNIT1 EQU 00100000B ; Winchester phys. unit 1 INCH5 EQU 00001000B ; 5"-FLOPPY INCH8 EQU 11010100B ; 8"-FLOPPY DOUBLD EQU 00000000B ; DOUBLE DENSITY SINGLD EQU 00100000B ; SINGLE DENSITY IF E512 ENT EQU 512 AL1 EQU 0 ELSE ENT EQU 1024 AL1 EQU 0FFH ENDIF COMM EQU 0BCH IF M8 SIGN EQU '8' ELSE SIGN EQU '5' ENDIF PAGE EXTRN FDREAD,FDWRIT,FDLGIN,FDINIT EXTRN WREAD,WWRIT,WINIT,WINITD,WLGIN PUBLIC @DTBL,?TITEL PUBLIC @COMMO CSEG @DTBL: DW FLA,WINA,WINB,FLD ; This order must not be changed. DW 0,0,0,0 ; Check boot-routine in DW 0,0,0,0 ; BIOSKRNL.Z80▶8a◀ DW 0,0,0,0 @COMMO: DB COMM PAGE DSEG ; Define WINCHESTER UNIT 0. DW WWRIT DW WREAD DW WLGIN DW WINIT DB WUNIT0 ; PHYSICAL UNIT FOR XEBEC.▶8a◀ DB 0 WINA: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAGG DW WIN0 ; ADDRESS TO DPB DW 0 ; NO CHECKSUM VECTOR DW 0FFFEH ; ALLOC VECTOR GEN. BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM CALC DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK. ; Define WINCHESTER UNIT 1. DW WWRIT DW WREAD DW WLGIN DW WINITD DB WUNIT0 ; PHYSICAL UNIT FOR XEBEC. DB 0 WINB: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAGG DW WIN1 ; ADDRESS TO DPB DW 0 ; NO CHECKSUM VECTOR DW 0FFFEH ; ALLOC VECTOR GEN. BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM CALC DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK. IF M8 ; Define 8" 2x77x8x1024, 256 entries. UNIT A: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH8+UNIT0+DOUBLD ; $FDXSL DB 0 ; FLA: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAGG DW F8D ; ADDRESS TO DPB DW 0FFFEH ; CHECKSUM VECTOR GEN. BY GENCPM DW 0FFFEH ; ALLOC VECTOR GEN. BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM CALC DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK. ENDIF IF M5 ; Define 5.25" 2x77x8x1024, 256 entries. UNIT A: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH5+UNIT0+DOUBLD+11000000B ; $FDXSL 2 MHz 8" Mode DB 0 ; FLA: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAGG DW F5MAX ; ADDRESS TO DPB DW 0FFFEH ; CHECKSUM VECTOR GEN BY GENCPM DW 0FFFEH ; ALLOC VECTOR GEN BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM CALC DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK. ENDIF IF MIN96 ; Define 5.25" 2x80x5x1024, 128 entries. UNIT A: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH5+UNIT0+DOUBLD ; $FDXSL DB 0 ; FLA: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAGG DW F596D ; ADDRESS TO DPB DW 0FFFEH ; CHECKSUM VECTOR GEN BY GENCPM DW 0FFFEH ; ALLOC VECTOR GEN BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM CALC DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK. ENDIF ; Define 8" 1x77x26x128, 64 entries (IBM). UNIT D: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH8+UNIT0+SINGLD ; $FDXSL DB 0 ; FLD: DW TRANS ; TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAGG DW F8S ; ADDRESS TO DPB DW 0FFFEH ; CHECKSUM VECTOR GEN. BY GENCPM DW 0FFFEH ; ALLOC VECTOR GEN. BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM CALC DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK. CSEG ; DPB for 8" 2x77x8x1024, 256 entries. F8D: DW 64 ; Number of logical sect/track DB 4,0FH ; BLOCK SKIFT and MASK DB 0 ; EXTENT MASK DW 607 ; MAX BLOCKNUMBER DW 256-1 ; 256 DIR. ENTRIES DB 0F0H,0 ; ALLOC VECTOR TO DIR DW 256/4 ; CHECKSUMMA SIZE DW 2 ; NUMBER OF OFFSET TRACKS DB 0 ; PHYS. SECTOR SIZE DB 0 ; PHYS. SECTOR SHIFT-MASK DB 0 ; Floppy DB 8 ; No. of log.sec./phys. sec. DB 22 ; Read time out DB 19 ; Write time out DB 0FFH ; Double sided DB VERIFY ; Verify after write DB RATE0 ; Step rate DB INCH8+DOUBLD ; Boot select DB 0,0,0,0,0,0 ; Dummies ; DPB for 8" 1x77x26x128, 64 entries. (IBM) F8S: DW 26 ; No. of logical sectors/track. DB 3,7 ; BLOCK SKIFT AND MASK DB 0 ; EXTENT MASK DW 242 ; MAX BLOCKNUMBER DW 64-1 ; 64 DIR. ENTRIES DB 0C0H,0 ; ALLOC VECTOR TO DIR DW 64/4 ; CHECKSUM SIZE DW 2 ; OFFSET TRACK DB 0 ; PHYS.SECTOR SIZE DB 0 ; PHYS. SECTOR SHIFT-MASK DB 0 ; Floppy DB 1 ; No. of logical sectors/phys. sector. DB 22 ; Read time out DB 19 ; Write time out DB 0 ; Single sided DB VERIFY ; Verify after write DB RATE0 ; Step rate DB INCH8+SINGLD ; Boot select DB 0,0,0,0,0,0 ; Dummies ; DPB for 5.25" 2x77x8x1024, 256 entries. F5MAX: DW 64 ; No. of logical sectors/track. DB 4,0FH ; BLOCK SKIFT AND MASK DB 0 ; EXTENT MASK DW 607 ; MAX BLOCKNUMBER DW 256-1 ; 256 DIR. ENTRIES DB 0F0H,0 ; ALLOC VECTOR TO DIR DW 256/4 ; CHECKSUM SIZE DW 2 ; OFFSET TRACKS DB 0 ; PHYS. SECTOR SIZE DB 0 ; PHYS. SECTOR SHIFT-MASK DB 0 ; Floppy DB 8 ; No. of logical sectors/phys. sector. DB 22 ; Read time out DB 19 ; Write time out DB 0FFH ; Double sided DB VERIFY ; Verify after write DB RATE0 ; Step rate DB INCH5+DOUBLD+11000000B ; Boot select DB 0,0,0,0,0,0 ; Dummies ; DPB for 5.25" 2x80x5x1024, 128 entries. F596D: DW 40 ; No. of logical sectors/track. DB 4,0FH ; BLOCK SKIFT AND MASK DB 0 ; EXTENT MASK DW 394 ; MAX BLOCKNUMBER DW 128-1 ; 128 DIR. ENTRIES DB 0C0H,0 ; ALLOC VECTOR TO DIR DW 128/4 ; CHECKSUM SIZE DW 2 ; OFFSET TRACKS DB 0 ; PHYS. SECTOR SIZE DB 0 ; PHYS. SECTOR SHIFT-MASK DB 0 ; Floppy DB 8 ; No. of logical sectors/phys. sector. DB 22 ; Read time out DB 19 ; Write time out DB 0FFH ; Double sided DB VERIFY ; Verify after write DB RATE0 ; Step rate DB INCH5+DOUBLD ; Boot select DB 0,0,0,0,0,0 ; Dummies ; Winchester: Rodime 352 IF RO352 SIGN1 EQU '1' SIGN2 EQU '0' WIN0: DW 68 ; No of logical sectors/track. DB 4,0FH ; BLOCK SHIF AND MASK▶8a◀ DB 0 ; EXTENT MASK DW 2578 ; MAX BLOCKNUMMER DW ENT-1 ; DIR. ENTRIES DB 0FFH,AL1 ; ALLOC VECTOR TO DIR DW 8000H ; CHECKSUM SIZE (none) DW 1 ; OFFSET TRACKS DB 0 ; Phys. sector size DB 0 ; Phys. sector shift mask. DB 1 ; Winchester 1st. part. DB 4 ; No. of logical sector/phys. sector DB 50 ; Read time out DB 19 ; Write time out DB 255-LEAV ; Interleav (Inv) DB 255-RESTEP ; Retry & Buff step option DB 255-1 ; No of cylinders Hbyte DB 255-50 ; - " - Lbyte DB 255-4 ; No of heads. DB 255-0 ; Red. write cyl Hbyte DB 255-0 ; - " - Lbyte DB 255-0 ; Write precomp. cyl Hbyte DB 255-0 ; - " - Lbyte DB 255-11 ; ECC WIN1: DW 68 ; No. of logical sectors/track. DB 4,0FH ; BLOCK SKIFT AND MASK DB 0 ; EXTENT MASK DW 2617-(REDUCE/2) ; MAX BLOCKNUMBER DW ENT-1 ; DIR. ENTRIES DB 0FFH,AL1 ; ALLOC VECTOR TO DIR DW 8000H ; CHECKSUM SIZE (none) DW 608 ; OFFSET TRACK DB 0 ; PHYS. SECTOR SIZE DB 0 ; PHYS. SECTOR SHIFT MASK DB 2 ; Winchester 2nd part. DB 4 ; No of logical sectors/phys. sector DB 50 ; Read time out DB 19 ; Write time out DB 255-LEAV ; Interleav (Inv) DB 255-RESTEP ; Retry & Buff step option DB 255-1 ; No of cylinders Hbyte DB 255-50 ; - " - Lbyte DB 255-4 ; No. of heads. DB 255-0 ; Red. write cyl Hbyte DB 255-0 ; - " - Lbyte DB 255-0 ; Write precomp. cyl Hbyte DB 255-0 ; - " - Lbyte DB 255-11 ; ECC ENDIF ?TITEL: DB '80. ' DB SIGN,'"-floppy ' IF M8 ELSE IF M5 DB '1,2 MByte ' ELSE DB '800 KByte ' ENDIF ENDIF DB SIGN1,SIGN2,' MBytes winchester.',13,10,0 TRANS: DB 1,7,13,19,25 DB 5,11,17,23 DB 3,9,15,21 DB 2,8,14,20,26 DB 6,12,18,24 DB 4,10,16,22 END «eof»