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

66 lines
1.2 KiB
NASM

;///////////////////////////////////////////////////
;
; CLS. Žç¨áâ¨âì íªà ­
;
; Œ®¦­® § ¤ âì ®¤¨­  à£ã¬¥­â - 梥â íªà ­ .
; …᫨  à£ã¬¥­â ­¥ § ¤ ­, ¨á¯. ¯®-㬮«ç ­¨î #07.
;///////////////////////////////////////////////////
cmd_cls: ex de,hl ; hl=ª®¬-áâப 
;ld de,T9186 ; ¡ãä¥à ¯®¤ ¯ à ¬¥âà
ld de,Buffers.work.buffer1;
push de
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
RST ToDSS
pop hl
jp nc,invalid_param ; "Invalid parametr" (>1 ¯ à ¬.)
ld b,7 ;  âਡãâ ®ç¨á⪨ ¯®-㬮«ç ­¨î
ld a,(hl)
or a
jr z,cls_clear
call ascii2byte
jp c,invalid_param ; "Invalid parametr"
and 7
ld b,a
inc hl
ld a,(hl)
or a
jr z,cls_clear
ld a,b
rlca
rlca
rlca
rlca
ld b,a
ld a,(hl)
call ascii2byte
jp c,invalid_param ; "Invalid parametr"
or b
ld b,a
cls_clear: ld a,b
ld (color_screen),a ;  âਡãâ
ld de,0 ; Y/X ¯®«®¦.
ld hl,#2050 ; Y/X à §¬¥à
ld c,BIOS.LP_CLS_WIN ; ®ç¨áâ¨âì ®ª­® (¢ë¢®¤®¬ ¯à®¡¥«®¢)
RST ToBIOS
; ãáâ. ªãàá®à ¢ Home
ld de,0 ; Y/X ¯®«®¦.
ld c,Dss.Locate
RST ToDSS
ret
; ascii -> int
ascii2byte:
cp "0"
ret c
cp "9"+1
jr c,$+10 ;!FIXIT $
and 5Fh
cp "F"+1
ccf
ret c
sub 7
sub "0"
or a
ret