|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 12032 (0x2f00) Types: TextFile Names: »FDRIVES.ASM«
└─⟦7303e23ba⟧ Bits:30003507 JET80 System diskette └─ ⟦this⟧ »FDRIVES.ASM« └─⟦a844860b7⟧ Bits:30002858 CP/M Plus (tm) Version 3.0 for JET80 └─ ⟦this⟧ »FDRIVES.ASM« └─⟦c10cc8855⟧ Bits:30002859 CP/M Plus med Hit & Dit filoverførsel for JET80 └─ ⟦this⟧ »FDRIVES.ASM«
TITLE 'FDRIVES.ASM TABLES FOR DISKETTES' ;********************************************************* ;* DEFINITION MODULE FOR THE FLOPPIES IN THE SYSTEM * ;********************************************************* ; LATEST CHANGE: 1984-06-13. PSW ; BIOSREVISION D. ; FOR THE RMAC ASSEMBLER TRUE EQU 0FFH FALSE EQU 0 ;****************************************************************** ; What kind of floppy system do You want ? VERIFY EQU TRUE ; Verify after write. M8 EQU FALSE ; A: 8" 2x77x8x1024, 256 ent. UNIT0 ; B: 8" 2x77x8x1024, 256 ent. UNIT1 ; C: 5" 2x80x5x1024, 128 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT1 M5 EQU FALSE ; A: 5" 2x77x8x1024, 256 ent. UNIT0 ; B: 5" 2x77x8x1024, 256 ent. UNIT1 ; C: 8" 2x77x8x1024, 256 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT0 M596D EQU TRUE ; A: 5" 2x80x5x1024, 128 ent. UNIT0 ; B: 5" 2x80x5x1024, 128 ent. UNIT1 ; C: 8" 2x77x8x1024, 256 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT0 M548D EQU FALSE ; A: 5" 2x40x5x1024, 128 ent. UNIT0 ; B: 5" 2x40x5x1024, 128 ent. UNIT1 ; C: 8" 2x77x8x1024, 256 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT0 M548S EQU FALSE ; A: 5" 1x40x5x1024, 64 ent. UNIT0 ; B: 5" 1x40x5x1024, 64 ent. UNIT1 ; C: 8" 2x77x8x1024, 256 ent. UNIT0 ; D: 8" 1x77x26x128, 64 ent. UNIT0 ; MARK CORRECT FLOPPY SYSTEM WITH TRUE. NOTE ONLY ONE TUE. ;****************************************************************** PAGE 42 RATE0 EQU 00000000B ; 3ms/6ms RATE1 EQU 00000001B ; 6ms/12ms RATE2 EQU 00000010B ; 10ms/20ms RATE3 EQU 00000011B ; 15ms/30ms DOUBLS EQU 0FFH ; DOUBLE SIDED SINGLS EQU 0 ; SINGLE SIDED UNIT0 EQU 00000000B ; PHYSICAL UNIT SELECT 0 UNIT1 EQU 00000001B ; PHYSICAL UNIT SELECT 1 UNIT2 EQU 00000010B ; PHYSICAL UNIT SELECT 2 UNIT3 EQU 00000011B ; PHYSICAL UNIT SELECT 3 INCH5 EQU 00001000B ; 5"-FLOPPY INCH8 EQU 11010100B ; 8"-FLOPPY DOUBLD EQU 00000000B ; DOUBLE DENSITY SINGLD EQU 00100000B ; SINGLE DENSITY COMM EQU 0C0H ; COMMON AREA▶8a◀ IF M8 SIGN EQU '8' ELSE SIGN EQU '5' ENDIF EXTRN FDREAD,FDWRIT,FDLGIN,FDINIT PUBLIC @DTBL,?TITEL PUBLIC @COMMO CSEG @DTBL: DW FLA,FLB,FLC,FLD DW 0,0,0,0 DW 0,0,0,0 DW 0,0,0,0 @COMMO: DB COMM PAGE DSEG 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 ; MEDIAFLAG DW F8D ; ADDRESS T. DPB DW 0FFFEH ; CHECKSUM VECTOR SET BY GENCPM DW 0FFFEH ; ALLOC VECTOR SET BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM SETUP DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK ; Define 8" 2x77x8x1024, 256 entries. UNIT B: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH8+UNIT1+DOUBLD ; $FDXSL DB 0 ; FLB: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAG DW F8D ; ADDRESS T. DPB DW 0FFFEH ; CHECKSUM VECTOR SET BY GENCPM▶8a◀ DW 0FFFEH ; ALLOC VECTOR SET BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM SETUP 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 ; MEDIAFLAG 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. ; Define 5.25" 2x77x8x1024, 256 entries. UNIT B: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH5+UNIT1+DOUBLD+11000000B ; $FDXSL 2 MHz 8" Mode DB 0 ; FLB: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAG 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 M596D ; 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 ; MEDIAFLAG 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. ; Define 5.25" 2x80x5x1024, 128 entries. UNIT B: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH5+UNIT1+DOUBLD ; $FDXSL DB 0 ; FLB: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAG 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 IF M548D ; Define 5.25" 2x40x5x1024, 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 ; MEDIAFLAG DW F548D ; ADDRESS T. DPB DW 0FFFEH ; CHECKSUM VECTOR SET BY GENCPM DW 0FFFEH ; ALLOC VECTOR SET BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM SETUP DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK ; Define 5.25" 2x40x5x1024, 128 entries. UNIT B: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT DB INCH5+UNIT1+DOUBLD ; $FDXSL DB 0 ; FLB: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAG DW F548D ; ADDRESS T. DPB DW 0FFFEH ; CHECKSUM VECTOR SET BY GENCPM DW 0FFFEH ; ALLOC VECTOR SET BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM SETUP DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK ENDIF IF M548S ; Define 5.25" 1x40x5x1024, 64 entries. UNIT A: DW FDWRIT▶8a◀ 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 ; MEDIAFLAG DW F548S ; ADDRESS T. DPB DW 0FFFEH ; CHECKSUM VECTOR SET BY GENCPM DW 0FFFEH ; ALLOC VECTOR SET BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM SETUP DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK ; Define 5.25" 1x40x5x1024, 64 entries. UNIT B: DW FDWRIT▶8a◀ DW FDREAD DW FDLGIN DW FDINIT DB INCH5+UNIT1+DOUBLD ; $FDXSL DB 0 ; FLB: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAG DW F548S ; ADDRESS T. DPB DW 0FFFEH ; CHECKSUM VECTOR SET BY GENCPM DW 0FFFEH ; ALLOC VECTOR SET BY GENCPM DW 0FFFEH,0FFFEH ; LET GENCPM SETUP DW 0FFFEH ; DIRBCB, DTABCB, HASH DB 0 ; HASH BANK ENDIF ; Define UNIT C: ; If M8 it is 5.25" 2x80x5x1024, 128 entries ; else 8" 2x77x8x1024, 256 entries. DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT IF M8 DB INCH5+UNIT0+DOUBLD ; $FDXSL ELSE DB INCH8+UNIT0+DOUBLD ENDIF DB 0 ; FLC: DW 0 ; NO TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAG IF M8 DW F596D ; ADDRESS TO DPB ELSE DW F8D ENDIF 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. ; Define 8" 1x77x26x128, 64 entries (IBM). UNIT D: DW FDWRIT DW FDREAD DW FDLGIN DW FDINIT IF M8 DB INCH8+UNIT1+SINGLD ; $FDXSL ELSE DB INCH8+UNIT0+SINGLD ENDIF DB 0 ; FLD: DW TRANS ; TRANS TABLE DB 0,0,0,0,0,0,0,0,0 DB 0 ; MEDIAFLAG 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 ; DPB for 5.25" 2x40x5x1024, 128 entries. F548D: DW 40 ; No. of logical sectors/track. DB 4,0FH ; BLOCK SKIFT AND MASK DB 1 ; EXTENT MASK DW 194 ; 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 ; DPB for 5.25" 1x40x5x1024, 64 entries. F548S: DW 40 ; No. of logical sectors/track. DB 3,7 ; BLOCK SKIFT AND MASK DB 0 ; EXTENT MASK DW 189 ; MAX BLOCKNUMBER DW 64-1 ; 64 DIR. ENTRIES DB 0C0H,0 ; ALLOC VECTOR TILL DIR DW 64/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 sector/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 INCH5+DOUBLD ; Boot select DB 0,0,0,0,0,0 ; Dummies ?TITEL: DB '80. ' DB SIGN,'"-floppy-version. ' IF M8 DB '2x1.2 MBytes.' ENDIF IF M5 DB '2x1.2 MBytes.' ENDIF IF M596D DB '2x800 KBytes.' ENDIF IF M548D DB '2x400 KBytes.' ENDIF IF M548S DB '2x200 KBytes.' ENDIF DB 13,10,0 TRANS: DB 1,7,13,19,25▶8a◀ 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»