mirror of
https://github.com/pfusik/xasm.git
synced 2025-01-04 23:29:49 +00:00
92 lines
1.1 KiB
NASM
92 lines
1.1 KiB
NASM
|
IDEAL
|
||
|
P386
|
||
|
MODEL TINY
|
||
|
CODESEG
|
||
|
ORG 100h
|
||
|
include 'fox.mak'
|
||
|
|
||
|
start: mov [csum], 0
|
||
|
fopen inpfile
|
||
|
mov [ihand], bx
|
||
|
fcreate outfile
|
||
|
mov [ohand], bx
|
||
|
|
||
|
mov cx, 8
|
||
|
main: push cx
|
||
|
mov bx, [ihand]
|
||
|
mov cx, 16
|
||
|
fread buf
|
||
|
|
||
|
mov si, offset buf
|
||
|
mov di, offset data
|
||
|
mov cx, 16
|
||
|
jmp c0
|
||
|
c1: mov al, ','
|
||
|
stosb
|
||
|
c0: mov al, '0'
|
||
|
stosb
|
||
|
mov al, [si]
|
||
|
add [csum], al
|
||
|
adc [csum], 0
|
||
|
shr al, 4
|
||
|
d2a
|
||
|
stosb
|
||
|
lodsb
|
||
|
and al, 0fh
|
||
|
d2a
|
||
|
stosb
|
||
|
mov al, 'h'
|
||
|
stosb
|
||
|
loop c1
|
||
|
mov ax, 0a0dh
|
||
|
stosw
|
||
|
|
||
|
mov bx, [ohand]
|
||
|
mov cx, 85
|
||
|
fwrite line
|
||
|
|
||
|
pop cx
|
||
|
loop main
|
||
|
|
||
|
mov bx, [ihand]
|
||
|
fclose
|
||
|
mov bx, [ohand]
|
||
|
mov di, offset data+1
|
||
|
mov al, [csum]
|
||
|
shr al, 4
|
||
|
d2a
|
||
|
stosb
|
||
|
mov al, [csum]
|
||
|
and al, 0fh
|
||
|
d2a
|
||
|
stosb
|
||
|
mov al, 'h'
|
||
|
stosb
|
||
|
mov ax, 0a0dh
|
||
|
stosw
|
||
|
mov cx, 10
|
||
|
fwrite line
|
||
|
fclose
|
||
|
|
||
|
mov eax, '.orp'
|
||
|
cmp eax, [dword typ1]
|
||
|
je wroc
|
||
|
mov [dword typ1], eax
|
||
|
mov [dword typ2], eax
|
||
|
jmp start
|
||
|
wroc: ret
|
||
|
|
||
|
inpfile db '\atari\xasm\xload'
|
||
|
typ1 db 'std.obx',0
|
||
|
outfile db 'xload'
|
||
|
typ2 db 'std.db',0
|
||
|
|
||
|
line db ' db '
|
||
|
data db 81 dup(?)
|
||
|
ihand dw ?
|
||
|
ohand dw ?
|
||
|
buf db 16 dup(?)
|
||
|
csum db ?
|
||
|
|
||
|
ENDS
|
||
|
END start
|