Crazy-Blaster/Crazy Estex DSS/SHELL/Procedures/Print.ASM
Anatoliy Belyanskiy ace6b0904b First init
2024-07-29 01:59:31 +10:00

115 lines
2.3 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 e,a
ld d,0
inc de
ld hl,ERR0 ; ¬ áᨢ áâப
ld bc,ERR0.Size ; à §¬¥à ¬ áᨢ 
call LCPIR ; ­ ©â¨ áâபã
call PRINTZ ; ä®à¬ â. ¢ë¢®¤ áâப¨
; call newline
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
;[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
;