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