HFE Creator

(draft)

HFE directive allow you to create and write in multiple HFE files (no edit)

HFE INIT,'filename.hfe'

HFE CLOSE

HFE SIDE,face

Select current side

HFE TRACK,piste

Select current edited track.

HFE ADD_TRACK_HEADER

Add a track header to the current track

HFE ADD_SECTOR,track,side,ID,SectorSize,offset (current bank)

Add a complete sector to the track. Data from Rasm at Offset of the current bank.

HFE ADD_GAP,gap_size[,GAP value]

Add one or more bytes to the track. Default value is 0x4E like regular GAP filler.

HFE COMPLETE_TRACK

Complete the current track until 6250 bytes size

Byte Mode

HFE START_CRC

In byte mode, this directive starts a new CRC calculation (useful to write a sector header or data-CRC)

HFE ADD_BYTE,byte_value,…

Add a byte to the current track. To add synchro-byte (0xC2 and 0xA1 are supported), you must OR the byte with SYNCHRO (see advanced example)

HFE OUTPUT_CRC

Output 2 bytes of the current CRC to the current track.

Basic exemple, DATA floppy

BANK
sector2 defs 512,0xE5

HFE INIT,'floppy.hfe'
HFE SIDE,0

curtrack=0
repeat 40
HFE TRACK,curtrack
HFE ADD_TRACK_HEADER
curid=#C1
repeat 9
        HFE ADD_SECTOR,curtrack,0,curid,2,sector2
        HFE ADD_GAP,#52
        curid+=1
rend
HFE COMPLETE_TRACK
curtrack+=1 
rend

Advanced example

curtrack=0
HFE TRACK,curtrack 
HFE ADD_TRACK_HEADER
curid=#F0
repeat 16
        HFE ADD_BYTE,0,0,0,0,0,0,0,0,0,0,0,0 ; 12
        HFE START_CRC
        repeat 3 : HFE ADD_BYTE,0xA1 | SYNCHRO : rend
        HFE ADD_BYTE,0xFE
        HFE ADD_BYTE,curtrack
        HFE ADD_BYTE,0
        HFE ADD_BYTE,curid
        HFE ADD_BYTE,1
        HFE OUTPUT_CRC
        repeat 22 : HFE ADD_BYTE,0x4E : rend
        HFE ADD_BYTE,0,0,0,0,0,0,0,0,0,0,0,0 ; 12

        HFE START_CRC
        repeat 3 : HFE ADD_BYTE,0xA1 | SYNCHRO : rend
        HFE ADD_BYTE,0xFB

        repeat 256 : HFE ADD_BYTE,0xE5 : rend
        HFE OUTPUT_CRC

        HFE ADD_GAP,#10 ; small GAP
        curid+=1
rend
HFE COMPLETE_TRACK
Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License