mirror of
https://github.com/pfusik/xasm.git
synced 2025-03-10 22:30:33 +00:00
X-BOOT 4.0.
This commit is contained in:
parent
373483e365
commit
299ab916c8
88
xboot.asm
88
xboot.asm
@ -129,6 +129,9 @@ npoint: stosb ; przepisz nazwe
|
|||||||
je spath
|
je spath
|
||||||
jmp snam1
|
jmp snam1
|
||||||
|
|
||||||
|
usg: print usgtxt
|
||||||
|
dos 4c03h
|
||||||
|
|
||||||
snamx: mov eax, 'XBO.'
|
snamx: mov eax, 'XBO.'
|
||||||
cmp di, offset atrnam
|
cmp di, offset atrnam
|
||||||
jb adobx
|
jb adobx
|
||||||
@ -153,12 +156,9 @@ nadext: xor al, al
|
|||||||
dec si
|
dec si
|
||||||
cmp di, offset atrnam
|
cmp di, offset atrnam
|
||||||
mov di, offset atrnam
|
mov di, offset atrnam
|
||||||
jb arg1
|
jb jarg1
|
||||||
inc di
|
inc di
|
||||||
jmp arg1
|
jarg1: jmp arg1
|
||||||
|
|
||||||
usg: print usgtxt
|
|
||||||
dos 4c03h
|
|
||||||
|
|
||||||
argx: cmp di, offset atrnam
|
argx: cmp di, offset atrnam
|
||||||
jb usg ; nie ma nazwy
|
jb usg ; nie ma nazwy
|
||||||
@ -210,8 +210,10 @@ nowild: mov si, offset obxnam
|
|||||||
mov dx, offset head
|
mov dx, offset head
|
||||||
mov cx, 4
|
mov cx, 4
|
||||||
call xread
|
call xread
|
||||||
jb enate
|
jnb nenate
|
||||||
|
enate: mov dx, offset e_nota
|
||||||
|
jmp error
|
||||||
|
nenate:
|
||||||
mov ax, [head]
|
mov ax, [head]
|
||||||
mov [l1runl], al
|
mov [l1runl], al
|
||||||
mov [l2runl], al
|
mov [l2runl], al
|
||||||
@ -255,12 +257,12 @@ stlo: call xwrite
|
|||||||
|
|
||||||
skff:
|
skff:
|
||||||
call xreadh
|
call xreadh
|
||||||
jb finfil
|
jb chtrun
|
||||||
cmp [head], -1
|
cmp [head], -1
|
||||||
je skff
|
je skff
|
||||||
mov dx, offset head+2
|
mov dx, offset head+2
|
||||||
call xread2
|
call xread2
|
||||||
jb finfil
|
jb trunca
|
||||||
|
|
||||||
firs: mov cx, [head+2]
|
firs: mov cx, [head+2]
|
||||||
sub cx, [head]
|
sub cx, [head]
|
||||||
@ -274,17 +276,24 @@ firs: mov cx, [head+2]
|
|||||||
call xwrihd
|
call xwrihd
|
||||||
jmp skff
|
jmp skff
|
||||||
|
|
||||||
|
einva: mov dx, offset e_head
|
||||||
|
jmp error
|
||||||
|
|
||||||
|
chtrun: test ax, ax
|
||||||
|
jnz trunca
|
||||||
|
jmp finfil
|
||||||
|
|
||||||
trunc: test ax, ax
|
trunc: test ax, ax
|
||||||
jz finfil
|
jz finfil
|
||||||
dec ax
|
dec ax
|
||||||
push ax
|
push ax
|
||||||
add ax, [head]
|
add ax, [head]
|
||||||
mov [head+2], ax
|
mov [head+2], ax
|
||||||
mov dx, offset w_trunc
|
|
||||||
call warni
|
|
||||||
pop ax
|
pop ax
|
||||||
call xwrihd
|
call xwrihd
|
||||||
|
|
||||||
|
trunca: mov dx, offset w_trunc
|
||||||
|
call warni
|
||||||
finfil: mov dx, offset endseq1
|
finfil: mov dx, offset endseq1
|
||||||
test [flags], m_pro
|
test [flags], m_pro
|
||||||
jz endst
|
jz endst
|
||||||
@ -345,19 +354,13 @@ nwacod: or [flags], m_errs
|
|||||||
print
|
print
|
||||||
ret
|
ret
|
||||||
|
|
||||||
enate: mov dx, offset e_nota
|
|
||||||
jmp error
|
|
||||||
|
|
||||||
einva: mov dx, offset e_head
|
|
||||||
jmp error
|
|
||||||
|
|
||||||
xreadh: mov dx, offset head
|
xreadh: mov dx, offset head
|
||||||
xread2: mov cx, 2
|
xread2: mov cx, 2
|
||||||
xread: mov bx, [ohand]
|
xread: mov bx, [ohand]
|
||||||
mov bp, offset e_read
|
mov bp, offset e_read
|
||||||
file 3fh
|
file 3fh
|
||||||
cmp ax, cx
|
cmp ax, cx
|
||||||
ret
|
rts: ret
|
||||||
|
|
||||||
xwrihd: add ax, 4
|
xwrihd: add ax, 4
|
||||||
movzx ecx, ax
|
movzx ecx, ax
|
||||||
@ -403,9 +406,9 @@ pnam1: sta dx
|
|||||||
printz: lodsb
|
printz: lodsb
|
||||||
test al, al
|
test al, al
|
||||||
jnz pnam1
|
jnz pnam1
|
||||||
rts: ret
|
ret
|
||||||
|
|
||||||
hello db 'X-BOOT 4.0á2 by Fox/Taquart',eot
|
hello db 'X-BOOT 4.0 by Fox/Taquart',eot
|
||||||
usgtxt db 'XBOOT [/p] obxfile [atrfile]',eol
|
usgtxt db 'XBOOT [/p] obxfile [atrfile]',eol
|
||||||
db ' Convert single Atari 8-bit executable into .ATR disk image.',eol
|
db ' Convert single Atari 8-bit executable into .ATR disk image.',eol
|
||||||
db 'XBOOT [/p] obxfiles [atrpath]',eol
|
db 'XBOOT [/p] obxfiles [atrpath]',eol
|
||||||
@ -418,7 +421,7 @@ kropki db ' ... $'
|
|||||||
oktxt db 'OK$'
|
oktxt db 'OK$'
|
||||||
w_mem db eol,' WARNING: Memory conflict$'
|
w_mem db eol,' WARNING: Memory conflict$'
|
||||||
w_prof db eol,' WARNING: Professional loader needed$'
|
w_prof db eol,' WARNING: Professional loader needed$'
|
||||||
w_trunc db eol,' WARNING: Last block truncated$'
|
w_trunc db eol,' WARNING: File is truncated$'
|
||||||
e_nota db eol,' ERROR: Not Atari executable$'
|
e_nota db eol,' ERROR: Not Atari executable$'
|
||||||
e_head db eol,' ERROR: Invalid header$'
|
e_head db eol,' ERROR: Invalid header$'
|
||||||
e_open db eol,' ERROR: Can''t open file$'
|
e_open db eol,' ERROR: Can''t open file$'
|
||||||
@ -431,37 +434,36 @@ begin dw 296h,0,80h,5 dup(0)
|
|||||||
beglen = $-begin
|
beglen = $-begin
|
||||||
|
|
||||||
; Loader #1 (std)
|
; Loader #1 (std)
|
||||||
stdlod db 96,1,128,7,119,228,160,215,185,30,7,145,88,200,192,226,144
|
stdlod db 0,1,128,7,119,228,160,215,185,27,7,145,88,200,192,226,144
|
||||||
db 246,169
|
db 246,169
|
||||||
l1runl db 128,141,224,2,169
|
l1runl db 168,141,224,2,169
|
||||||
l1runh db 7,141,225,2,169,7,141,5,3,160,255
|
l1runh db 7,141,225,2,169,7,141,5,3,169,255
|
||||||
db 140,1,211,136,169,128,141,226,2,169,7,141,227,2,162,251,149,72
|
db 141,1,211,173,56,96,169,7,141,227,2,72,169,168,141,226,2,72
|
||||||
db 232,134,67,76,193,7,230,68,208,2,230,69,200,16,16,238,10,3
|
db 162,251,149,72,232,134,67,238,210,7,16,16,238,10,3,208,3,238
|
||||||
db 208,3,238,11,3,32,83,228,56,48,174,160,0,185,0,7,166,67
|
db 11,3,32,83,228,48,217,14,210,7,173,127,7,166,67,208,223,129
|
||||||
db 208,216,129,68,165,68,197,70,208,216,165,69,197,71,208,210,152,72
|
db 68,230,68,208,2,230,69,165,70,197,68,165,71,229,69,176,210,169
|
||||||
db 32,242,7,104,168,16,181,108,226,2,44,111,97,100,105,110,103,14
|
db 3,141,15,210,108,226,2,44,111,97,100,105,110,103,14,14,14,0
|
||||||
db 14,14,0
|
db 52,46,48
|
||||||
|
|
||||||
lodlen = $-stdlod
|
lodlen = $-stdlod
|
||||||
|
|
||||||
; Ending Header for loader #1
|
; Ending Header for loader #1
|
||||||
endseq1 db 233,7,235,7,108,224,2
|
endseq1 db 240,7,240,7,224
|
||||||
|
endlen = $-endseq1
|
||||||
|
|
||||||
; Loader #2 (rom)
|
; Loader #2 (rom)
|
||||||
prolod db 96,1,128,4,119,228,169,0,141,47,2,169,82,141,200,2,165
|
prolod db 0,1,128,4,119,228,169,0,141,47,2,169,82,141,200,2,165
|
||||||
db 20,197,20,240,252,169
|
db 20,197,20,240,252,169
|
||||||
l2runl db 128,141,224,2,169
|
l2runl db 162,141,224,2,169
|
||||||
l2runh db 4,141,225,2,160,254,169
|
l2runh db 4,141,225,2,173,56,96
|
||||||
db 128,141,226,2,169,4,141,227,2,162,251,149,72,232,134,67,76,188
|
db 169,4,141,227,2,72,169,162,141,226,2,72,162,251,149,72,232,134
|
||||||
db 4,230,68,208,2,230,69,200,16,32,238,10,3,208,3,238,11,3
|
db 67,238,220,4,16,32,238,10,3,208,3,238,11,3,169,255,141,1
|
||||||
db 169,255,141,1,211,78,14,212,88,32,83,228,56,48,170,120,160,0
|
db 211,78,14,212,88,32,83,228,48,208,120,238,14,212,206,1,211,14
|
||||||
db 140,14,212,206,1,211,185,0,4,166,67,208,200,129,68,165,68,197
|
db 220,4,173,127,4,166,67,208,207,129,68,230,68,208,2,230,69,165
|
||||||
db 70,208,200,165,69,197,71,208,194,152,72,32,253,4,104,168,16,165
|
db 70,197,68,165,71,229,69,176,194,169,3,141,15,210,108,226,2,52
|
||||||
db 108,226,2
|
db 46,48,112
|
||||||
|
|
||||||
; Ending Header for loader #2
|
; Ending Header for loader #2
|
||||||
endseq2 db 244,4,246,4,108,224,2
|
endseq2 db 250,4,250,4,224
|
||||||
endlen = $-endseq2
|
|
||||||
|
|
||||||
exitcod dw 4c00h
|
exitcod dw 4c00h
|
||||||
flags db 0
|
flags db 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user