1
0
mirror of https://github.com/pfusik/xasm.git synced 2024-06-15 03:29:31 +00:00
This commit is contained in:
Piotr Fusik 1999-08-18 20:04:36 +02:00
parent c0af7e23a5
commit d7c0cf3dc0

40
gr0.asm
View File

@ -25,7 +25,7 @@ MACRO topt _op
mov si, 81h mov si, 81h
mov bx, 0ff00h ;bh=attr mask, bl=attr set mov bx, 0ff00h ;bh=attr mask, bl=attr set
xor dx, dx ;m_xxx xor dx, dx ;dx=options
gsw1: lodsb gsw1: lodsb
cmp al, ' ' cmp al, ' '
@ -46,7 +46,7 @@ panic: print
rdpage: mov cx, 100h rdpage: mov cx, 100h
fread fread
cmp ax, 100h cmp ax, cx
jb _derr jb _derr
ret ret
@ -54,14 +54,11 @@ rdnum: lodsb
cmp al, ':' cmp al, ':'
jne usage jne usage
lodsw lodsw
cmp al, '9' sub ax, '00'
ja usage cmp al, 10
sub al, '0' jae usage
jb usage cmp ah, 10
cmp ah, '9' jae rdnum1
ja rdnum1
sub ah, '0'
jb rdnum1
xchg al, ah xchg al, ah
aad ;al:=10*ah+al aad ;al:=10*ah+al
cmp al, 15 cmp al, 15
@ -111,7 +108,7 @@ swf2: pusha
mov bx, di mov bx, di
mov cx, di mov cx, di
sub cx, offset fname sub cx, offset fname
je usage je short jusage
adex1: dec bx adex1: dec bx
cmp [byte bx], '.' cmp [byte bx], '.'
je adexn je adexn
@ -135,7 +132,7 @@ adexn: mov [byte di], 0
jmp gsw1 jmp gsw1
gswx: test dx, dx gswx: test dx, dx
jz usage jz jusage
topt o_a ;obsluz opcje a topt o_a ;obsluz opcje a
jz atrok jz atrok
@ -160,11 +157,15 @@ atrok:
btr ax, cx btr ax, cx
test ax, ax test ax, ax
jz fntok jz fntok
jmp usage jusage: jmp usage
nofnt: topt o_l ;jezeli l i zadna z d,f,x, to ustaw d nofnt: topt o_l ;jezeli l i zadna z d,f,x, to ustaw d
jz fntok jz fntok
setflag dx, o_d setflag dx, o_d
fntok: fntok: topt o_i
jz noinv0
topt o_f+o_x ;i tylko razem z f lub x
jz jusage
noinv0:
push bx push bx
@ -178,13 +179,14 @@ fntok:
noini: noini:
; wczytaj font domyslny ; wczytaj font domyslny
topt o_d topt o_d+o_f+o_x
jz nodef jz nodef
mov ax, 1112h mov ax, 1112h
topt o_l topt o_l
jnz def50 jnz def50
mov al, 14h mov al, 14h
def50: push dx def50: push dx
xor bl, bl
int 10h int 10h
pop dx pop dx
nodef: nodef:
@ -227,8 +229,8 @@ nodbl: push dx
mov ax, 1110h mov ax, 1110h
int 10h int 10h
pop dx pop dx
nocust: nocust:
; jezeli przelaczylismy 50->25 to skorygowac polozenie kursora ; jezeli przelaczylismy 50->25 to skorygowac polozenie kursora
topt o_l topt o_l
jnz nococu jnz nococu
@ -275,7 +277,7 @@ cls: inc di
nocol: ret nocol: ret
swilet db 'XNLIFDCBA' swilet db 'XNLIFDCBA'
usgtxt db 'GR0 version 1.0 by Fox/Taquart',eol usgtxt db 'GR0 version 1.1 by Fox/Taquart',eol
db 'Customizes DOS screen.',eol db 'Customizes DOS screen.',eol
db 'Available options:',eol db 'Available options:',eol
db '/a Set Atari scheme = /b:1 /c:7 /n /l /x',eol db '/a Set Atari scheme = /b:1 /c:7 /n /l /x',eol
@ -283,10 +285,10 @@ usgtxt db 'GR0 version 1.0 by Fox/Taquart',eol
db '/c:nn Set foreground color 0-15',eol db '/c:nn Set foreground color 0-15',eol
db '/d Set default PC font',eol db '/d Set default PC font',eol
db '/f:fname Set external Atari font',eol db '/f:fname Set external Atari font',eol
db '/i Set chars 128-255 to inverse',eol db '/i Set characters 128-255 to inverse',eol
db '/l Select 50 lines font',eol db '/l Select 50 lines font',eol
db '/n Initialize text mode (clears screen)',eol db '/n Initialize text mode (clears screen)',eol
db '/x Set Atari build-in font',eot db '/x Set Atari built-in font',eot
smarterr smarterr
font db 0,54,127,127,62,28,8,0,24,24,24,31,31,24,24,24,3 font db 0,54,127,127,62,28,8,0,24,24,24,31,31,24,24,24,3