Mercurial > hg > Members > kono > nitros9-code
changeset 3269:86f00c7593bc
Updated format.asm to include the option for the enchanced 20 sector per track sector layout.
author | David Ladd <drencor-xeen@users.sourceforge.net> |
---|---|
date | Sun, 05 Jan 2020 21:38:56 -0600 |
parents | 647774d06c41 |
children | 0e5ad15ee404 |
files | level1/cmds/format.asm |
diffstat | 1 files changed, 34 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/level1/cmds/format.asm Fri Nov 15 22:11:52 2019 -0600 +++ b/level1/cmds/format.asm Sun Jan 05 21:38:56 2020 -0600 @@ -154,6 +154,7 @@ dskname rmb 32 quoted delimited disk name buffer u008F rmb 40 IsDragon rmb 1 Is this a dragon disk ? +IsSpec20 rmb 1 Is this a special fmt data for 20 sector per track floppy disks SaveRootLSN rmb 3 Saved copy of DD.DIR AddedSysSecs rmb 2 Additional system sectors (0 for CoCo, $10 for Dragon boot area) LSN0 rmb 256 LSN0 build buffer @@ -164,8 +165,8 @@ u297E rmb 451 size equ . -name fcs /Format/ - fcb edition +name fcs /Format/ + fcb edition *val1 fdb $0000 *val2 fdb $0000 @@ -197,9 +198,17 @@ dctdat fdb $204E,$0000,$0C00,$03F5,$01FE,$0400 fdb $01F7,$164E,$0C00,$03F5,$01FB,$80E5 fdb $80E5,$01F7,$184E,$0000 - fcb $4E -dcfidp fdb $0030 -dcsize fdb $0154 + fcb $4E +dcfidp fdb $0030 +dcsize fdb $0154 + +* Special Double Density Color Computer Format 20 SPT +ectdat fdb $084E,$0000,$0800,$03F5,$01FE,$0400 + fdb $01F7,$0100,$1B00,$03F5,$01FB,$80E5 + fdb $80E5,$01F7,$0100,$0000 + fcb $4E +ecfidp fdb $0014 +ecsize fdb $0133 DragonFlag equ 'd Flag that we are formatting dragon formatted disk. DragonRootSec equ $12 Dragon root sector is always LSN 18 @@ -236,6 +245,7 @@ cmpy ,s at begin? bhi ClrOne not yet, clr IsDragon,u Assume we are not formatting a dragon disk + clr IsSpec20,u Assume we are not formatting using special 20 clr AddedSysSecs,u Clear aditional system sectors clr AddedSysSecs+1,u puls pc,y done @@ -296,7 +306,7 @@ Geometry leax >optbuf,u status packet address clrb SS.OPT function os9 I$GetStt get status packet - bcs Exit exit if error + lbcs Exit exit if error ldb PD.SID-PD.OPT,x number of surfaces stb <numsides save it ldb PD.SToff-PD.OPT,x get track/sector offset values @@ -478,6 +488,12 @@ opt.20 fcb 'f fcb ' ' fdb DoFormat-opt.20 +opt.21 fcc /E/ + fcb $01 + fdb DoEnhanced-opt.21 +opt.22 fcc /e/ + fcb $01 + fdb DoEnhanced-opt.22 fcb $00 @@ -631,6 +647,11 @@ L025C clrb did option L025D rts return + +DoEnhanced + stb <IsSpec20 + rts + ******************************************************************** * print title, format (Y/N), and get response ******************************************************************** @@ -732,7 +753,11 @@ bne L0323 yes, branch tst <cocofmt is this a COCO formatted disk? beq L031B branch if not - leax >dctdat,pcr point to COCO track data + tst <IsSpec20 is this a special coco formatted disk? + beq cocodct + leax >ectdat,pcr point to enhanced CoCo track data + bra L032D +cocodct leax >dctdat,pcr point to COCO track data bra L032D L031B leax >sgtdat,pcr point to single density track data tst <mfm double-density? @@ -1756,6 +1781,8 @@ fcb C$LF fcc " FD - Dragon format disk" fcb C$CR + fcc " E - Enhanced CoCo 20 SPT" + fcb C$CR HelpLen equ *-HelpMsg endc FmtMsg fcc "Formatting device: "