Rev 1210 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
; twind.as
; 29.12.90
;-----
WT
CALL EWT
XOR A
LD E,A
LD D,A
JR sR_BOX
;-----
EWT
LD E,(IX+3) ;wid
LD D,(IX+2) ;hgt
EXX
LD C,(IX) ;x
LD B,(IX+1) ;y
DEC B
WIND1
INC B
PUSH BC
CALL sADDR
LD B,E
WIND LD A,0
OR A
CALL Z,sSPACE
DJNZ WIND
DEC D
EXX
POP BC
JR NZ,WIND1
LD B,(IX+1)
CALL sWATRB
LD L,(IX+3)
LD H,(IX+2)
CALL sDRAW
CALL sAT_NEXT
DEC H
JR NZ,WIND3
LD A,(IX+5)
JR WIND4m1
WIND3
CALL sDRAW
LD A,(IX+5)
BIT 7,A
JR NZ,$+3
LD (DE),A
CALL sAT_NEXT
DEC H
JR NZ,WIND3
WIND4m1
INC E
WIND4
BIT 7,A
RET NZ
LD (DE),A
INC E
DEC L
JR NZ,WIND4
RET
;-----
sR_WT
;97(61):wt - ╨Т╤Л╨▓╨╛╨┤ ╨╛╨║╨╜╨░. ╨Я╨╛╨┤╤Д╤Г╨╜╨║╤Ж╨╕╤П ╨▓ ╤А╨╡╨│. A: A=0 ╨╛╨║╨╜╨╛ ╤Б ╨╛╨┤╨╕╨╜╨░╤А╨╜╨╛╨╣ ╤А╨░╨╝╨║╨╛╨╣, ╨Р=1 ╨▒╨╡╨╖ ╤А╨░╨╝╨║╨╕, ╨Р=2 ╤Б ╨┤╨▓╨╛╨╣╨╜╨╛╨╣ ╤А╨░╨╝╨║╨╛╨╣, A=3..127 ╨▒╨╡╨╖ ╤А╨░╨╝╨║╨╕, A=128..255 ╤В╨╛╨╗╤М╨║╨╛ ╨┐╨╛╨┤╨║╤А╨░╤Б╨║╨░. IX= ╨▓╨╡╨║╤В╨╛╤А ╨╛╨║╨╜╨░
LD HL,WIND+1
LD E,0
BIT 7,A
JR Z,WT00
RES 7,A
DEC E ;0xff
WT00
LD (HL),E
OR A
JR Z,WT ;A=0 ╨╛╨║╨╜╨╛ ╤Б ╨╛╨┤╨╕╨╜╨░╤А╨╜╨╛╨╣ ╤А╨░╨╝╨║╨╛╨╣
DEC A
JR Z,EWT ;A=1 ╨╛╨║╨╜╨╛ ╨▒╨╡╨╖ ╤А╨░╨╝╨║╨╕
DEC A
JR NZ,EWT
;A=2 ╨╛╨║╨╜╨╛ ╤Б ╨┤╨▓╨╛╨╣╨╜╨╛╨╣ ╤А╨░╨╝╨║╨╛╨╣
CALL WT
XOR A
LD DE,#202
sR_BOX
OR A
JR NZ,$+4
LD A,#F
LD (BXCSR),A
EX AF,AF'
LD A,E
AND 7
LD C,A
LD A,D
AND 7
LD B,A
EX AF,AF'
AND 128
JR Z,BOX
;BOX_
EXX
XOR A
LD BC,#A62F
; ORG $-2
; CPL
; AND (HL)
JR NASTR
BOX
EXX
LD A,-1
; LD BC,OR NOP
LD BC,#B6
; ORG $-2
; OR (HL)
; NOP
NASTR
LD (LEND),BC
LD (CCPL+1),A
LD HL,SRS+1
RES 6,(HL)
INC A
JR NZ,$+4
SET 6,(HL)
PUSH IX
LD B,(IX+1)
LD C,(IX)
CALL sADDR
EXX
PUSH DE
EXX
POP HL
LD E,(IX+3)
LD D,(IX+2)
LD IX,TCORR
LD A,C
AND 7
RLCA
LD (IX+DCORR),A
INC A
LD (IX+DCORR1),A
RLCA
RLCA
SRS XOR #FA
PUSH AF
BIT 0,(IX+RSCR)
JR NZ,$+4
AND #7F
LD (IX+DSTL),A
POP AF
XOR #38
BIT 1,(IX+RSCR)
JR NZ,$+4
AND #7F
LD (IX+DSTR),A
LD A,H
ADD A,B
LD H,A
PUSH HL
LD A,D
DEC E
RLCA
RLCA
SUB B
RLCA
LD B,A
JR WD1
;-----
BXCSR DEFB %1111 ;╨░╨┤╤А╨╡╤Б╤Г╨╡╤В╤Б╤П ╤З╨╡╤А╨╡╨╖ (IX+RSCR) ;d0: ╤З╤С╤А╨╜╨░╤П ╨╗╨╕╨╜╨╕╤П ╤Б╨╗╨╡╨▓╨░ (DSTL) ;d1: ╤З╤С╤А╨╜╨░╤П ╨╗╨╕╨╜╨╕╤П ╤Б╨┐╤А╨░╨▓╨░ (DSTR) ;d2: ╤З╤С╤А╨╜╨░╤П ╨╗╨╕╨╜╨╕╤П ╨▓╨▓╨╡╤А╤Е╤Г ;d3: ╤З╤С╤А╨╜╨░╤П ╨╗╨╕╨╜╨╕╤П ╨▓╨╜╨╕╨╖╤Г
RSCR EQU -1
TCORR ;╨╝╨░╤Б╨║╨╕ ╨┤╨╗╤П ╨╗╨╡╨▓╨╛╨│╨╛ ╨╕ ╨┐╤А╨░╨▓╨╛╨│╨╛ ╨║╤А╨░╤П
DEFW -1
DEFW #FE7F
DEFW #FC3F
DEFW #F81F
DEFW #F00F
DEFW #E007
DEFW #C003
DEFW #8001
;-----
sDRAW1:
INC H
LD A,7
AND H
JR NZ,WD1 ;NO !!
LD A,#20
ADD A,L
LD L,A
JR C,WD1 ;NEXT BLOK
LD A,H
SUB 8
LD H,A
WD1: ;╤В╤Г╤В ╨┐╨░╤В╤З╨╕╤В╤Б╤П ╨╛╤В╤А╨╕╤Б╨╛╨▓╤Й╨╕╨║ ╤З╤С╤А╨╜╨╛╨╣ ╨╗╨╕╨╜╨╕╨╕ ╤Б╨╗╨╡╨▓╨░
SET 0,(HL)
LD A,L
ADD A,E
LD L,A
SETR: ;╤В╤Г╤В ╨┐╨░╤В╤З╨╕╤В╤Б╤П ╨╛╤В╤А╨╕╤Б╨╛╨▓╤Й╨╕╨║ ╤З╤С╤А╨╜╨╛╨╣ ╨╗╨╕╨╜╨╕╨╕ ╤Б╨┐╤А╨░╨▓╨░
SET 7,(HL)
SUB E
LD L,A
DJNZ sDRAW1
CORR: LD B,(IX+0) ;╨╝╨░╤Б╨║╨░ 0xff..0x01
CORR1: LD C,(IX+0) ;╨░╨┤╤А╨╡╤Б +1 ╨┐╨╛ ╤Б╤А╨░╨▓╨╜╨╡╨╜╨╕╤О ╤Б ╨┐╤А╨╡╨┤╤Л╨┤╤Г╤Й╨╕╨╝ ;╨╝╨░╤Б╨║╨░ 0xff..0x80
INC E
LD D,E
BIT 3,(IX+RSCR)
CALL NZ,LINE ;╤З╤С╤А╨╜╨░╤П ╨╗╨╕╨╜╨╕╤П ╨▓╨╜╨╕╨╖╤Г
POP HL
LD E,D
BIT 2,(IX+RSCR)
CALL NZ,LINE ;╤З╤С╤А╨╜╨░╤П ╨╗╨╕╨╜╨╕╤П ╨▓╨▓╨╡╤А╤Е╤Г
POP IX
RET
;-----
LINE:
DEC E
LD A,B
JR NZ,WD2
AND C
LEND
CPL ;NOP
AND (HL)
LD (HL),A
RET
;-----
WD2:
CALL LEND
WD3:
INC L
DEC E
JR Z,WD4
CCPL LD (HL),0
JR WD3
;-----
WD4:
LD A,C
JR LEND
;----- ╨░╨┤╤А╨╡╤Б╨░ ╨┐╨░╤В╤З╨╡╨╣
DSTL EQU WD1+1-TCORR
DSTR EQU SETR+1-TCORR
DCORR EQU CORR+2-TCORR
DCORR1 EQU CORR1+2-TCORR
;**;**