;----------------------------------------------------------- ; Курсор объекта "Input Line" и функции "Command Line" ;----------------------------------------------------------- INS_CUR_ZG: EQU #9B ; 19h CURSOR_ZG: EQU #5B ; 1Ah NORM_ZG: EQU #1B ; CursorPos: dw 1E00h ; Y/X позиция курсора (экран. коорд.) ; ; PrnILCr:db 3Eh ; ld a,.. Timer: db 1 ; пауза мигания dec a call z,PutILCr ld (Timer),a ret PutILCr:db 3Eh ; ld a,.. Flag: db 0 ; флаг курсора 00-нет/01-есть cpl ld (Flag),a PILCurs:ld de,(CursorPos) ; Y/X позиция курсора ld (CursPos1+1),de xor a ld c,0B4h ; получить символ rst 08h ld bc,NORM_ZG*256 + #B5 ; b=знакоген., с=символ на экран ld a,(Flag) or a jr z,curs__ ld b,CURSOR_ZG ; черта ld a,(D0642) ; флаги клавы bit 1,a ; бит Ins jr nz,$+4 ld b,INS_CUR_ZG ; блок curs__: xor a ; номер окна rst 08h ld a,1 ld (CurILFl),a ; a=1 ld a,11 ret ; Выключить курсор ResILCr:db 3Eh ; ld a,.. CurILFl:db 0 ; флаг курсора 00-выкл/01-вкл or a ret z ld a,-1 ld (Flag),a inc a ld (CurILFl),a ld a,11 ld (Timer),a CursPos1: ld de,0 ; Y/X полож. bit 7,e ret nz ld c,0B4h ; получить символ xor a rst 08h xor a ld bc,NORM_ZG*256 + #B5 ; символ на экран rst 08h ret