home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
acorn
/
achex.bas
< prev
next >
Wrap
BASIC Source File
|
2020-01-01
|
1KB
|
62 lines
10REM
20REM Binary to Intel Hex converter
30REM Pandora/BAS32 version, Feb 1987
40REM
50CLOSE#0
60DIM data 31,binfile 32
70INPUT "Name of input binary file? " $binfile
80INPUT "Name of output hex file? " out$
90in%=OPENIN($binfile)
100 IF in%=0 THEN PRINT"Input file does not exist":END
110 out%=OPENOUT(out$)
120address%=0
130REPEAT
140PRINT"At address ";~address%
150PROCwriterecord
160UNTIL EOF#in%
170REM write EOF record
180BPUT#out%,ASC(":")
190FOR I% = 1 TO 3
200PROCputhex(0)
210NEXT
220PROCputhex(1)
230PROCputhex(&FF)
240BPUT#out%,&0D
250CLOSE#0
260END
270:
280DEF PROCputhex(byte%)
290byte%=byte% AND &FF
300checksum% = (checksum% + byte%) AND &FF
310PROCputnibble(byte% DIV 16)
320PROCputnibble(byte%)
330ENDPROC
340:
350DEF PROCputnibble(nibble%)
360nibble% = nibble% AND &0F
370IF nibble%<10 THEN BPUT#out%,nibble%+ASC("0") ELSE BPUT#out%,nibble%+ASC("A")-10
380ENDPROC
390:
400DEF PROCwriterecord
410LOCAL I%,J%
420checksum% = 0
430BPUT#out%,ASC(":")
440I%=0
450REPEAT
460data?I% = BGET#in%
470I%=I%+1
480UNTIL I%=32 OR EOF#in%
490PROCputhex(I%)
500PROCputhex(address% DIV 256)
510PROCputhex(address%)
520PROCputhex(0)
530FOR J% = 0 TO I%-1
540PROCputhex(data?J%)
550NEXT
560recsum% = -checksum%
570PROCputhex(recsum%)
580BPUT#out%,&0D
590address% = address% + I%
600ENDPROC
610: