621 lines
9.7 KiB
Plaintext
621 lines
9.7 KiB
Plaintext
|
||
; LAST UPDATE: 20.02.2025 savelij
|
||
|
||
;[]----------------------------------------------------------[]
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ ⥪á⮢ëå áâப £à ä¨ç¥áª¨© íªà 640x256
|
||
; á ®¡à¥§ ¨¥¬ «¥¢®£® ªà ï ⥪áâ
|
||
; <20> ¢å®¤:
|
||
; IX - Š®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
|
||
; HL - ¤à¥á ⥪á⮢®© áâப¨
|
||
; DE - ¯®§¨æ¨ï ¢ë¢®¤ ¯® X
|
||
; BC - ¯®§¨æ¨ï ¢ë¢®¤ ¯® Y
|
||
; A - 梥⠯¥ç ⨠(7-4¡¨â PAPER, 3-0¡¨â INK)
|
||
; (ª®¥æ áâப¨ - 0)
|
||
PrnRangPathL PUSH DE
|
||
PUSH BC
|
||
PUSH AF
|
||
DI
|
||
GETPORT WINSP.CPU0
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFONT)
|
||
SETPORT WINSP.CPU0,,0
|
||
LD BC,0x0000
|
||
LD D,HIGH (FONT_RAW)-0xC0
|
||
PUSH HL
|
||
LD A,(HL)
|
||
PrRangL INC HL
|
||
LD E,A
|
||
LD A,(DE)
|
||
ADD A,A
|
||
ADD A,C
|
||
LD C,A
|
||
LD A,B
|
||
ADC A,0x00
|
||
LD B,A
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,PrRangL
|
||
PUSH IX
|
||
POP HL
|
||
SBC HL,BC
|
||
LD C,L
|
||
LD B,H
|
||
POP HL
|
||
JR NC,PrRngLE
|
||
LD A,C
|
||
SUB 0x1A
|
||
LD IXL,A
|
||
LD A,B
|
||
SBC A,0x00
|
||
LD IXH,A
|
||
LD A,(HL)
|
||
EX AF,AF'
|
||
INC HL
|
||
INC HL
|
||
PrRngL0 LD BC,0x0000
|
||
INC HL
|
||
LD A,(HL)
|
||
PrRngL1 INC HL
|
||
LD E,A
|
||
LD A,(DE)
|
||
ADD A,A
|
||
ADD A,C
|
||
LD C,A
|
||
LD A,B
|
||
ADC A,0x00
|
||
LD B,A
|
||
LD A,(HL)
|
||
CP 0x5C
|
||
JR NZ,PrRngL1
|
||
ADD IX,BC
|
||
JR NC,PrRngL0
|
||
DEC HL
|
||
LD (HL),'.'
|
||
DEC HL
|
||
LD (HL),'.'
|
||
DEC HL
|
||
LD (HL),'\\'
|
||
DEC HL
|
||
LD (HL),':'
|
||
DEC HL
|
||
EX AF,AF'
|
||
LD (HL),A
|
||
PrRngLE POP AF
|
||
SETPORT WINSP.CPU0,,0
|
||
EI
|
||
POP AF
|
||
POP BC
|
||
POP DE
|
||
JP PrnTxtLnIFF
|
||
|
||
;[]----------------------------------------------------------[]
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ ⥪á⮢ëå áâப £à ä¨ç¥áª¨© íªà 640x256
|
||
; á ®¡à¥§ ¨¥¬ «¥¢®£® ªà ï ⥪áâ
|
||
; <20> ¢å®¤:
|
||
; IX - Š®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
|
||
; HL - ¤à¥á ⥪á⮢®© áâப¨
|
||
; DE - ¯®§¨æ¨ï ¢ë¢®¤ ¯® X
|
||
; BC - ¯®§¨æ¨ï ¢ë¢®¤ ¯® Y
|
||
; A - 梥⠯¥ç ⨠(7-4¡¨â PAPER, 3-0¡¨â INK)
|
||
; (ª®¥æ áâப¨ - 0)
|
||
PrnRangPathR PUSH AF
|
||
PUSH BC
|
||
PUSH DE
|
||
DI
|
||
GETPORT WINSP.CPU0
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFONT)
|
||
SETPORT WINSP.CPU0,,0
|
||
LD BC,0x0000
|
||
LD D,HIGH (FONT_RAW)-0xC0
|
||
PUSH HL
|
||
LD A,(HL)
|
||
PrRangR INC HL
|
||
LD E,A
|
||
LD A,(DE)
|
||
ADD A,A
|
||
ADD A,C
|
||
LD C,A
|
||
LD A,B
|
||
ADC A,0x00
|
||
LD B,A
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,PrRangR
|
||
PUSH IX
|
||
POP HL
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
POP HL
|
||
JR NC,PrRngRE
|
||
LD A,E
|
||
SUB 0x1A
|
||
LD IXL,A
|
||
LD A,D
|
||
SBC A,0x00
|
||
LD IXH,A
|
||
LD D,HIGH (FONT_RAW)-0xC0
|
||
LD A,(HL)
|
||
EX AF,AF'
|
||
INC HL
|
||
INC HL
|
||
PrRngR0 LD BC,0x0000
|
||
INC HL
|
||
LD A,(HL)
|
||
PrRngR1 INC HL
|
||
LD E,A
|
||
LD A,(DE)
|
||
ADD A,A
|
||
ADD A,C
|
||
LD C,A
|
||
LD A,B
|
||
ADC A,0x00
|
||
LD B,A
|
||
LD A,(HL)
|
||
CP 0x5C
|
||
JR NZ,PrRngR1
|
||
ADD IX,BC
|
||
JR NC,PrRngR0
|
||
DEC HL
|
||
LD (HL),'.'
|
||
DEC HL
|
||
LD (HL),'.'
|
||
DEC HL
|
||
LD (HL),'\\'
|
||
DEC HL
|
||
LD (HL),':'
|
||
DEC HL
|
||
EX AF,AF'
|
||
LD (HL),A
|
||
LD BC,0x0000
|
||
PUSH HL
|
||
LD A,(HL)
|
||
PrRngR2 INC HL
|
||
LD E,A
|
||
LD A,(DE)
|
||
ADD A,A
|
||
ADD A,C
|
||
LD C,A
|
||
LD A,B
|
||
ADC A,0x00
|
||
LD B,A
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,PrRngR2
|
||
POP HL
|
||
PrRngRE POP AF
|
||
SETPORT WINSP.CPU0,,0
|
||
EI
|
||
POP DE
|
||
EX DE,HL
|
||
OR A
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
POP BC
|
||
POP AF
|
||
JP PrnTxtLnIFF
|
||
|
||
;[]----------------------------------------------------------[]
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ ⥪á⮢ëå áâப £à ä¨ç¥áª¨© íªà 640x256
|
||
; á ®¡à¥§ ¨¥¬ «¥¢®£® ªà ï ⥪áâ
|
||
; <20> ¢å®¤:
|
||
; IX - Š®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
|
||
; HL - ¤à¥á ⥪á⮢®© áâப¨
|
||
; DE - æ¥âà ¢ë¢®¤ ¯® X
|
||
; BC - ¯®§¨æ¨ï ¢ë¢®¤ ¯® Y
|
||
; A - 梥⠯¥ç ⨠(7-4¡¨â PAPER, 3-0¡¨â INK)
|
||
; (ª®¥æ áâப¨ - 0)
|
||
PrnRangPathC PUSH BC
|
||
PUSH AF
|
||
PUSH DE
|
||
DI
|
||
GETPORT WINSP.CPU0
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFONT)
|
||
SETPORT WINSP.CPU0,,0
|
||
PrnRangC LD BC,0x0000
|
||
LD D,HIGH (FONT_RAW)-0xC0
|
||
PUSH HL
|
||
LD A,(HL)
|
||
PrRangC INC HL
|
||
LD E,A
|
||
LD A,(DE)
|
||
ADD A,A
|
||
ADD A,C
|
||
LD C,A
|
||
LD A,B
|
||
ADC A,0x00
|
||
LD B,A
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,PrRangC
|
||
PUSH IX
|
||
POP HL
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
POP HL
|
||
JR NC,PrRngCE
|
||
PUSH IX
|
||
LD A,E
|
||
SUB 0x1A
|
||
LD IXL,A
|
||
LD A,D
|
||
SBC A,0x00
|
||
LD IXH,A
|
||
LD A,(HL)
|
||
EX AF,AF'
|
||
INC HL
|
||
INC HL
|
||
LD D,HIGH (FONT_RAW)-0xC0
|
||
PrRngC0 LD BC,0x0000
|
||
INC HL
|
||
LD A,(HL)
|
||
PrRngC1 INC HL
|
||
LD E,A
|
||
LD A,(DE)
|
||
ADD A,A
|
||
ADD A,C
|
||
LD C,A
|
||
LD A,B
|
||
ADC A,0x00
|
||
LD B,A
|
||
LD A,(HL)
|
||
CP 0x5C
|
||
JR NZ,PrRngC1
|
||
ADD IX,BC
|
||
JR NC,PrRngC0
|
||
DEC HL
|
||
LD (HL),'.'
|
||
DEC HL
|
||
LD (HL),'.'
|
||
DEC HL
|
||
LD (HL),'\\'
|
||
DEC HL
|
||
LD (HL),':'
|
||
DEC HL
|
||
EX AF,AF'
|
||
LD (HL),A
|
||
POP IX
|
||
JR PrnRangC
|
||
PrRngCE POP AF
|
||
SETPORT WINSP.CPU0,,0
|
||
EI
|
||
POP DE
|
||
EX DE,HL
|
||
SRL B
|
||
RR C
|
||
OR A
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
POP AF
|
||
POP BC
|
||
JP PrnTxtLnIFF
|
||
|
||
;[]----------------------------------------------------------[]
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ ⥪á⮢ëå áâப £à ä¨ç¥áª¨© íªà 640x256;
|
||
; ¢ ०¨¬¥ IFF èà¨äâ
|
||
; <20> ¢å®¤:
|
||
; HL - ¤à¥á ⥪á⮢®© áâப¨
|
||
; DE - ¯®§¨æ¨ï ¢ë¢®¤ ¯® X
|
||
; BC - ¯®§¨æ¨ï ¢ë¢®¤ ¯® Y
|
||
; A - 梥⠯¥ç ⨠(7-4¡¨â PAPER, 3-0¡¨â INK)
|
||
; (ª®¥æ áâப¨ - 0)
|
||
PrnTxtLnIFF PUSH IY
|
||
LD IYL,C ; Y ª®®à¤¨ â
|
||
LD B,A
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
PUSH AF
|
||
GETPORT WINSP.CPU1
|
||
LD IYH,A
|
||
DI
|
||
EXX
|
||
SPMOUSE MOUSEF.REFRESH
|
||
EXX
|
||
CALL InsPrintColor
|
||
PUSH DE ; X ª®®à¤¨ â
|
||
EXX
|
||
POP BC
|
||
SRL B
|
||
RR C
|
||
SET 6,B
|
||
LD HL,PrnPAPp ; PAPER ¡ãä¥à
|
||
LD DE,PrnINKp ; INK ¡ãä¥à
|
||
EXX
|
||
LD C,L ; €¤à¥á áâப¨
|
||
LD B,H
|
||
; ˆâ ª:
|
||
; BC - A¤à¥á áâப¨
|
||
; 'HL - ¡ãä¥à PAPER
|
||
; 'DE - ¡ãä¥à INK
|
||
; 'BC - X ª®®à¤¨ â ¯¥ç ⨠¢ ¢¨¤¥® އ“
|
||
; LY - Y ª®®à¤¨ â ¯¥ç â¨
|
||
GETPORT WINSP.CPU0
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFONT)
|
||
SETPORT WINSP.CPU0,,0
|
||
ACCEL ACCELCMD.SET_BUFFER
|
||
LD A,0x08
|
||
ACCEL ACCELCMD.OFF
|
||
LD A,(BC)
|
||
INC BC
|
||
OR A
|
||
JR Z,PrnIFFe
|
||
PrnIFFloop LD L,A
|
||
LD H,HIGH (FONT_RAW)-0xC0
|
||
PUSH BC
|
||
LD B,(HL) ; ¤«¨ ᨬ¢®«
|
||
INC H
|
||
LD E,(HL)
|
||
INC H
|
||
LD D,(HL)
|
||
LD HL,0x0008
|
||
EX DE,HL
|
||
SETPORT WINSP.CPU1,0x50
|
||
PrnIFFlp1
|
||
ACCEL ACCELCMD.COPY
|
||
LD A,(HL)
|
||
ACCEL ACCELCMD.OFF
|
||
EXX
|
||
LD A,IYL
|
||
SETPORT WINSP.Y_PORT,,0
|
||
ACCEL ACCELCMD.COPY
|
||
OR (HL)
|
||
EX DE,HL
|
||
XOR (HL)
|
||
ACCEL ACCELCMD.COPY_VERT
|
||
LD (BC),A
|
||
ACCEL ACCELCMD.OFF
|
||
EX DE,HL
|
||
INC BC
|
||
EXX
|
||
ADD HL,DE
|
||
DJNZ PrnIFFlp1
|
||
POP BC
|
||
LD A,IYH
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,(BC)
|
||
INC BC
|
||
OR A
|
||
JR NZ,PrnIFFloop
|
||
PrnIFFe LD L,C ; €¤à¥á áâப¨
|
||
LD H,B
|
||
POP AF
|
||
SETPORT WINSP.CPU0,,0
|
||
EI
|
||
POP AF
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ ⥪á⮢ëå áâப £à ä¨ç¥áª¨© íªà 640x256;
|
||
; <20> ¢å®¤:
|
||
; HL - ¤à¥á ⥪á⮢®© áâப¨
|
||
; DE - ¯®§¨æ¨ï ¢ë¢®¤ ¯® X
|
||
; BC - ¯®§¨æ¨ï ¢ë¢®¤ ¯® Y
|
||
; A - 梥⠯¥ç ⨠(7-4¡¨â PAPER, 3-0¡¨â INK)
|
||
; (ª®¥æ áâப¨ - 0)
|
||
PrnTxtLnNorm PUSH IY
|
||
LD IYL,C ; Y ª®®à¤¨ â
|
||
LD B,A
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
PUSH AF
|
||
GETPORT WINSP.CPU1
|
||
LD IYH,A
|
||
DI
|
||
EXX
|
||
SPMOUSE MOUSEF.REFRESH
|
||
EXX
|
||
CALL InsPrintColor
|
||
PUSH DE ; X ª®®à¤¨ â
|
||
EXX
|
||
POP BC
|
||
SRL B
|
||
RR C
|
||
SET 6,B
|
||
LD HL,PrnPAPp ; PAPER ¡ãä¥à
|
||
LD DE,PrnINKp ; INK ¡ãä¥à
|
||
EXX
|
||
LD C,L ; €¤à¥á áâப¨
|
||
LD B,H
|
||
; ˆâ ª:
|
||
; BC - A¤à¥á áâப¨
|
||
; 'HL - ¡ãä¥à PAPER
|
||
; 'DE - ¡ãä¥à INK
|
||
; 'BC - X ª®®à¤¨ â ¯¥ç ⨠¢ ¢¨¤¥® އ“
|
||
; LY - Y ª®®à¤¨ â ¯¥ç â¨
|
||
GETPORT WINSP.CPU0
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFONT)
|
||
SETPORT WINSP.CPU0,,0
|
||
ACCEL ACCELCMD.SET_BUFFER
|
||
LD A,0x08
|
||
ACCEL ACCELCMD.OFF
|
||
LD A,(BC)
|
||
INC BC
|
||
OR A
|
||
JR Z,PrnNORe
|
||
PrnNORloop LD L,A
|
||
LD H,HIGH (IFFFONT_RAW)-0xC0
|
||
PUSH BC
|
||
LD E,(HL)
|
||
INC H
|
||
LD A,(HL)
|
||
ADD A,HIGH (IFFFONT_RAW)-0xC0
|
||
LD D,A
|
||
LD HL,0x0008
|
||
EX DE,HL
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD B,0x04
|
||
PrnNORlp1
|
||
ACCEL ACCELCMD.COPY
|
||
LD A,(HL)
|
||
ACCEL ACCELCMD.OFF
|
||
EXX
|
||
LD A,IYL
|
||
SETPORT WINSP.Y_PORT,,0
|
||
ACCEL ACCELCMD.COPY
|
||
OR (HL)
|
||
EX DE,HL
|
||
XOR (HL)
|
||
ACCEL ACCELCMD.COPY_VERT
|
||
LD (BC),A
|
||
ACCEL ACCELCMD.OFF
|
||
EX DE,HL
|
||
INC BC
|
||
EXX
|
||
ADD HL,DE
|
||
DJNZ PrnNORlp1
|
||
POP BC
|
||
LD A,IYH
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,(BC)
|
||
INC BC
|
||
OR A
|
||
JR NZ,PrnNORloop
|
||
PrnNORe LD L,C ; €¤à¥á áâப¨
|
||
LD H,B
|
||
POP AF
|
||
SETPORT WINSP.CPU0,,0
|
||
EI
|
||
POP AF
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ ⥪á⮢ëå áâப £à ä¨ç¥áª¨© íªà 640x256;
|
||
; <20> ¢å®¤:
|
||
; HL - ¤à¥á ⥪á⮢®© áâப¨
|
||
; DE - ¯®§¨æ¨ï ¢ë¢®¤ ¯® X
|
||
; C - ¯®§¨æ¨ï ¢ë¢®¤ ¯® Y
|
||
; B - ª®«-¢® ¯¥ç â ¥¬ëå ᨬ¢®«®¢
|
||
; A - 梥⠯¥ç ⨠(7-4¡¨â PAPER, 3-0¡¨â INK)
|
||
; (ª®¥æ áâப¨ - 0)
|
||
PrnTxtLnNormC PUSH IY
|
||
LD IYL,C ; Y ª®®à¤¨ â
|
||
LD IYH,B ; ª®«-¢® ᨬ¢
|
||
LD B,A
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
PUSH AF
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
SETPORT WINSP.CPU1,0x50
|
||
DI
|
||
EXX
|
||
SPMOUSE MOUSEF.REFRESH
|
||
EXX
|
||
CALL InsPrintColor
|
||
PUSH DE ; X ª®®à¤¨ â
|
||
EXX
|
||
POP BC
|
||
SRL B
|
||
RR C
|
||
SET 6,B
|
||
LD HL,PrnPAPp ; PAPER ¡ãä¥à
|
||
LD DE,PrnINKp ; INK ¡ãä¥à
|
||
EXX
|
||
LD C,L ; €¤à¥á áâப¨
|
||
LD B,H
|
||
; ˆâ ª:
|
||
; BC - A¤à¥á áâப¨
|
||
; 'HL - ¡ãä¥à PAPER
|
||
; 'DE - ¡ãä¥à INK
|
||
; 'BC - X ª®®à¤¨ â ¯¥ç ⨠¢ ¢¨¤¥® އ“
|
||
; LY - Y ª®®à¤¨ â ¯¥ç â¨
|
||
; IN A,(PAGE0)
|
||
GETPORT WINSP.CPU0
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFONT)
|
||
SETPORT WINSP.CPU0,,0
|
||
ACCEL ACCELCMD.SET_BUFFER
|
||
LD A,0x08
|
||
ACCEL ACCELCMD.OFF
|
||
PrnNORloopC LD A,(BC)
|
||
INC BC
|
||
LD L,A
|
||
LD H,HIGH (IFFFONT_RAW)-0xC0
|
||
PUSH BC
|
||
LD E,(HL)
|
||
INC H
|
||
LD A,(HL)
|
||
ADD A,HIGH (IFFFONT_RAW)-0xC0
|
||
LD D,A
|
||
LD HL,0x0008
|
||
EX DE,HL
|
||
LD B,0x04
|
||
PrnNORlp1c
|
||
ACCEL ACCELCMD.COPY
|
||
LD A,(HL)
|
||
ACCEL ACCELCMD.OFF
|
||
EXX
|
||
LD A,IYL
|
||
SETPORT WINSP.Y_PORT,,0
|
||
ACCEL ACCELCMD.COPY
|
||
OR (HL)
|
||
EX DE,HL
|
||
XOR (HL)
|
||
ACCEL ACCELCMD.COPY_VERT
|
||
LD (BC),A
|
||
ACCEL ACCELCMD.OFF
|
||
EX DE,HL
|
||
INC BC
|
||
EXX
|
||
ADD HL,DE
|
||
DJNZ PrnNORlp1c
|
||
POP BC
|
||
DEC IYH
|
||
JR NZ,PrnNORloopC
|
||
POP AF
|
||
SETPORT WINSP.CPU0,,0
|
||
EI
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
POP AF
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
RET
|
||
|
||
InsPrintColor LD A,B
|
||
CP 0x00
|
||
.PrvCOLp EQU $-1
|
||
RET Z
|
||
LD (.PrvCOLp),A
|
||
AND 0x0F ; INK
|
||
LD C,A
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
OR C
|
||
EXX
|
||
LD HL,PrnINKp ; INK ¡ãä¥à
|
||
CPL
|
||
REPT 7
|
||
LD (HL),A
|
||
INC HL
|
||
ENDM
|
||
LD (HL),A
|
||
EXX
|
||
LD A,B
|
||
AND 0xF0 ; PAPER
|
||
LD B,A
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
OR B
|
||
EXX
|
||
LD DE,PrnPAPp ; PAPER ¡ãä¥à
|
||
XOR (HL) ; XOR á INK
|
||
REPT 7
|
||
LD (DE),A
|
||
INC DE
|
||
ENDM
|
||
LD (DE),A
|
||
EXX
|
||
RET
|
||
|
||
PrnINKp DB 8 DUP 0
|
||
PrnPAPp DB 8 DUP 0
|