mirror of
https://github.com/pfusik/xasm.git
synced 2024-06-08 03:29:30 +00:00
xasm 2.4.-3.
This commit is contained in:
parent
4d04b07860
commit
f9a11b10e3
312
xasm.asm
312
xasm.asm
|
@ -1,18 +1,28 @@
|
||||||
; X-Assembler
|
; X-Assembler
|
||||||
|
|
||||||
|
EXE = 1
|
||||||
|
|
||||||
IDEAL
|
IDEAL
|
||||||
P386
|
P386
|
||||||
|
IFDEF EXE
|
||||||
|
MODEL SMALL
|
||||||
|
ELSE
|
||||||
MODEL TINY
|
MODEL TINY
|
||||||
|
ENDIF
|
||||||
CODESEG
|
CODESEG
|
||||||
|
|
||||||
; comment out to disable
|
; comment out to disable
|
||||||
SET_WIN_TITLE = 1
|
SET_WIN_TITLE = 1
|
||||||
|
|
||||||
compak = 1d00h
|
; compak = 1d00h
|
||||||
|
|
||||||
l_icl = 1024
|
l_icl = 1024
|
||||||
l_org = 4096
|
l_org = 4096
|
||||||
|
IFDEF EXE
|
||||||
|
l_lab = 55000
|
||||||
|
ELSE
|
||||||
l_lab = 48000
|
l_lab = 48000
|
||||||
|
ENDIF
|
||||||
|
|
||||||
STRUC com
|
STRUC com
|
||||||
c_code db ?
|
c_code db ?
|
||||||
|
@ -81,9 +91,10 @@ m_swl = 8
|
||||||
b_swn = 4
|
b_swn = 4
|
||||||
m_swn = 10h
|
m_swn = 10h
|
||||||
m_swo = 20h
|
m_swo = 20h
|
||||||
m_sws = 40h
|
m_swp = 40h
|
||||||
m_swt = 80h
|
m_sws = 80h
|
||||||
m_swu = 100h
|
m_swt = 100h
|
||||||
|
m_swu = 200h
|
||||||
|
|
||||||
;[flist]
|
;[flist]
|
||||||
m_lsti = 4
|
m_lsti = 4
|
||||||
|
@ -229,7 +240,7 @@ lstorg db 26 dup(?)
|
||||||
line db 258 dup(?)
|
line db 258 dup(?)
|
||||||
tlabel db 256 dup(?)
|
tlabel db 256 dup(?)
|
||||||
obuf db 128 dup(?)
|
obuf db 128 dup(?)
|
||||||
obufen:
|
obufen = $
|
||||||
objnam db 128 dup(?)
|
objnam db 128 dup(?)
|
||||||
lstnam db 128 dup(?)
|
lstnam db 128 dup(?)
|
||||||
tabnam db 128 dup(?)
|
tabnam db 128 dup(?)
|
||||||
|
@ -239,13 +250,28 @@ t_org db l_org dup(?)
|
||||||
|
|
||||||
;*****************************
|
;*****************************
|
||||||
|
|
||||||
|
IFNDEF EXE
|
||||||
zero db 100h dup(?)
|
zero db 100h dup(?)
|
||||||
|
ENDIF
|
||||||
start:
|
start:
|
||||||
IFDEF compak
|
IFDEF compak
|
||||||
undata
|
undata
|
||||||
db compak+start-$ dup(?)
|
db compak+start-$ dup(?)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
IFDEF EXE
|
||||||
|
mov dx, @data
|
||||||
|
mov es, dx
|
||||||
|
mov ss, dx
|
||||||
|
mov sp, offset staken
|
||||||
|
mov di, offset tlabel
|
||||||
|
mov ax, [16h]
|
||||||
|
stosw
|
||||||
|
mov si, 81h
|
||||||
|
movzx cx, [byte si-1]
|
||||||
|
inc cx
|
||||||
|
rep movsb
|
||||||
|
mov ds, dx
|
||||||
|
ENDIF
|
||||||
ifdef SET_WIN_TITLE
|
ifdef SET_WIN_TITLE
|
||||||
mov di, offset hello
|
mov di, offset hello
|
||||||
mov ax, 168eh
|
mov ax, 168eh
|
||||||
|
@ -254,108 +280,87 @@ ENDIF
|
||||||
mov [titfin], ' '
|
mov [titfin], ' '
|
||||||
endif
|
endif
|
||||||
print hello
|
print hello
|
||||||
mov di, 81h
|
IFDEF EXE
|
||||||
movzx cx, [di-1]
|
mov si, offset tlabel+3
|
||||||
jcxz usg ; brak parametrow - usage
|
ELSE
|
||||||
mov al, ' '
|
mov si, 82h
|
||||||
repe scasb
|
ENDIF
|
||||||
je usg ; same spacje - usage
|
mov [objnam], 0
|
||||||
dec di
|
mov [lstnam], 0
|
||||||
inc cx
|
mov [tabnam], 0
|
||||||
mov si, di
|
mov [(icl t_icl).nam], 0 ; pusta nazwa zrodla
|
||||||
mov al, '?'
|
|
||||||
repne scasb
|
; parsuj argumenty
|
||||||
jne begin ; '?' - usage
|
parg0: dec si
|
||||||
|
parg1: lodsb
|
||||||
|
cmp al, ' '
|
||||||
|
je parg1
|
||||||
|
cmp al, 9
|
||||||
|
je parg1
|
||||||
|
cmp al, 0dh
|
||||||
|
je pargx
|
||||||
|
cmp al, '/'
|
||||||
|
je popt1
|
||||||
|
mov di, offset (icl t_icl).nam
|
||||||
|
cmp [byte di], 0
|
||||||
|
jnz usg ; juz byla nazwa zrodla
|
||||||
|
mov dx, di
|
||||||
|
call clfname
|
||||||
|
call adasx
|
||||||
|
mov [fslen], di
|
||||||
|
jmp parg0
|
||||||
|
|
||||||
usg: print usgtxt ; usage - instrukcja
|
usg: print usgtxt ; usage - instrukcja
|
||||||
dos 4c03h
|
dos 4c03h
|
||||||
|
|
||||||
begin: lodsb ; pobierz nazwe
|
popt1: lodsb
|
||||||
cmp al, '/'
|
and al, 0dfh ; mala litera -> duza
|
||||||
je usg ; najpierw musi byc nazwa
|
|
||||||
mov di, offset (icl t_icl).nam+1
|
|
||||||
lea dx, [di-1]
|
|
||||||
xor ah, ah
|
|
||||||
mov [tabnam], ah ; nie ma nazwy tabeli symboli
|
|
||||||
dinam equ di-t_icl-offset (icl).nam
|
|
||||||
mnam1: dec di ; zapisz do t_icl.nam, ...
|
|
||||||
mov [objnam+dinam], ax ; ... objnam, ...
|
|
||||||
mov [lstnam+dinam], ax ; ... lstnam
|
|
||||||
stosw
|
|
||||||
lodsb
|
|
||||||
cmp al, ' '
|
|
||||||
je mnam2
|
|
||||||
cmp al, '/'
|
|
||||||
je mnam2
|
|
||||||
cmp al, 0dh
|
|
||||||
jne mnam1
|
|
||||||
mnam2: call adasx ; doczep .ASX
|
|
||||||
mov [fslen], di
|
|
||||||
chex1: dec di
|
|
||||||
cmp [byte di], '.'
|
|
||||||
jne chex1
|
|
||||||
mov [byte objnam+dinam], '.' ; doczep .OBX
|
|
||||||
mov [dword objnam+dinam+1], 'XBO'
|
|
||||||
mov [byte lstnam+dinam], '.' ; doczep .LST
|
|
||||||
mov [dword lstnam+dinam+1], 'TSL'
|
|
||||||
|
|
||||||
gsw0: dec si
|
|
||||||
gsw1: lodsb ; pobierz switche
|
|
||||||
cmp al, ' '
|
|
||||||
je gsw1 ; pomin spacje
|
|
||||||
cmp al, 0dh
|
|
||||||
je gswx
|
|
||||||
cmp al, '/'
|
|
||||||
jne usg ; musi byc '/'
|
|
||||||
lodsb
|
|
||||||
and al,0dfh ; mala litera -> duza
|
|
||||||
mov di, offset swilet
|
mov di, offset swilet
|
||||||
mov cx, 9
|
mov cx, 10
|
||||||
repne scasb
|
repne scasb
|
||||||
neusg: jne usg ; nie ma takiego switcha
|
jne usg ; nie ma takiego switcha
|
||||||
bts [swits], cx ; sprawdz bit i ustaw
|
bts [swits], cx ; sprawdz bit i ustaw
|
||||||
jc usg ; juz byl taki
|
jc usg ; juz byl taki
|
||||||
mov di, offset lstnam
|
mov di, offset lstnam
|
||||||
mov ecx, 'TSL'
|
|
||||||
cmp al, 'L'
|
cmp al, 'L'
|
||||||
je gsw2 ; /L
|
je popt2
|
||||||
mov di, offset tabnam
|
mov di, offset tabnam
|
||||||
mov ecx, 'BAL'
|
|
||||||
cmp al, 'T'
|
cmp al, 'T'
|
||||||
je gsw2 ; /T
|
je popt2
|
||||||
cmp al, 'O'
|
cmp al, 'O'
|
||||||
jne gsw1 ; switch bez parametru
|
jne parg1 ; switch bez parametru
|
||||||
cmp [byte si], ':'
|
cmp [byte si], ':' ; /O wymaga ':'
|
||||||
jne neusg ; /O wymaga ':'
|
jne usg
|
||||||
mov di, offset objnam
|
mov di, offset objnam
|
||||||
mov ecx, 'XBO'
|
popt2: lodsb
|
||||||
|
|
||||||
gsw2: lodsb
|
|
||||||
cmp al, ':'
|
cmp al, ':'
|
||||||
jne gsw0
|
jne parg0
|
||||||
mov dx, di ; jesli ':', to ...
|
call clfna ; pobierz nazwe
|
||||||
gsw3: lodsb ; ... pobierz nazwe
|
jmp parg0
|
||||||
stosb
|
|
||||||
cmp al, ' '
|
pargx:
|
||||||
je gsw4
|
cmp [(icl t_icl).nam], 0 ; czy jest nazwa?
|
||||||
cmp al, '/'
|
je usg
|
||||||
je gsw4
|
mov di, offset lstnam
|
||||||
cmp al, 0dh
|
mov eax, 'TSL'
|
||||||
jne gsw3
|
call defnam
|
||||||
gsw4: mov [byte di-1], 0
|
mov di, offset objnam
|
||||||
lda ecx ; doczep ecx
|
mov eax, 'XBO'
|
||||||
call adext
|
call defnam
|
||||||
jmp gsw0
|
|
||||||
gswx: mov al, [byte swits]
|
mov al, [byte swits]
|
||||||
and al, m_lstl
|
and al, m_lstl
|
||||||
xor al, m_lstl+m_lsto
|
xor al, m_lstl+m_lsto
|
||||||
mov [flist], al
|
mov [flist], al
|
||||||
|
|
||||||
testsw m_swe
|
testsw m_swe
|
||||||
jz noswe
|
jz noswe
|
||||||
|
IFDEF EXE
|
||||||
|
mov ax, [word tlabel]
|
||||||
|
jmp prpsp1
|
||||||
|
ENDIF
|
||||||
prpsp: mov ax, [16h]
|
prpsp: mov ax, [16h]
|
||||||
mov ds, ax
|
prpsp1: mov ds, ax
|
||||||
cmp ax, [16h]
|
cmp ax, [16h]
|
||||||
jne prpsp
|
jne prpsp
|
||||||
|
|
||||||
|
@ -363,7 +368,11 @@ prpsp: mov ax, [16h]
|
||||||
test ax, ax
|
test ax, ax
|
||||||
jz enver
|
jz enver
|
||||||
dec ax
|
dec ax
|
||||||
|
IFDEF EXE
|
||||||
|
mov [ss:envseg], ax
|
||||||
|
ELSE
|
||||||
mov [cs:envseg], ax
|
mov [cs:envseg], ax
|
||||||
|
ENDIF
|
||||||
mov ds, ax
|
mov ds, ax
|
||||||
mov es, ax
|
mov es, ax
|
||||||
mov si, 10h
|
mov si, 10h
|
||||||
|
@ -391,12 +400,22 @@ renv3: lodsb
|
||||||
jnz renv3
|
jnz renv3
|
||||||
jmp renv1
|
jmp renv1
|
||||||
|
|
||||||
enver: push cs
|
enver:
|
||||||
|
IFDEF EXE
|
||||||
|
push ss
|
||||||
|
ELSE
|
||||||
|
push cs
|
||||||
|
ENDIF
|
||||||
pop ds
|
pop ds
|
||||||
print envtxt
|
print envtxt
|
||||||
dos 4c02h
|
dos 4c02h
|
||||||
|
|
||||||
renvx: push cs
|
renvx:
|
||||||
|
IFDEF EXE
|
||||||
|
push ss
|
||||||
|
ELSE
|
||||||
|
push cs
|
||||||
|
ENDIF
|
||||||
pop ds
|
pop ds
|
||||||
mov [envofs], di
|
mov [envofs], di
|
||||||
stosb
|
stosb
|
||||||
|
@ -909,7 +928,22 @@ hclose: cmp bx, nhand
|
||||||
|
|
||||||
fopen: cmp di, offset t_icl+l_icl-2
|
fopen: cmp di, offset t_icl+l_icl-2
|
||||||
jnb icler
|
jnb icler
|
||||||
mov bx, [iclen]
|
testsw m_swp
|
||||||
|
jz fopen1
|
||||||
|
push si
|
||||||
|
mov si, offset (icl).nam
|
||||||
|
add si, [iclen]
|
||||||
|
mov di, offset tlabel
|
||||||
|
file 60h, e_open
|
||||||
|
mov si, offset tlabel
|
||||||
|
mov di, offset (icl).nam
|
||||||
|
add di, [iclen]
|
||||||
|
fomna: lodsb
|
||||||
|
stosb
|
||||||
|
test al, al
|
||||||
|
jnz fomna
|
||||||
|
pop si
|
||||||
|
fopen1: mov bx, [iclen]
|
||||||
mov [(icl bx).line], 0
|
mov [(icl bx).line], 0
|
||||||
mov [(icl bx).flags], 0
|
mov [(icl bx).flags], 0
|
||||||
lea dx, [(icl bx).nam]
|
lea dx, [(icl bx).nam]
|
||||||
|
@ -1140,8 +1174,9 @@ ctrail: cmp [byte di-1], ' '
|
||||||
je strail
|
je strail
|
||||||
putlst: mov ax, 0a0dh
|
putlst: mov ax, 0a0dh
|
||||||
stosw
|
stosw
|
||||||
lea cx, [di+zero-lstnum]
|
|
||||||
mov dx, offset lstnum
|
mov dx, offset lstnum
|
||||||
|
mov cx, di
|
||||||
|
sub cx, dx
|
||||||
putlad: mov bx, [lhand]
|
putlad: mov bx, [lhand]
|
||||||
jfile 40h, e_wrlst
|
jfile 40h, e_wrlst
|
||||||
|
|
||||||
|
@ -1217,6 +1252,37 @@ phbyte: aam 10h
|
||||||
stosw
|
stosw
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
; Pobierz nazwe pliku z linii polecen (al=#1 znak si=adr kolejnego) i zapisz do di
|
||||||
|
clfname:
|
||||||
|
clf1: stosb
|
||||||
|
clfna:
|
||||||
|
lodsb
|
||||||
|
cmp al, ' '
|
||||||
|
je clfx
|
||||||
|
cmp al, 9
|
||||||
|
je clfx
|
||||||
|
cmp al, '/'
|
||||||
|
je clfx
|
||||||
|
cmp al, 0dh
|
||||||
|
jne clf1
|
||||||
|
clfx: xor al, al
|
||||||
|
stosb
|
||||||
|
ret
|
||||||
|
|
||||||
|
; wpisz domyslna nazwe dla obx lub lst
|
||||||
|
defnam: cmp [byte di], 0
|
||||||
|
jnz defnr
|
||||||
|
mov si, [fslen]
|
||||||
|
defn1: dec si
|
||||||
|
cmp [byte si], '.'
|
||||||
|
jne defn1
|
||||||
|
lea cx, [si+1]
|
||||||
|
mov si, offset (icl t_icl).nam
|
||||||
|
sub cx, si
|
||||||
|
rep movsb
|
||||||
|
stosd
|
||||||
|
defnr: ret
|
||||||
|
|
||||||
; Pobierz znak (eol=error)
|
; Pobierz znak (eol=error)
|
||||||
get: lodsb
|
get: lodsb
|
||||||
cmp al, 0dh
|
cmp al, 0dh
|
||||||
|
@ -1286,7 +1352,8 @@ rlab2: stosb
|
||||||
jb rlab1
|
jb rlab1
|
||||||
linlon: push offset e_long
|
linlon: push offset e_long
|
||||||
jmp erron
|
jmp erron
|
||||||
rlabx: lea dx, [di+zero-tlabel+lab.nam]
|
rlabx: lea dx, [(lab di).nam]
|
||||||
|
sub dx, offset tlabel
|
||||||
dec si
|
dec si
|
||||||
cmp [byte tlabel], 'A'
|
cmp [byte tlabel], 'A'
|
||||||
ret
|
ret
|
||||||
|
@ -1313,7 +1380,8 @@ flab1: add si, cx
|
||||||
mov di, offset tlabel
|
mov di, offset tlabel
|
||||||
repe cmpsb
|
repe cmpsb
|
||||||
jne flab1
|
jne flab1
|
||||||
lea bx, [si+tlabel-offset (lab).nam]
|
mov bx, offset tlabel - offset (lab).nam
|
||||||
|
add bx, si
|
||||||
sub bx, di ; c=0
|
sub bx, di ; c=0
|
||||||
flabx: pop si
|
flabx: pop si
|
||||||
ret
|
ret
|
||||||
|
@ -2074,8 +2142,7 @@ p_mws: call getops
|
||||||
jae ilamod
|
jae ilamod
|
||||||
cmp al, 1
|
cmp al, 1
|
||||||
jne p_mw1
|
jne p_mw1
|
||||||
mov [byte high val], 0
|
and [dword val], 0ffh
|
||||||
mov [word val+2], 0
|
|
||||||
p_mw1: call mcall1
|
p_mw1: call mcall1
|
||||||
lea si, [op2]
|
lea si, [op2]
|
||||||
call ldop
|
call ldop
|
||||||
|
@ -2106,7 +2173,7 @@ p_mw4: test al, al
|
||||||
call savbyt
|
call savbyt
|
||||||
jmp p_mw3
|
jmp p_mw3
|
||||||
|
|
||||||
p_mwh: shr [dword val], 8
|
p_mwh: sar [dword val], 8
|
||||||
p_mw2: call mcall1
|
p_mw2: call mcall1
|
||||||
p_mw3: lea si, [op2]
|
p_mw3: lea si, [op2]
|
||||||
call ldop
|
call ldop
|
||||||
|
@ -2596,6 +2663,11 @@ emift: error e_mift
|
||||||
|
|
||||||
etmift: error e_tmift
|
etmift: error e_tmift
|
||||||
|
|
||||||
|
IFDEF EXE
|
||||||
|
ENDS
|
||||||
|
DATASEG
|
||||||
|
; ORG 0
|
||||||
|
ENDIF
|
||||||
; addressing modes:
|
; addressing modes:
|
||||||
; 0-@ 1-# 2-A 3-Z 4-A,X 5-Z,X 6-A,Y 7-Z,Y 8-(Z,X) 9-(Z),Y 10-(A)
|
; 0-@ 1-# 2-A 3-Z 4-A,X 5-Z,X 6-A,Y 7-Z,Y 8-(Z,X) 9-(Z),Y 10-(A)
|
||||||
lentab db 1,2,3,2,3,2,3,2,2,2,3
|
lentab db 1,2,3,2,3,2,3,2,2,2,3
|
||||||
|
@ -2611,7 +2683,8 @@ movtab movt <0a0h,p_ac1,080h,p_ac1,0,0>
|
||||||
movt <0a2h,p_ld1,086h,p_st1,0e8h,0cah>
|
movt <0a2h,p_ld1,086h,p_st1,0e8h,0cah>
|
||||||
movt <0a0h,p_ld1,084h,p_st1,0c8h,088h>
|
movt <0a0h,p_ld1,084h,p_st1,0c8h,088h>
|
||||||
|
|
||||||
comtab: cmd ADC0060p_acc
|
comtab = $
|
||||||
|
cmd ADC0060p_acc
|
||||||
cmd ADD8018p_ads
|
cmd ADD8018p_ads
|
||||||
cmd AND0020p_acc
|
cmd AND0020p_acc
|
||||||
cmd ASL0000p_srt
|
cmd ASL0000p_srt
|
||||||
|
@ -2714,9 +2787,10 @@ comtab: cmd ADC0060p_acc
|
||||||
cmd TXA008ap_imp
|
cmd TXA008ap_imp
|
||||||
cmd TXS009ap_imp
|
cmd TXS009ap_imp
|
||||||
cmd TYA0098p_imp
|
cmd TYA0098p_imp
|
||||||
comend:
|
comend = $
|
||||||
|
|
||||||
operpa: opr 1ret
|
operpa = $
|
||||||
|
opr 1ret
|
||||||
opr 6add
|
opr 6add
|
||||||
opr 6sub
|
opr 6sub
|
||||||
opr 7mul
|
opr 7mul
|
||||||
|
@ -2757,9 +2831,9 @@ optvec dw optl0,optl1,opth0,opth1,opto0,opto1
|
||||||
cndtxt dd 'DNE','TFI','ILE','SLE','FIE'
|
cndtxt dd 'DNE','TFI','ILE','SLE','FIE'
|
||||||
cndvec dw pofend,0,p_ift,0,p_eli,0,p_els,0,p_eif
|
cndvec dw pofend,0,p_ift,0,p_eli,0,p_els,0,p_eif
|
||||||
|
|
||||||
swilet db 'UTSONLIEC'
|
swilet db 'UTSPONLIEC'
|
||||||
|
|
||||||
hello db 'X-Assembler 2.4.-4'
|
hello db 'X-Assembler 2.4.-3'
|
||||||
ifdef SET_WIN_TITLE
|
ifdef SET_WIN_TITLE
|
||||||
titfin db 0
|
titfin db 0
|
||||||
else
|
else
|
||||||
|
@ -2768,26 +2842,27 @@ titfin db 0
|
||||||
db 'by Fox/Taquart',eot
|
db 'by Fox/Taquart',eot
|
||||||
hellen = $-hello-1
|
hellen = $-hello-1
|
||||||
usgtxt db "Syntax: XASM source [options]",eol
|
usgtxt db "Syntax: XASM source [options]",eol
|
||||||
db "/c List false conditionals",eol
|
db "/c List code excluded by ift/els/eli",eol
|
||||||
db "/e Set environment variables on error",eol
|
db "/e Set environment variables ERRFILE and ERRLINE if error occurs",eol
|
||||||
db "/i Don't list included source",eol
|
db "/i Don't list included files",eol
|
||||||
db "/l[:fname] Generate listing",eol
|
db "/l[:fname] Generate listing",eol
|
||||||
db "/n Assemble only if source newer than object",eol
|
db "/n Assemble only if source file is newer than object file",eol
|
||||||
db "/o:fname Write object as 'fname'",eol
|
db "/o:fname Write object file as 'fname'",eol
|
||||||
|
db "/p Print fully qualified file names in listing and error messages",eol
|
||||||
db "/s Don't convert spaces to tabs in listing",eol
|
db "/s Don't convert spaces to tabs in listing",eol
|
||||||
db "/t[:fname] List label table",eol
|
db "/t[:fname] List label table",eol
|
||||||
db "/u Warn of unused labels",eot
|
db "/u Warn of unused labels",eot
|
||||||
oldtxt db 'Source is older than object - not assembling',eot
|
oldtxt db 'Source file is older than object file - not assembling',eot
|
||||||
envtxt db 'Can''t change environment',eot
|
envtxt db 'Can''t change environment',eot
|
||||||
objtxt db 'Writing object...',eot
|
objtxt db 'Writing object file...',eot
|
||||||
lsttxt db 'Writing listing...'
|
lsttxt db 'Writing listing file...'
|
||||||
eoltxt db eot
|
eoltxt db eot
|
||||||
srctxt db 'Source: '
|
srctxt db 'Source: '
|
||||||
srctxl = $-srctxt
|
srctxl = $-srctxt
|
||||||
tabtxt db 'Label table:',eol
|
tabtxt db 'Label table:',eol
|
||||||
tabtxl = $-tabtxt
|
tabtxl = $-tabtxt
|
||||||
lintxt db ' lines of source assembled',eot
|
lintxt db ' lines of source assembled',eot
|
||||||
byttxt db ' bytes written to object',eot
|
byttxt db ' bytes written to the object file',eot
|
||||||
dectxt db 10 dup(' '),'$'
|
dectxt db 10 dup(' '),'$'
|
||||||
wartxt db 'WARNING: $'
|
wartxt db 'WARNING: $'
|
||||||
w_bugjp db 'Buggy indirect jump',eol
|
w_bugjp db 'Buggy indirect jump',eol
|
||||||
|
@ -2798,10 +2873,10 @@ w_repl db 'Repeating only last instruction',eol
|
||||||
errtxt db 'ERROR: $'
|
errtxt db 'ERROR: $'
|
||||||
e_open db 'Can''t open file',cr
|
e_open db 'Can''t open file',cr
|
||||||
e_read db 'Disk read error',cr
|
e_read db 'Disk read error',cr
|
||||||
e_crobj db 'Can''t write object',cr
|
e_crobj db 'Can''t write to the object file',cr
|
||||||
e_wrobj db 'Error writing object',cr
|
e_wrobj db 'Error writing to the object file',cr
|
||||||
e_crlst db 'Can''t write listing',cr
|
e_crlst db 'Can''t write to the listing file',cr
|
||||||
e_wrlst db 'Error writing listing',cr
|
e_wrlst db 'Error writing to the listing file',cr
|
||||||
e_icl db 'Too many files nested',cr
|
e_icl db 'Too many files nested',cr
|
||||||
e_long db 'Line too long',cr
|
e_long db 'Line too long',cr
|
||||||
e_uneol db 'Unexpected eol',cr
|
e_uneol db 'Unexpected eol',cr
|
||||||
|
@ -2820,7 +2895,7 @@ e_bra db 'Branch out of range by $'
|
||||||
brout db ' bytes',cr
|
brout db ' bytes',cr
|
||||||
e_sin db 'Bad or missing sinus parameter',cr
|
e_sin db 'Bad or missing sinus parameter',cr
|
||||||
e_spac db 'Space expected',cr
|
e_spac db 'Space expected',cr
|
||||||
e_opt db 'Invalid options',cr
|
e_opt db 'Invalid option',cr
|
||||||
e_over db 'Arithmetic overflow',cr
|
e_over db 'Arithmetic overflow',cr
|
||||||
e_div0 db 'Divide by zero',cr
|
e_div0 db 'Divide by zero',cr
|
||||||
e_range db 'Value out of range',cr
|
e_range db 'Value out of range',cr
|
||||||
|
@ -2894,7 +2969,7 @@ envnam dw ?
|
||||||
envnum dw ?
|
envnum dw ?
|
||||||
envlen dw ?
|
envlen dw ?
|
||||||
|
|
||||||
var:
|
var = $
|
||||||
MACRO bb _name
|
MACRO bb _name
|
||||||
_name&o = $-var
|
_name&o = $-var
|
||||||
_name equ byte bp+_name&o
|
_name equ byte bp+_name&o
|
||||||
|
@ -2923,5 +2998,12 @@ ENDIF
|
||||||
|
|
||||||
t_lab db l_lab dup(?)
|
t_lab db l_lab dup(?)
|
||||||
|
|
||||||
|
IFDEF EXE
|
||||||
|
stak db 400h dup(?)
|
||||||
|
staken = $
|
||||||
|
ENDS
|
||||||
|
STACK 100h
|
||||||
|
ENDIF
|
||||||
|
|
||||||
ENDS
|
ENDS
|
||||||
END start
|
END start
|
Loading…
Reference in New Issue
Block a user