; 6.1.97 PYXEL
; 19.11.94 -1 byte
; 29.10.94 ROM
; 24.11.92 -BEEP
; 10.11.92 -CR^..
; 17.10.92 -INIWT
; 13.9.92
; 20.02.91
; wtro.asm (tbwt.as)
;=156/239
ttyout EQU #A
g_tydv EQU #13
l_im2 EQU #1E
if 0
$STR
LD C,ttyout
1$
LD A,(HL)
CP #D
RET Z
RST 16
INC HL
JR 1$
;-----
$G_SCR
LD HL,$PAPER
EXX
$EMPTY RET
;-----
$WTPOS
LD A,(IX+1)
ADD A,H
LD H,A
LD A,(IX+6)
ADD A,L
LD L,A
EPOS1
LD ($XYpos),HL
LD B,H
LD C,L
CALL sPRAD
E_POS
EXX
LD ($xypos),DE
EXX
RET
;-----
$UNVAN
PUSH HL
EXX
POP HL
LD B,A
EX AF,AF'
1$
LD A,(HL)
CP -1
JR Z,2$
CP B
JR Z,2$
INC HL
INC HL
INC HL
JR 1$
;-----
2$
INC HL
LD C,(HL)
INC HL
LD B,(HL)
PUSH BC
EXX
EX AF,AF'
RET
endif
;-----
sLWT
;101(65):lwt - Распечатка заданного количества строк в окне; A - номер строки (начала), IX - вектор окна, HL - адрес строк текста для печати, B - количество строк, которое необходимо распечатать
LD D,B ;lines to print
INC D
LD E,(IX+7) ;menuwid
LD C,(IX+6) ;menux_chrs
ADD A,B
ADD A,(IX+1) ;y
LD B,A ;last y
JR PRWT
;-----
if 0
$ADRWT
PUSH IX
POP HL
LD DE,8
ADD HL,DE
$LENWT
LD D,(IX+2)
DEC D
LD E,(IX+7)
LD A,(IX+1)
ADD A,D
LD B,A
LD C,(IX+6)
endif
PRWT
PUSH BC
PRWT0
DEC D ;lines to print
POP BC
RET Z
CALL PRWT5
PUSH BC
LD B,E ;menuwid
PRWT1
LD A,(HL)
CP 3
JR Z,PRWT6
CP #D
JR Z,PRWT2
CALL sPRCHR
INC HL
DJNZ PRWT1
LD A,(HL)
CP #D
JR NZ,PRWT0
INC HL
JR PRWT0
;-----
PRWT2
LD A," "
CALL sPRCHR
DJNZ PRWT2
INC HL
JR PRWT0
;-----
PRWT6
LD A," "
CALL sPRCHR
DJNZ PRWT6
DEC D ;lines to print
POP BC
RET Z
CALL PRWT5
PUSH BC
PRWT3
LD B,E ;menuwid
JR PRWT6
;-----
PRWT5
LD A,D ;lines to print
PUSH BC
EXX
POP BC
SUB B ;last y
NEG
LD B,A
JP sPRAD ;setxy
;-----
if 1 ;todo textmode
AWTCM
ADD A,(IX+1) ;hinty
LD B,A
PUSH BC
CALL sWATRB
POP BC
LD A,C
LD B,(IX+3)
RET
;-----
;99(63):awt - Подкрашивает строку внутри окна, c рамкой. Вход: IX = адрес вектора окна, A = номер строки, которую необходимо подсветить (нумерация от 1), B = цвет
sAWT
LD C,B ;color
CALL AWTCM
AWT_1
LD (DE),A
INC DE
DJNZ $-2
RET
;-----
;100(64):awtc - Подкрашивает строку внутри окна, не затрагивая рамку, IX=вектор окна, A=номер строки, B=цвет
sAWTC
LD C,B
CALL AWTCM
DEC B
DEC B
INC DE
JR AWT_1
endif
;-----
sDRAW
LD B,L
LD A,(IX+4)
DRAW_1
LD (DE),A
INC E
DJNZ $-2
RET
;-----
if 0
$PYXEL
LD DE,#5800
ADD HL,DE
EX DE,HL
JR DRAW_1
endif
;-----
sWATRB ;TODO переделать под textmode
LD C,(IX)
CALL sADDR
EXX
LD A,D
AND #18
RRCA
RRCA
RRCA
OR #58
LD D,A
RET
;-----
sAT_NEXT ;TODO переделать под textmode
EX AF,AF'
LD A,E
SUB L
ADD A,#20
LD E,A
JR NC,$+3
INC D
EX AF,AF'
RET
;-----
sATRB ;TODO переделать под textmode
PUSH AF
EXX
LD C,E
LD A,D
RRCA
RRCA
RRCA
AND 3
OR #58
LD B,A
POP AF
LD (BC),A
EXX
RET
;-----
sADDR ;TODO переделать под textmode
LD A,B
RRCA
RRCA
RRCA
AND #E0
LD L,A
LD A,B
AND #18
OR #40
LD H,A
LD B,0
ADD HL,BC
EX DE,HL
EXX
RET
;-----
sSPACE ;TODO переделать под textmode
if PRSTDIO
push bc
push de
push hl
push ix
ld a,' '
call sendchar
pop ix
pop hl
pop de
pop bc
ret
else
EXX
XOR A
LD B,D
LD (DE),A
INC D
LD (DE),A
INC D
LD (DE),A
INC D
LD (DE),A
INC D
LD (DE),A
INC D
LD (DE),A
INC D
LD (DE),A
INC D
LD (DE),A
INC D
INC E
JR Z,$+3
LD D,B
EXX
RET
endif
;-----
if 0
$CLS
OR A
JR NZ,1$
LD HL,#4000
LD BC,#17FF
CALL 2$
LD A,($PAPER)
CALL 1$
LD BC,$ABORD
LD A,($BORD)
AND 7
OUT (C),A
RET
;-----
1$
LD HL,#5800
LD BC,#2FF
2$
LD (HL),A
LD E,L
LD D,H
INC DE
LDIR
RET
endif
;-----
if 0
; 29.10.94 16:41 ROM
; 24.11.92 0:13 -BEEP
; 13.11.92 1:20 DI, EI
; 11.11.92 21:15 Y_+^ON
; 29.11.90 22:30
; hmnwt.as
;=242/346/329/351
$Y____
DI
EXX
LD BC,($XYpos)
;Setcr
LD A,B
LD ($XSCRS+1),A
LD A,($BYTST)
LD B,A
XOR A
ADD A,C
DJNZ $-1
LD ($XSCRS),A
EXX
CALL $PUTCR
OR -1
LD HL,$CURS
LD C,l_im2
RST 16
CALL $ONCUR
EI
RET
;-----
$N____
DI
XOR A
LD HL,$CURS
LD C,l_im2
RST 16
PUSH AF
CALL $GETCR
POP AF
EI
RET
;-----
$CONYX
PUSH DE
POP HL
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD A,D
AND #18
OR #47 ;7-NOMER BYTE V LITERE ,PO KOTOROI POLZAET KURSOR
LD H,A
RET
;______
$INNI
LD A,($BYTST)
LD B,A
LD DE,($XSCRS)
RET
;-----
IF 0
DEFB -1,#1F,1,1
VCT
DEFB 2,3,15,20
LD IX,VCT
CALL $EWINI
CALL $UPSCR
CALL $UPSCR
CALL $UPSCR
CALL $UPSCR
CALL $UPSCR
CALL $UPSCR
RET
ENDIF
; 24.10.91 03:11 PSKOV
; rolwt.as
;LFT EQU -4
;RT EQU -3
Delay EQU -2
Scroll EQU -1;8,4,2 OR 1
X_COOR EQU 0 ;UPlefr UGL
Y_COOR EQU 1 ;KOORD.
Y_SIZE EQU 2 ;RAZMER
X_SIZE EQU 3 ;OKNA
$EWINI
LD A,(IX+Delay)
LD ($SPD+2),A
LD ($CDE+1),HL
LD B,(IX+Scroll)
LD C,B
LD A,16
RRCA
RRC C
JR NC,$-3
LD ($UPSCR+1),A
LD ($DWSCR+1),A
LD C,B
LD H,(IX+Y_SIZE)
DEC H
DEC H
LD D,(IX+Y_COOR)
INC D
LD E,(IX+X_COOR)
INC E
LD A,H
LD ($Z2^+1),A
RLCA
RLCA
RLCA
SUB B
LD ($UP+1),A
LD ($DOWN+1),A
LD A,(IX+X_SIZE)
DEC A
DEC A
LD ($LDIRR+1),A
EX DE,HL
PUSH HL
CALL 1$
LD ($UPDE+1),HL
CALL $INCH
DJNZ $-3
LD ($UPHL+1),HL
POP HL
LD A,H
ADD A,D
LD H,A
CALL 1$
CALL $DECH
DEC H
LD ($DNDE+1),HL
LD B,C
CALL $DECH
DEC H
DJNZ $-4
LD ($DNHL+1),HL
RET
;-----
1$
LD A,H
RRCA
RRCA
RRCA
XOR L
AND #E0
XOR L
LD L,A
LD A,H
AND #18
OR #40
LD H,A
RET
;-----
$INCH
INC H ; ROM
LD A,7
AND H
RET NZ
LD A,#20
ADD A,L
LD L,A
RET C
LD A,H
SUB 8
LD H,A
RET
;**;**
endif