[Coco] Fixing OS-9 format for those that "roll their own"

Wayne Campbell asa.rand at gmail.com
Thu Nov 14 10:48:51 EST 2013


FAX
AX 

AX .x... m w

Robert Gault <robert.gault at att.net> wrote:

>There is no question that the NitrOS-9 format command is not adjusting DD.FMT in 
>LSN0 to indicate whether a disk is hard or a floppy. We can argue whether that 
>should be done but it is my opinion that for a hard disk, DD.FMT should be $82. 
>At the very least, DD.FMT should not be $3 which indicates DD plus 2 sides.
>
>For those who want to compile format to fix this and for those that are posting 
>to the NitrOS-9 project, here is a suggested change.
>
>original code in Format
>in the section * initialize sector 0
>
>L0561    ldb   <numsides  get number of sides
>          cmpb  #$01       just 1?
>          beq   L0569      branch if so
>          ora   #FMT.SIDE  else set double-sided bit
>L0569    tst   <tpi       48tpi?
>          beq   L056F      branch if so
>          ora   #FMT.TDNS  else set 96 tpi
>L056F    sta   <DD.FMT,x  save
>
>
>Suggested changes for hard drives
>
>* Patch to correctly indicate a hard drive.
>L0561    tst   <dtype     obtained from the descriptor
>          bpl   L0561b     not a hard drive so go
>          ora   #$80       indicate a hard drive
>          bra   L0569      skip floppy sides; probably could also skip tpi
>L0561b   ldb   <numsides  get number of sides
>          cmpb  #$01       just 1?
>          beq   L0569      branch if so
>          ora   #FMT.SIDE  else set double-sided bit
>L0569    tst   <tpi       48tpi?
>          beq   L056F      branch if so
>          ora   #FMT.TDNS  else set 96 tpi
>L056F    sta   <DD.FMT,x  save
>
>This has been tested and works correctly for both hard and floppy drives.
>
>Robert
>
>--
>Coco mailing list
>Coco at maltedmedia.com
>http://five.pairlist.net/mailman/listinfo/coco


More information about the Coco mailing list