mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
164 lines
3.2 KiB
NASM
164 lines
3.2 KiB
NASM
;-------------------------------------------------
|
||
; ‚뢮¤ á®®¡é¥¨ï ®è¨¡ª¨ ¯® ¨¤¥ªáã
|
||
; ¢å®¤: a=®¬¥à ®è¨¡ª¨
|
||
;-------------------------------------------------
|
||
print_err_message:
|
||
ld hl,SYS_ERRORS ; ¬ áᨢ áâப
|
||
ld bc,SYS_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||
;cp %1000'0000
|
||
RLA
|
||
jr nc,.set_de
|
||
;
|
||
;and %0111'1111
|
||
ld hl,DRV_ERRORS ; ¬ áᨢ áâப
|
||
ld bc,DRV_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||
;
|
||
.set_de: SRL A
|
||
ld e,a
|
||
ld d,0
|
||
inc de
|
||
call LCPIR ; ©â¨ áâபã
|
||
call PRINTZ ; ä®à¬ â. ¢ë¢®¤ áâப¨
|
||
jp newline
|
||
|
||
|
||
; ‚뢮¤ áâப¨ ®è¨¡ª¨
|
||
;A850D:
|
||
invalid_param:
|
||
ld de,MAIN_MSG.INVALID ; ¨¤¥ªá "Invalid parametr"
|
||
jr ECHO_MESSAGE
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‚뢮¤ á®®¡é¥¨ï ¯® ¨¤¥ªáã
|
||
; ¢å®¤: de=¨¤¥ªá áâப¨
|
||
;-------------------------------------------------
|
||
ECHO_MESSAGE:
|
||
call FMESAGE ; ©â¨ áâப㠯® ¨¤¥ªáã
|
||
jp PRINTZ ; ä®à¬ â. ¢ë¢®¤ áâப¨
|
||
;jp A82CC ; ã§ âì ¨ ãáâ. ¯®«®¦. ªãàá®à
|
||
|
||
|
||
; <20> ©â¨ áâப㠯® ¨¤¥ªáã
|
||
; ¢å®¤: de=¨¤¥ªá áâப¨
|
||
; ¢ë室: hl=áâப
|
||
FMESAGE: inc de
|
||
ld hl,MAIN_MSG.TABLE ; ç «® ¬ áᨢ áâப
|
||
ld bc,MAIN_MSG.TABLE.Size ; à §¬¥à ¬ áᨢ
|
||
LCPIR: xor a
|
||
cpir
|
||
ret po
|
||
ret nz
|
||
;R11
|
||
XOR A
|
||
CP (HL)
|
||
JR Z,.no_mess
|
||
;
|
||
dec de
|
||
ld a,d
|
||
or e
|
||
jr nz,LCPIR
|
||
ret
|
||
.no_mess: INC HL
|
||
RET
|
||
|
||
|
||
;----------------------------------------------------------------------;
|
||
; ”®à¬ â¨à®¢ ë© ¢ë¢®¤ áâப¨ á ¯®¤áâ ®¢ª®© à£ã¬¥â®¢ ¢¬¥áâ® %1-%9
|
||
; ¢å®¤: hl=¡ãä¥à áâப¨
|
||
;----------------------------------------------------------------------;
|
||
PRINTZ: ld a,(hl)
|
||
inc hl
|
||
or a
|
||
ret z
|
||
;
|
||
cp '%'
|
||
jr z,.check_PRM
|
||
.char: ld c,Dss.PutChar
|
||
RST ToDSS
|
||
jp PRINTZ
|
||
;
|
||
.bad_PRM: ld a,'%'
|
||
jp .char
|
||
;
|
||
.check_PRM: ld a,(hl)
|
||
cp '9'+1
|
||
jr nc,.bad_PRM
|
||
;
|
||
inc hl
|
||
sub '1'
|
||
push hl
|
||
ADD A
|
||
ADD A
|
||
ADD A
|
||
ADD A
|
||
LD L,A
|
||
LD H,0
|
||
;
|
||
ld bc,Buffers.bat_params.PRM1
|
||
add hl,bc
|
||
ld c,Dss.PChars ; ¢ë¢®¤ áâப¨
|
||
RST ToDSS
|
||
pop hl
|
||
jp PRINTZ
|
||
|
||
|
||
/*
|
||
;[x] ¨á¯à ¢«¥ ¡ £ á ¢ë室®¬ § ¯à¥¤¥«ë ¡ãä¥à PRM. —ãâì ®¯â¨¬¨§¨à®¢
|
||
;----------------------------------------------------------------------;
|
||
; ”®à¬ â¨à®¢ ë© ¢ë¢®¤ áâப¨ á ¯®¤áâ ®¢ª®© à£ã¬¥â®¢ ¢¬¥áâ® %1-%9
|
||
; ¢å®¤: hl=¡ãä¥à áâப¨
|
||
;----------------------------------------------------------------------;
|
||
PRINTZ: ld a,(hl)
|
||
inc hl
|
||
or a
|
||
ret z
|
||
cp '%'
|
||
jr z,.check_PRM
|
||
.char: ld c,Dss.PutChar
|
||
RST ToDSS
|
||
jp PRINTZ
|
||
.bad_PRM:
|
||
ld a,'%'
|
||
jp .char
|
||
.check_PRM:
|
||
ld a,(hl)
|
||
cp '9'+1
|
||
jr nc,.bad_PRM
|
||
inc hl
|
||
sub '1'
|
||
push hl
|
||
;!TEST
|
||
;ld l,a
|
||
;ld h,0
|
||
;add hl,hl ;1+1=2
|
||
;add hl,hl ;2+2=4
|
||
;add hl,hl ;4+4=8
|
||
;add hl,hl ;8+8=16 à §¬¥à ®â¤¥«ì®£® ¯®¤¡ãä¥à
|
||
ADD A
|
||
ADD A
|
||
ADD A
|
||
ADD A
|
||
LD L,A
|
||
LD H,0
|
||
;
|
||
ld bc,Buffers.bat_params.PRM1
|
||
add hl,bc
|
||
ld c,Dss.PChars ; ¢ë¢®¤ áâப¨
|
||
RST ToDSS
|
||
pop hl
|
||
jp PRINTZ
|
||
*/
|
||
|
||
; ¡ãä¥àë à£ã¬¥â®¢ ª®¬ ¤®© áâப¨
|
||
; PRM1: BLOCK 16,0 ; à£ã¬¥â %1
|
||
; PRM2: BLOCK 16,0 ; à£ã¬¥â %2
|
||
; PRM3: BLOCK 16,0 ; à£ã¬¥â %3
|
||
; PRM4: BLOCK 16,0 ; à£ã¬¥â %4
|
||
; PRM5: BLOCK 16,0 ; à£ã¬¥â %5
|
||
; PRM6: BLOCK 16,0 ; à£ã¬¥â %6
|
||
; PRM7: BLOCK 16,0 ; à£ã¬¥â %7
|
||
; PRM8: BLOCK 16,0 ; à£ã¬¥â %8
|
||
; PRM9: BLOCK 16,0 ; à£ã¬¥â %9
|
||
; |