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: "