;/////////////////////////////////////////////////// ; ; 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 размер ;!HARDCODE win size ld a," " ld c,Dss.Clear ; очистить окно RST ToDSS ; уст. курсор в 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