Estex-DSS/SHELL/Procedures/Print.ASM

164 lines
3.2 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;-------------------------------------------------
; ‚뢮¤ á®®¡é¥­¨ï ®è¨¡ª¨ ¯® ¨­¤¥ªáã
; ¢å®¤: 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
;