;z80 ;zx-spectrum ;assembler ; Viewer vers4.0 by Dr.Bars/Flash Inc. (22Nov.1999) SPRIPAG=#16 ; PAGE WITH SPRITES (6) COLORAT=#04 ; GREEN FONT32=#5B FONT42=#63 FONT64=#6B ICON_UP=#6B00 ICON_DN=#6C00 ICON_PU=#6D00 ICON_PD=#6E00 ICON_SND=#6F00 ICON_ATR=#7000 ICON_EXIT=#7100 SPD_TAB=#7200 SPD_TAB2=#7600 BUF=#7700 ; LEN 2048 INT_TBL=#8000 MAP=#77 ATTR_MAP=#73 MUSIC=#AC00 ORG BUF BUFFER DS #380 STR_BFR DS #12 INV_TABL=BUFFER+#300 TABL DB #0F,#0F MOV_BF5 DW #0000,BUFFER,BUFFER+32,BUFFER+64,BUFFER+256 MOV_BF7 DW #0000,BUFFER+448,BUFFER+480,BUFFER+512,BUFFER+704 LINE5 DB #1F,#08,#1D,SPRIPAG+8 LINE7 DB #17,#00,#17,SPRIPAG X_STR DB 0 Y_STR DB 0 SC_BUF DW 0 PORT DW 0 SPR_ADR DW 0 SCR_ADR DW 0 ADR_MAP DW 0 OLD_ADR DW 0 OLD_LEN DB 1 OLD_DAT DB 0 STR_SPD DB 1,6,16 DATA DB 0 M_CONF DB 0 ; 0 -OFF FF - ON MUS_CFG DB #FF ; 0 -OFF FF - ON COL_CFG DB #FF ; 0 -OFF FF - ON RAM_CH DB 0 SCP_ADR DW 0 WORK_TB DW 0 STROYTB DB #11,0 ; #13,#14,#16,0 ; using pages, 0 - end ! TAB_SCN DS 40 ICO_SPR INCBIN "line?spr SPN_TBL DW #0000 ; SPRITE ADRESS, SPRITE No.1 DW #0101 ; HGT,LEN ; 447 BYTES ORG INT_TBL DS #101,#81 START DI LD SP,#7FFF CALL PAGE_10 LD A,#80 LD I,A IM 2 JP START_ COR_HL INC H LD A,H AND 7 RET NZ LD A,L ADD A,32 LD L,A RET C LD A,H SUB #8 LD H,A RET COR_DE INC D LD A,D AND 7 RET NZ LD A,E ADD A,32 LD E,A RET C LD A,D SUB #8 LD D,A RET COR2_HL LD A,L ADD A,32 LD L,A RET NC LD A,H ADD A,8 LD H,A RET COR2_DE LD A,E ADD A,32 LD E,A RET NC LD A,D ADD A,8 LD D,A RET PAGE_10 LD A,#10 PAGE PUSH BC LD BC,#7FFD OUT (C),A POP BC RET AY_OFF LD HL,#D LD C,#FD LD DE,#FFBF AY1_OFF LD B,D OUT (C),L LD B,E OUT (C),H DEC L JR NZ,AY1_OFF RET PRER DI PUSH IX PUSH IY PUSH AF PUSH HL PUSH DE PUSH BC EXX EX AF,AF' PUSH AF PUSH HL PUSH DE PUSH BC CALL MUS POP BC POP DE POP HL POP AF EX AF,AF' EXX POP BC POP DE POP HL POP AF POP IY POP IX EI RET JP PRER MUS LD A,(MUS_CFG) OR A JP NZ,MUS3 MUS2 LD A,#FF OR A RET Z SUB A LD (MUS2+1),A JP AY_OFF MUS3 LD A,#FF LD (MUS2+1),A JP MUSIC+6 UMN PUSH DE LD HL,0 LD E,B LD D,H LD B,8 UMN1 SRL C JP NC,UMN2 ADD HL,DE UMN2 SLA E RL D DJNZ UMN1 POP DE RET SCRCOPY LD HL,#4000 LD DE,#C000 LD BC,#1B00 LDIR RET START_ LD A,#FE IN A,(#FE) RRA JR NC,ST_CONT LD BC,#FADF IN A,(C) RRA JR NC,ST_CONT RRA JR NC,ST_CONT LD A,#FF LD (M_CONF),A ST_CONT CALL MUSIC EI CALL S_ADSTR LD HL,#DB00 LD BC,STROYTB NEW2 LD DE,#C000 ADR_PUT LD A,(BC) CALL PAGE LD A,(DE) CP #FE JR NZ,AD_NFND INC DE ADR_INC LD (TAB_SCN),HL EXX LD HL,ADR_INC+1 INC (HL) INC (HL) EXX AD_NFND LD A,#17 CALL PAGE LD A,(BC) LD (HL),A INC HL LD (HL),E INC HL LD (HL),D INC HL LOOP_A LD A,(BC) CALL PAGE LD A,(DE) CP #FF JP NZ,JUMP0 DEC HL DEC HL DEC HL INC BC LD A,(BC) OR A JP NZ,NEW2 LD A,#17 CALL PAGE LD A,L LD (UDAT1+1),A LD (UDAT3+1),A LD A,H LD (UDAT2+1),A LD (UDAT4+1),A LD (LIST_DL+1),HL LD DE,66 OR A SBC HL,DE LD (LAST_LI+1),HL JP NEXTI JUMP0 LD A,(DE) CP #D JP NZ,JUMP1 INC DE JP ADR_PUT JUMP1 INC DE JP LOOP_A NEXTI CALL SCRCOPY LD A,#18 CALL PAGE CALL TIT_SCR LD A,#17 CALL PAGE CALL SCRCOPY F_WAIT LD A,#FF OR A JR Z,F_WAIT2 F_WAIT1 EI HALT CALL F_KEYS JP C,F_WAIT1 SUB A LD (F_WAIT+1),A F_WAIT2 LD A,#B7 LD (CHECK),A LD A,MAP LD (MAP_SET+1),A RESTART LD HL,TXT01 CALL WND_PRT ST_LOP2 EI HALT CALL STRELKA CALL F_KEYS JP NC,FUN_CH1 CALL C_KEYS JP NC,SET_CH4 JP ST_LOP2 FUN_CH1 EI HALT LD A,(DATA) OR A JP Z,SET_CH0 INC A JP Z,SET_CH3 CALL R_FLASH LD HL,TAB_SCN SCNR_BA LD A,(DATA) ADD A,A DEC A DEC A LD C,A ADD HL,BC LD A,(HL) INC HL LD H,(HL) LD L,A LD (WORK_TB),HL LD IX,LINE7 LD DE,#C040 CALL LIST LD A,#17 CALL PAGE LD HL,ICO_SPR LD DE,#C000 LD B,2 ICO_SP1 PUSH BC PUSH DE LD B,8 ICO_SP2 PUSH BC PUSH DE LD BC,32 LDIR POP DE INC D POP BC DJNZ ICO_SP2 POP DE POP BC EX AF,AF' CALL COR2_DE EX AF,AF' DJNZ ICO_SP1 LD DE,#D800 LD BC,64 LDIR EI HALT LD A,#1F CALL PAGE LD HL,#C000 LD D,#40 LD E,L LD B,#1B LD C,L LDIR LD A,#C9 LD (CHECK),A LD A,ATTR_MAP LD (MAP_SET+1),A CALL PUT_SPR LD HL,(X_STR) LD (MENUCRD+1),HL LD HL,#6080 LD (X_STR),HL SUB A LD (RES_ICO+1),A LD (SPACE2+1),A DEC A LD (SET_ICO+1),A LD (NXTMAI1+1),A TXT_MOV EI HALT LD A,(DATA) BIT 7,A PUSH AF CALL NZ,SET_ICO POP AF CALL Z,RES_ICO TXT_MV1 CALL F_KEYS JP NC,SPACE CALL C_KEYS JP NC,RESET NXTMAI1 LD A,#FF OR A JP NZ,NXTMAI3 LD A,#FF LD (NXTMAI1+1),A SUB A LD (SPACE2+1),A CALL RES_BUF CALL SKN_MAP BIT 7,A JR Z,NXTMAI3 CUR_ICO LD B,0 LD HL,ICON_UP LD DE,#C000 DEC B JP Z,ICPR02 INC H INC E INC E DJNZ $-3 ICPR02 LD A,#FF CALL ICO_PRN CALL PUT_SPR NXTMAI3 CALL STRELKA JP TXT_MOV NXTMAI2 CALL SKN_MAP BIT 7,A JP Z,NXTMAI3 NXTMAI4 CALL PUT_SPR JP TXT_MV1 SPACE CALL RES_BUF CALL SKN_MAP BIT 7,A JP Z,NOICPR SPACE2 LD A,0 OR A JP NZ,NOICPR SUB A LD (NXTMAI1+1),A DEC A LD (SPACE2+1),A LD A,(DATA) RES 7,A LD B,A LD HL,ICON_UP LD DE,#C000 LD C,B DEC B JP Z,ICPR01 INC H INC E INC E DJNZ $-3 ICPR01 LD A,C LD (CUR_ICO+1),A SUB A CALL ICO_PRN NOICPR LD A,(DATA) RES 7,A AND A JP Z,NXTMAI3 DEC A JP Z,DOWNL DEC A JP Z,UPL DEC A JP Z,LIST_UL DEC A JP Z,LIST_DL DEC A JP Z,MUS_CON DEC A JP Z,COL_CON RESET CALL RES_BUF CALL SKN_MAP BIT 7,A JR Z,RESET2 SUB A LD HL,ICON_EXIT LD DE,#C00C PUSH HL PUSH DE CALL ICO_PRN POP DE POP HL LD B,8 EI HALT DJNZ $-2 LD A,#FF CALL ICO_PRN RESET2 CALL RES_BUF LD A,(RAM_CH) OR A JP Z,RESET1 LD A,#17 CALL PAGE CALL SCRCOPY RESET1 LD A,#18 CALL PAGE CALL TIT_SCR MENUCRD LD HL,0 LD (X_STR),HL JP F_WAIT2 MUS_CON LD A,(MUS_CFG) CPL LD (MUS_CFG),A MUS_CO1 EI HALT CALL F_KEYS JP NC,MUS_CO1 LD HL,NXTMAI4 LD (REBACK1+1),HL LD (REBACK2+1),HL JP (HL) COL_CON LD A,(COL_CFG) CPL LD (COL_CFG),A OR A JP NZ,COLR LD (C_DATA2),A LD A,7 LD (SET_ATR),A LD (C_DATA3+1),A LD A,#3E LD (C_DATA3),A LD L,A LD H,A JP COLR1 COLR LD A,#F5 LD (C_DATA2),A SUB A LD HL,C_DATA3 LD (HL),#F1 INC HL LD (HL),A LD HL,SET_ATR COLR1 LD (C_DATA1+1),HL LD (COLDAT1+1),HL LD HL,MUS_CO1 LD (REBACK1+1),HL LD (REBACK2+1),HL LD HL,(WORK_TB) JP REFRESH SET_CH0 CALL W_RESET CALL PAGE_10 SET_CH1 EI HALT CALL F_KEYS JR NC,SET_CH1 SET_CH2 EI HALT CALL F_KEYS JR C,SET_CH2 JP RESTART SET_CH4 CALL W_RESET LD HL,$-3 LD (BACK_AD+1),HL LD HL,TXT02 CALL WND_PRT ST_LOP4 EI HALT CALL STRELKA CALL F_KEYS JP C,ST_LOP4 LD A,(DATA) INC A JP Z,SET_CH3 SUB 2 JP Z,E_BASIC SUB 2 JP NZ,ST_LOP4 CALL R_FLASH CALL W_RESET LD HL,RESTART LD (BACK_AD+1),HL JP (HL) E_BASIC CALL R_FLASH CALL AY_OFF SUB A CALL PAGE RST 0 WINDOW LD E,(HL) INC HL LD D,(HL) INC HL LD C,(HL) INC HL LD B,(HL) INC HL LD A,(HL) INC HL PUSH HL EX AF,AF' LD A,E RRCA RRCA RRCA AND #E0 LD L,A LD A,E AND #18 OR #40 LD H,A LD A,L OR D LD L,A PUSH HL INC C LD E,4 LD A,B ADD A,E LD B,A W_LOOP0 PUSH BC PUSH HL DEC E JR NZ,W_LOOP0 PUSH BC INC C LD DE,WND_BUFFER LD A,L LD (DE),A INC DE LD A,H LD (DE),A INC DE LD A,C LD (DE),A INC DE LD A,B LD (DE),A INC DE PUSH BC PUSH HL W_WND1 PUSH BC PUSH HL LD B,8 W_WND2 PUSH BC PUSH HL LD B,0 LDIR POP HL INC H POP BC DJNZ W_WND2 POP HL CALL COR2_HL POP BC DJNZ W_WND1 POP HL POP BC LD A,H RRCA RRCA RRCA AND 3 OR #58 LD H,A W_WND3 PUSH BC PUSH HL LD B,0 LDIR POP HL LD BC,32 ADD HL,BC POP BC DJNZ W_WND3 ; POP BC POP HL LD A,H RRCA RRCA RRCA AND 3 OR #58 LD H,A EX AF,AF' W_LOOP1 PUSH BC PUSH HL LD D,H LD E,L INC E LD B,0 LD (HL),A LDIR POP HL LD BC,32 ADD HL,BC POP BC DJNZ W_LOOP1 POP BC POP HL LD D,H LD E,L INC E LD B,0 LD (HL),#00 LDIR POP BC LD A,B EX AF,AF' DEC C POP HL INC H LD B,#10 W_LOOP2 PUSH BC PUSH HL LD (HL),#7F INC HL LD D,H LD E,L INC E LD B,0 LD (HL),#FF LDIR LD (HL),#FE POP HL CALL COR_HL POP BC DJNZ W_LOOP2 EX AF,AF' SUB 2 ADD A,A ADD A,A ADD A,A SUB 3 LD B,A W_LOOP3 PUSH BC PUSH HL LD (HL),#40 INC HL LD D,H LD E,L INC E LD B,0 LD (HL),B LDIR LD (HL),#02 POP HL CALL COR_HL POP BC DJNZ W_LOOP3 POP BC LD A,C DEC C PUSH HL LD (HL),#7F INC HL LD D,H LD E,L INC E LD B,0 LD (HL),#FF LDIR LD (HL),#FE POP HL INC H LD D,H LD E,L INC E LD C,A LD (HL),B LDIR LD H,MAP LD L,B LD D,H LD E,L INC E LD BC,767 LD (HL),L LDIR LD HL,INV_TABL LD D,H LD E,L INC E LD (HL),B LD BC,89 LDIR SUB A LD H,A LD (OLD_ADR),HL LD (OLD_DAT),A INC A LD (OLD_LEN),A POP HL LD A,H RRCA RRCA RRCA AND 3 ADD A,MAP LD H,A POP BC W_LOOP4 PUSH BC PUSH HL LD D,H LD E,L INC E LD B,0 LD (HL),#FF LDIR POP HL LD BC,32 ADD HL,BC POP BC DJNZ W_LOOP4 POP DE POP IX INC E PUSH DE INC D W_LOOP8 LD A,(IX+0) OR A JR Z,W_LOOP6 PUSH DE LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD BC,W_FONT-16 ADD HL,BC LD B,#F W_LOOP7 LD A,(HL) LD (DE),A INC HL CALL COR_DE DJNZ W_LOOP7 POP DE INC IX INC DE JR W_LOOP8 W_LOOP6 POP HL INC IX LD B,3 CALL COR2_HL DJNZ $-3 PUSH HL POP IY LD C,#FF EXX LD HL,INV_TABL-3 EXX W_LOOP9 LD A,(IX+0) OR A JR NZ,W_LOP14 DB #FD,#7D ADD A,32 DB #FD,#6F JR NC,W_LOP15 DB #FD,#7C ADD A,8 DB #FD,#67 W_LOP15 PUSH IY POP HL INC IX LD A,(IX+0) CP #FF RET Z ; EXIT IS HERE! W_LOP14 OR A JR Z,W_LOOP9 CP 32 JR NC,W_LOP11 EXX INC HL INC HL INC HL PUSH IX PUSH HL POP IX EXX CP 31 JR NZ,W_LOP16 LD C,#FF JR W_LOP18 W_LOP16 LD (IX+1),L LD (IX+2),H LD C,A W_LOP18 POP IX INC IX LD A,(IX+0) W_LOP11 EX AF,AF' LD A,C INC A JR Z,W_LOP17 EXX INC (HL) EXX W_LOP17 EX AF,AF' LD E,A LD D,FONT32 ; FONT LD B,8 PUSH HL PUSH HL W_LOP13 LD A,(DE) LD (HL),A INC H INC D DJNZ W_LOP13 POP HL LD A,H RRCA RRCA RRCA AND 3 ADD A,MAP LD H,A LD (HL),C POP HL INC IX INC HL JR W_LOOP9 W_RESET CALL RES_BUF LD A,#18 CALL PAGE WND_RES LD HL,WND_BUFFER LD E,(HL) INC HL LD D,(HL) INC HL LD C,(HL) INC HL LD B,(HL) INC HL PUSH BC PUSH DE W_WND4 PUSH BC PUSH DE LD B,8 W_WND5 PUSH BC PUSH DE LD B,0 LDIR POP DE INC D POP BC DJNZ W_WND5 POP DE CALL COR2_DE POP BC DJNZ W_WND4 POP DE POP BC LD A,D RRCA RRCA RRCA AND 3 OR #58 LD D,A W_WND6 PUSH BC PUSH DE LD B,0 LDIR POP DE EX DE,HL LD BC,32 ADD HL,BC EX DE,HL POP BC DJNZ W_WND6 RET OUTPUT LD E,(IX+0) LD D,(IX+1) LD L,(IX+2) LD H,(IX+3) LD C,(IY+2) LD B,(IY+3) DUP 4 INC B EDUP INC C INC C LD A,B EX AF,AF' LD A,B DEC A LD B,#0 PUSH BC PUSH BC LDIR LD E,(IX+0) LD D,(IX+1) LD L,(IX+4) LD H,(IX+5) LD B,A CALL COR2_DE DJNZ $-3 LD B,#07 INC D DJNZ $-1 POP BC LDIR LD E,(IX+0) LD D,(IX+1) LD L,(IX+6) LD H,(IX+7) EX AF,AF' ADD A,A ADD A,A ADD A,A LD B,A EX AF,AF' LD A,(HL) LD (DE),A INC HL CALL COR_DE DJNZ $-6 LD L,(IX+0) LD H,(IX+1) LD E,(IX+8) LD D,(IX+9) POP BC DEC C ADD HL,BC EX DE,HL EX AF,AF' LD B,A LD A,(HL) LD (DE),A INC HL CALL COR_DE DJNZ $-6 RET INPUT LD C,(IY+0) LD B,(IY+1) LD A,C RRCA RRCA RRCA AND #E0 LD L,A LD A,C AND #18 OR #C0 LD H,A LD A,L OR B LD L,A LD C,(IY+2) LD B,(IY+3) DUP 4 INC B EDUP INC C INC C LD (IX+0),L LD (IX+1),H LD (PRN1+1),HL LD (PRN5+1),HL LD E,(IX+2) LD D,(IX+3) LD A,C DEC A LD (PRN2+1),A LD (PRN4+1),A LD A,B LD (PRN6+1),A LD (PRN8+1),A EX AF,AF' LD A,B DEC A LD B,#0 PUSH BC PUSH BC LDIR LD L,(IX+0) LD H,(IX+1) LD E,(IX+4) LD D,(IX+5) LD B,A CALL COR2_HL DJNZ $-3 LD B,#07 INC H DJNZ $-1 LD (PRN3+1),HL POP BC LDIR LD L,(IX+0) LD H,(IX+1) LD E,(IX+6) LD D,(IX+7) EX AF,AF' ADD A,A ADD A,A ADD A,A LD B,A EX AF,AF' LD A,(HL) LD (DE),A INC DE CALL COR_HL DJNZ $-6 LD L,(IX+0) LD H,(IX+1) LD E,(IX+8) LD D,(IX+9) POP BC DEC C ADD HL,BC LD (PRN7+1),HL EX AF,AF' LD B,A LD A,(HL) LD (DE),A INC DE CALL COR_HL DJNZ $-6 LD A,(TABL) PRN1 LD HL,0 LD D,H LD E,L INC E LD B,0 PRN2 LD C,0 LD (HL),A LDIR PRN7 LD DE,0 PRN8 LD B,0 LD A,(TABL+1) LD C,A VER2 PUSH DE LD A,(DE) BIT 6,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A INC D LD A,(DE) BIT 7,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A INC D LD A,(DE) BIT 0,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A INC D LD A,(DE) BIT 1,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A INC D LD A,(DE) BIT 2,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A INC D LD A,(DE) BIT 3,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A INC D LD A,(DE) BIT 4,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A INC D LD A,(DE) BIT 5,C JP NZ,$+8 SET 0,A JP $+5 RES 0,A LD (DE),A POP DE CALL COR2_DE DJNZ VER2 LD A,(TABL+1) PRN3 LD HL,0 LD D,H LD E,L INC E LD B,0 PRN4 LD C,0 LD (HL),A LDIR PRN5 LD DE,0 PRN6 LD B,0 LD A,(TABL) LD C,A VER1 PUSH DE LD A,(DE) BIT 6,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A INC D LD A,(DE) BIT 7,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A INC D LD A,(DE) BIT 0,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A INC D LD A,(DE) BIT 1,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A INC D LD A,(DE) BIT 2,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A INC D LD A,(DE) BIT 3,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A INC D LD A,(DE) BIT 4,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A INC D LD A,(DE) BIT 5,C JP Z,$+8 SET 7,A JP $+5 RES 7,A LD (DE),A POP DE CALL COR2_DE DJNZ VER1 LD HL,TABL LD A,(HL) RRCA LD (HL),A INC HL LD A,(HL) RLCA LD (HL),A RET SET_CH3 CALL W_RESET LD A,#17 CALL PAGE CALL SCRCOPY LD A,(IY+0) ADD A,A ADD A,A ADD A,A LD B,A LD A,(Y_STR) SUB B LD (Y_PRE+1),A LD A,(IY+1) ADD A,A ADD A,A ADD A,A LD B,A LD A,(X_STR) SUB B LD (X_PRE+1),A LD A,30 SUB (IY+2) ADD A,A ADD A,A ADD A,A LD H,A LD A,20 SUB (IY+3) ADD A,A ADD A,A ADD A,A LD L,A CALL SET_CRD LD A,(IY+1) ADD A,A ADD A,A ADD A,A LD (X_STR),A LD A,(IY+0) ADD A,A ADD A,A ADD A,A LD (Y_STR),A MOV_LL EI HALT CALL MOUSEDR CALL SKN_KEY LD A,(X_STR) RRA RRA RRA AND #1F LD (IY+1),A LD A,(Y_STR) RRA RRA RRA AND #1F LD (IY+0),A MOV_L0 LD A,#1D XOR #A LD (MOV_L0+1),A CALL PAGE CP #17 JR NZ,MOV_L1 LD IX,MOV_BF5 JR MOV_L2 MOV_L1 LD IX,MOV_BF7 MOV_L2 CALL OUTPUT CALL INPUT CALL F_KEYS JP NC,MOV_LL LD A,#17 CALL PAGE LD IX,MOV_BF5 CALL OUTPUT LD A,#1D CALL PAGE LD IX,MOV_BF7 CALL OUTPUT BACK_AD JP RESTART WND_PRT LD A,#18 CALL PAGE PUSH HL CALL WINDOW POP IY LD A,(X_STR) X_PRE ADD A,0 LD (X_STR),A LD A,(Y_STR) Y_PRE ADD A,0 LD (Y_STR),A SUB A LD (X_PRE+1),A LD (Y_PRE+1),A LD L,A LD H,A LD (MOV_BF5),HL LD (MOV_BF7),HL LD HL,#FEBE CALL SET_CRD LD A,#1D CALL PAGE CALL PUT_SPR CALL S_ADSTR CALL SKN_MAP CALL PUT_SPR EI HALT LD A,#17 CALL PAGE CALL SCRCOPY LD A,#15 CALL PAGE ST_LOP1 EI HALT CALL STRELKA CALL F_KEYS RET C JP ST_LOP1 STRELKA CALL MOUSEDR CALL SKN_KEY CALL RES_BUF CALL S_ADSTR CALL SKN_MAP CALL PUT_SPR JP SET_STR MOUSEDR LD A,(M_CONF) OR A RET Z LD HL,(X_STR) LD DE,(PORT) LD BC,#FBDF IN A,(C) LD (PORT),A SUB E JP Z,M_DRV12 JP P,M_DRV13 NEG CALL M_DRV14 NEG ADD A,L JP C,M_DRV15 SUB A M_DRV15 LD L,A JP M_DRV12 M_DRV13 CALL M_DRV14 ADD A,L JP C,M_DRV16 CRD_MX7 CP 0 ; MAX COORD X JP C,M_DRV17 M_DRV16 LD A,0 ; MAX COORD X M_DRV17 LD L,A M_DRV12 LD BC,#FFDF IN A,(C) LD (PORT+1),A SUB D JP Z,M_DRV18 NEG JP P,M_DRV19 NEG CALL M_DRV14 NEG ADD A,H JP C,M_DRV20 SUB A M_DRV20 LD H,A JP M_DRV18 M_DRV19 CALL M_DRV14 ADD A,H JP C,M_DRV21 CRD_MX8 CP 0 ; MAX COORD Y JP C,M_DRV22 M_DRV21 LD A,0 ; MAX COORD Y M_DRV22 LD H,A M_DRV18 LD (X_STR),HL RET M_DRV14 CP #20 ; M_DRV14>> #FE=ON, #C9=OFF JP C,M_DRV24 LD A,#A0 ; MAX SPEED FOR THIS TABL 1)#A0,2)#D3 RET M_DRV24 LD BC,SPD_TAB-1 ; (+32) ADD A,C LD C,A JP NC,M_DRV23 INC B M_DRV23 LD A,(BC) RET SKN_KEY LD HL,(X_STR) LD (SC_BUF),HL LD A,#FB IN A,(#FE) RRA CALL NC,UP LD A,#FD IN A,(#FE) RRA CALL NC,DOWN LD A,#DF IN A,(#FE) RRA PUSH AF CALL NC,RIGHT POP AF RRA CALL NC,LEFT LD A,#FD IN A,(#FE) RRA RRA CALL NC,UP LD A,#FE IN A,(#FE) RRA RRA RRA CALL NC,DOWN LD A,#FE IN A,(#FE) RRA JP C,NOCURS LD A,#EF IN A,(#FE) RRA RRA RRA PUSH AF CALL NC,RIGHT POP AF RRA PUSH AF CALL NC,UP POP AF RRA CALL NC,DOWN LD A,#F7 IN A,(#FE) BIT 4,A CALL Z,LEFT JP NOINT2 NOCURS LD A,#EF IN A,(#FE) RRA RRA PUSH AF CALL NC,UP POP AF RRA PUSH AF CALL NC,DOWN POP AF RRA PUSH AF CALL NC,RIGHT POP AF RRA CALL NC,LEFT NOINT2 LD HL,STR_SPD DEC (HL) JP NZ,K_JUMP LD A,(STR_SPD+1) LD (HL),A LD A,(UP+1) LD DE,(STR_SPD+2) CP E JP NC,K_JUMP INC A LD (UP+1),A LD (DOWN+1),A LD (LEFT+1),A LD (RIGHT+1),A K_JUMP LD HL,(SC_BUF) LD DE,(X_STR) LD A,H CP D RET NZ LD A,L CP E RET NZ LD A,1 LD (UP+1),A LD (DOWN+1),A LD (LEFT+1),A LD (RIGHT+1),A RET UP LD E,1 LD D,A LD A,(Y_STR) OR A JP Z,UP1 SUB E JP NC,UP1 SUB A UP1 LD (Y_STR),A LD A,D RET DOWN LD E,1 LD D,A LD A,(Y_STR) CRD_MX1 CP 0 JP NC,DOWN1 ADD A,E CRD_MX2 CP 0 JP C,DOWN1 CRD_MX3 LD A,0 DOWN1 LD (Y_STR),A LD A,D RET LEFT LD E,1 LD D,A LD A,(X_STR) OR A JP Z,LEFT1 SUB E JP NC,LEFT1 SUB A LEFT1 LD (X_STR),A LD A,D RET RIGHT LD E,1 LD D,A LD A,(X_STR) CRD_MX4 CP 0 JP NC,RIGHT1 ADD A,E JP NC,RIGHT2 CRD_MX5 LD A,0 RIGHT2 CP 0 JP C,RIGHT1 CRD_MX6 LD A,0 RIGHT1 LD (X_STR),A LD A,D RET F_KEYS LD A,(M_CONF) OR A JP Z,SLD_OP LD BC,#FADF IN A,(C) RRA RET NC SLD_OP LD A,#7F IN A,(#FE) RRA RET NC RRA RRA RET NC LD A,#BF IN A,(#FE) RRA RET NC LD A,#EF IN A,(#FE) RRA RET C_KEYS LD A,(M_CONF) OR A JP Z,SLD_OP1 LD BC,#FADF IN A,(C) RRA RRA RET NC SLD_OP1 LD A,#FE IN A,(#FE) RRA JP C,SLD_OP2 LD A,#F7 IN A,(#FE) RRA RET NC SLD_OP2 LD A,#FB IN A,(#FE) RRA RRA RRA RET RES_BUF LD HL,STR_BFR LD DE,(SCR_ADR) DUP #8 LDI LDI DEC DE DEC DE CALL COR_DE EDUP LDI LDI RET S_ADSTR LD A,(X_STR) LD C,A AND 7 INC A LD B,A LD HL,#5A00 INC H DJNZ $-1 FLASH LD A,#10 DEC A LD (FLASH+1),A JR NZ,FLASH1 LD A,#10 LD (FLASH+1),A FLASH1 CP 9 JP NC,FLASH2 LD A,H ADD A,8 LD H,A FLASH2 LD (SPR_ADR),HL LD A,(Y_STR) LD B,A LD A,C RRA RRA RRA AND #1F LD L,A LD A,B AND 7 OR #C0 ; #C0 LD H,A LD A,B AND #C0 RRCA RRCA RRCA OR H LD H,A LD A,B AND #38 RLCA RLCA OR L LD L,A LD (SCR_ADR),HL RET SKN_MAP LD A,(Y_STR) INC A SRL A SRL A SRL A LD L,A LD H,0 DUP 5 ADD HL,HL EDUP LD A,(X_STR) INC A RRA RRA RRA AND #1F LD E,A LD D,0 ADD HL,DE MAP_SET LD B,0 LD C,0 ADD HL,BC LD (ADR_MAP),HL LD A,(HL) LD (DATA),A CHECK OR A ; 183 - ON ; 201 - OFF JP Z,CHECK2 CP #FF JR NZ,CHECK1 CHECK2 LD A,0 OR A RET NZ LD HL,(OLD_ADR) LD A,(OLD_LEN) LD C,A CALL INVER LD HL,0 LD (OLD_ADR),HL SUB A LD (OLD_DAT),A INC A LD (OLD_LEN),A LD A,#FF LD (CHECK2+1),A RET CHECK1 LD B,0 LD E,A LD HL,INV_TABL LD C,A ADD A,A ADD A,C SUB 3 LD C,A ADD HL,BC LD C,(HL) INC HL LD A,(HL) INC HL LD H,(HL) LD L,A SUB A LD (CHECK2+1),A LD A,E LD B,A LD A,(OLD_DAT) CP B RET Z PUSH HL PUSH BC LD HL,(OLD_ADR) LD A,(OLD_LEN) LD C,A CALL INVER POP BC POP HL LD A,(DATA) LD (OLD_DAT),A LD (OLD_ADR),HL LD A,C LD (OLD_LEN),A INVER LD E,L DUP 8 LD B,C LD L,E LD A,(HL) CPL LD (HL),A INC L DJNZ $-4 INC H EDUP RET R_FLASH CALL RES_BUF LD B,5 FLASH3 PUSH BC LD HL,(OLD_ADR) LD A,(OLD_LEN) LD C,A CALL INVER EI HALT HALT HALT POP BC DJNZ FLASH3 RET PUT_SPR LD HL,(SCR_ADR) LD DE,STR_BFR DUP #8 LDI LDI DEC HL DEC HL CALL COR_HL EDUP LDI LDI RET SET_STR LD C,0 LD HL,(SPR_ADR) LD DE,(SCR_ADR) LD A,(X_STR) CP #F8 JP C,OBHOD INC C OBHOD LD A,(DE) AND (HL) LD (DE),A INC DE INC L LD A,C DEC A JP Z,OBHOD1 LD A,(DE) AND (HL) LD (DE),A OBHOD1 INC DE INC L DEC DE DEC DE CALL COR_DE LD B,7 S_LOOP PUSH DE LD A,(DE) AND (HL) INC L OR (HL) LD (DE),A INC DE INC L LD A,C DEC A JP NZ,OBHOD2 INC L JP OBHOD3 OBHOD2 LD A,(DE) AND (HL) INC L OR (HL) LD (DE),A OBHOD3 INC DE INC L POP DE CALL COR_DE LD A,D CP #D8 RET NC DJNZ S_LOOP LD A,(DE) AND (HL) LD (DE),A LD A,C DEC A RET Z INC DE INC L LD A,(DE) AND (HL) LD (DE),A RET SET_CRD LD A,H LD (CRD_MX5+1),A LD (CRD_MX6+1),A LD (CRD_MX7+1),A LD (M_DRV16+1),A INC A LD (CRD_MX4+1),A LD (RIGHT2+1),A LD A,L LD (CRD_MX3+1),A LD (CRD_MX8+1),A LD (M_DRV21+1),A INC A LD (CRD_MX1+1),A LD (CRD_MX2+1),A RET UPL LD HL,(WORK_TB) LD DE,66 ADD HL,DE LD A,L UDAT1 CP 0 JP NZ,UPI1 LD A,H UDAT2 CP 0 JP Z,NXTMAI2 UPI1 LD (WORK_TB),HL SUB A LD (ONLY_1+1),A LD (ONLY_2+1),A LD A,(RAM_CH) OR A JP Z,UPI3 SUB A LD (RAM_CH),A LD A,#17 LD BC,#7FFD OUT (C),A LD DE,#C040 LD HL,#4060 CALL MOVER LD DE,#C060 LD HL,#4080 CALL MOVER LD DE,#C080 LD HL,#40A0 CALL MOVER LD DE,#C0A0 LD HL,#40C0 CALL MOVER LD DE,#C0C0 LD HL,#40E0 CALL MOVER LD DE,#C0E0 LD HL,#4800 CALL MOVER LD DE,#C800 LD HL,#4820 CALL MOVER LD DE,#C820 LD HL,#4840 CALL MOVER LD DE,#C840 LD HL,#4860 CALL MOVER LD DE,#C860 LD HL,#4880 CALL MOVER LD DE,#C880 LD HL,#48A0 CALL MOVER LD DE,#C8A0 LD HL,#48C0 CALL MOVER LD DE,#C8C0 LD HL,#48E0 CALL MOVER LD DE,#C8E0 LD HL,#5000 CALL MOVER LD DE,#D000 LD HL,#5020 CALL MOVER LD DE,#D020 LD HL,#5040 CALL MOVER LD DE,#D040 LD HL,#5060 CALL MOVER LD DE,#D060 LD HL,#5080 CALL MOVER LD DE,#D080 LD HL,#50A0 CALL MOVER LD DE,#D0A0 LD HL,#50C0 CALL MOVER LD DE,#D0C0 LD HL,#50E0 CALL MOVER LD DE,#D840 LD HL,#5860 LD BC,672 LDIR LD IX,LINE7 LD HL,(WORK_TB) LD DE,#D0E0 CALL LINE LD A,#1F JP UPIX UPI3 LD A,#FF LD (RAM_CH),A LD A,#1F LD BC,#7FFD OUT (C),A LD DE,#4040 LD HL,#C060 CALL MOVER LD DE,#4060 LD HL,#C080 CALL MOVER LD DE,#4080 LD HL,#C0A0 CALL MOVER LD DE,#40A0 LD HL,#C0C0 CALL MOVER LD DE,#40C0 LD HL,#C0E0 CALL MOVER LD DE,#40E0 LD HL,#C800 CALL MOVER LD DE,#4800 LD HL,#C820 CALL MOVER LD DE,#4820 LD HL,#C840 CALL MOVER LD DE,#4840 LD HL,#C860 CALL MOVER LD DE,#4860 LD HL,#C880 CALL MOVER LD DE,#4880 LD HL,#C8A0 CALL MOVER LD DE,#48A0 LD HL,#C8C0 CALL MOVER LD DE,#48C0 LD HL,#C8E0 CALL MOVER LD DE,#48E0 LD HL,#D000 CALL MOVER LD DE,#5000 LD HL,#D020 CALL MOVER LD DE,#5020 LD HL,#D040 CALL MOVER LD DE,#5040 LD HL,#D060 CALL MOVER LD DE,#5060 LD HL,#D080 CALL MOVER LD DE,#5080 LD HL,#D0A0 CALL MOVER LD DE,#50A0 LD HL,#D0C0 CALL MOVER LD DE,#50C0 LD HL,#D0E0 CALL MOVER LD DE,#5840 LD HL,#D860 LD BC,672 LDIR LD IX,LINE5 LD HL,(WORK_TB) LD DE,#50E0 CALL LINE LD A,#15 UPIX LD DE,63 LD BC,#7FFD OUT (C),A LD HL,(WORK_TB) OR A SBC HL,DE LD (WORK_TB),HL L_CHLI LD DE,66 ADD HL,DE LD A,L UDAT3 CP 0 JP NZ,NXTMAI4 LD A,H UDAT4 CP 0 JP NZ,NXTMAI4 LD A,#FF LD (ONLY_1+1),A JP NXTMAI4 DOWNL LD HL,(WORK_TB) LD A,L OR A JP NZ,DOWNI1 LD A,H CP #DB JP Z,NXTMAI2 DOWNI1 LD HL,(WORK_TB) DEC HL DEC HL DEC HL LD (WORK_TB),HL SUB A LD (ONLY_1+1),A LD (ONLY_2+1),A LD A,(RAM_CH) OR A JP Z,DNI1 SUB A LD (RAM_CH),A LD A,#17 LD BC,#7FFD OUT (C),A LD DE,#D0E0 LD HL,#50C0 CALL MOVER LD DE,#D0C0 LD HL,#50A0 CALL MOVER LD DE,#D0A0 LD HL,#5080 CALL MOVER LD DE,#D080 LD HL,#5060 CALL MOVER LD DE,#D060 LD HL,#5040 CALL MOVER LD DE,#D040 LD HL,#5020 CALL MOVER LD DE,#D020 LD HL,#5000 CALL MOVER LD DE,#D000 LD HL,#48E0 CALL MOVER LD DE,#C8E0 LD HL,#48C0 CALL MOVER LD DE,#C8C0 LD HL,#48A0 CALL MOVER LD DE,#C8A0 LD HL,#4880 CALL MOVER LD DE,#C880 LD HL,#4860 CALL MOVER LD DE,#C860 LD HL,#4840 CALL MOVER LD DE,#C840 LD HL,#4820 CALL MOVER LD DE,#C820 LD HL,#4800 CALL MOVER LD DE,#C800 LD HL,#40E0 CALL MOVER LD DE,#C0E0 LD HL,#40C0 CALL MOVER LD DE,#C0C0 LD HL,#40A0 CALL MOVER LD DE,#C0A0 LD HL,#4080 CALL MOVER LD DE,#C080 LD HL,#4060 CALL MOVER LD DE,#C060 LD HL,#4040 CALL MOVER LD DE,#D860 LD HL,#5840 LD BC,672 LDIR LD IX,LINE7 LD HL,(WORK_TB) LD DE,#C040 CALL LINE LD A,#1F LD BC,#7FFD OUT (C),A JP L_CHLI2 DNI1 LD A,#FF LD (RAM_CH),A LD A,#1F LD BC,#7FFD OUT (C),A LD DE,#50E0 LD HL,#D0C0 CALL MOVER LD DE,#50C0 LD HL,#D0A0 CALL MOVER LD DE,#50A0 LD HL,#D080 CALL MOVER LD DE,#5080 LD HL,#D060 CALL MOVER LD DE,#5060 LD HL,#D040 CALL MOVER LD DE,#5040 LD HL,#D020 CALL MOVER LD DE,#5020 LD HL,#D000 CALL MOVER LD DE,#5000 LD HL,#C8E0 CALL MOVER LD DE,#48E0 LD HL,#C8C0 CALL MOVER LD DE,#48C0 LD HL,#C8A0 CALL MOVER LD DE,#48A0 LD HL,#C880 CALL MOVER LD DE,#4880 LD HL,#C860 CALL MOVER LD DE,#4860 LD HL,#C840 CALL MOVER LD DE,#4840 LD HL,#C820 CALL MOVER LD DE,#4820 LD HL,#C800 CALL MOVER LD DE,#4800 LD HL,#C0E0 CALL MOVER LD DE,#40E0 LD HL,#C0C0 CALL MOVER LD DE,#40C0 LD HL,#C0A0 CALL MOVER LD DE,#40A0 LD HL,#C080 CALL MOVER LD DE,#4080 LD HL,#C060 CALL MOVER LD DE,#4060 LD HL,#C040 CALL MOVER LD DE,#5860 LD HL,#D840 LD BC,672 LDIR LD IX,LINE5 LD HL,(WORK_TB) LD DE,#4040 CALL LINE LD A,#15 LD BC,#7FFD OUT (C),A L_CHLI2 LD HL,(WORK_TB) LD A,L CP 0 JP NZ,NXTMAI4 LD A,H CP #DB JP NZ,NXTMAI4 LD A,#FF LD (ONLY_2+1),A JP NXTMAI4 LIST_UL LD HL,(WORK_TB) LD DE,#DB00 OR A SBC HL,DE LD A,H OR A JP NZ,LIST_UP LD A,L OR A JP Z,NXTMAI2 CP #42 JP Z,ONLY_2 CP #41 JP NC,LIST_UP ONLY_2 LD A,0 OR A JP NZ,NXTMAI2 LD A,#FF LD (ONLY_2+1),A LD HL,#DB00 LD (WORK_TB),HL LD A,(RAM_CH) OR A JP Z,LSTU3 SUB A LD (RAM_CH),A LD IX,LINE7 LD DE,#C040 CALL LIST LD A,#1F LD BC,#7FFD OUT (C),A JP NXTMAI4 LSTU3 LD A,#FF LD (RAM_CH),A LD IX,LINE5 LD DE,#4040 CALL LIST LD A,#15 LD BC,#7FFD OUT (C),A JP NXTMAI4 LIST_UP LD HL,(WORK_TB) LD DE,66 OR A SBC HL,DE LD (WORK_TB),HL SUB A LD (ONLY_1+1),A LD (ONLY_2+1),A PRN_SCR LD A,(RAM_CH) OR A JP Z,LSTU2 SUB A LD (RAM_CH),A LD IX,LINE7 LD DE,#C040 CALL LIST LD A,#1F LD BC,#7FFD OUT (C),A JP NXTMAI4 LSTU2 LD A,#FF LD (RAM_CH),A LD IX,LINE5 LD DE,#4040 CALL LIST LD A,#15 LD BC,#7FFD OUT (C),A JP NXTMAI4 LIST_DL LD HL,0 LD DE,(WORK_TB) OR A SBC HL,DE LD A,H OR A JP NZ,LIST_DN LD A,L CP #42 JP Z,NXTMAI2 CP #84 JP Z,ONLY_1 CP #83 JP NC,LIST_DN ONLY_1 LD A,0 OR A JP NZ,NXTMAI2 LD A,#FF LD (ONLY_1+1),A LAST_LI LD HL,0 LD (WORK_TB),HL LD A,(RAM_CH) OR A JP Z,LSTD3 SUB A LD (RAM_CH),A LD IX,LINE7 LD DE,#C040 CALL LIST LD A,#1F LD BC,#7FFD OUT (C),A JP NXTMAI4 LSTD3 LD A,#FF LD (RAM_CH),A LD IX,LINE5 LD DE,#4040 CALL LIST LD A,#15 LD BC,#7FFD OUT (C),A JP NXTMAI4 LIST_DN LD HL,(WORK_TB) LD DE,66 ADD HL,DE LD (WORK_TB),HL SUB A LD (ONLY_1+1),A LD (ONLY_2+1),A REFRESH LD A,(RAM_CH) OR A JP Z,LSTD2 SUB A LD (RAM_CH),A LD IX,LINE7 LD DE,#C040 CALL LIST LD A,#1F LD BC,#7FFD OUT (C),A REBACK1 JP NXTMAI4 LSTD2 LD A,#FF LD (RAM_CH),A LD IX,LINE5 LD DE,#4040 CALL LIST LD A,#15 LD BC,#7FFD OUT (C),A REBACK2 JP NXTMAI4 LIST LD A,22 LST1 EX AF,AF' PUSH HL PUSH DE CALL LINE POP DE POP HL INC HL INC HL INC HL CALL COR2_DE EX AF,AF' DEC A JP NZ,LST1 RET MOVER DUP 4 DUP 31 LDI EDUP LD A,(HL) LD (DE),A INC H INC D DUP 31 LDD EDUP LD A,(HL) LD (DE),A INC H INC D EDUP ORG $-2 RET LINE LD A,(IX+0) LD BC,#7FFD OUT (C),A LD A,(HL) ADD A,(IX+1) DB #FD LD H,A INC HL LD (SCP_ADR),DE LD (SCP_AD1+1),DE LD A,(HL) INC HL LD H,(HL) LD L,A PUSH HL LD A,(IX+2) LD BC,#7FFD OUT (C),A COLR01 LD A,COLORAT C_DATA1 LD (SET_ATR),A LD A,3 LD (PRN_MOV+1),A OR #C LD (POL_RST+1),A SUB A LD (S64_CON+1),A EX DE,HL DUP 4 DUP 31 LD (HL),A INC L EDUP LD (HL),A INC H DUP 31 LD (HL),A DEC L EDUP LD (HL),A INC H EDUP ORG $-1 LD HL,S42_PRN LD (MOD_SET),HL POP HL DB #FD LD A,H LD BC,#7FFD OUT (C),A LIN_LOP LD A,(HL) CP 8 JP NC,NXT_CHE COLDAT1 LD DE,SET_ATR LD (DE),A INC HL LD A,(HL) CP 1 JP NZ,SCLR1 LD A,(DE) ADD A,64 LD (DE),A INC HL SCLR1 LD A,(HL) CP 8 JP NZ,SCRL2 INC HL LD B,(HL) PUSH HL LD C,8 CALL UMN LD B,L POP HL LD A,(DE) ADD A,B LD (DE),A INC HL SCRL2 LD A,(HL) CP 1 JP NZ,NXT_CHE INC HL LD A,(DE) ADD A,#80 LD (DE),A NXT_CHE LD A,(HL) CP 9 JP NZ,NXT_CH1 INC HL LD C,(HL) INC HL LD B,(HL) LD A,B CP #D JP C,DECREAS DEC B DECREAS INC HL PUSH HL EX AF,AF' PUSH AF EX AF,AF' LD HL,SPN_TBL LD A,C ADD A,A ADD A,A SUB #4 LD E,A LD D,#0 ADD HL,DE LD E,(HL) INC HL LD D,(HL) INC HL LD A,B PUSH BC ADD A,A ADD A,A ADD A,A LD B,A LD A,(HL) INC HL PUSH HL LD C,A CALL UMN ADD HL,DE PUSH DE LD DE,(SCP_ADR) LD C,A EXX LD C,A POP DE POP HL LD B,(HL) CALL UMN ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,DE POP BC LD C,A PUSH HL CALL UMN POP DE ADD HL,DE LD DE,(SCP_ADR) LD A,D RRCA RRCA RRCA AND 3 OR #D8 LD D,A EXX LD B,8 SPN_L1 PUSH BC PUSH DE LD A,C LD BC,#7FFD SPN_L0 EX AF,AF' LD A,(IX+3) OUT (C),A LD A,(HL) PUSH AF LD A,(IX+2) OUT (C),A POP AF LD (DE),A INC HL INC DE EX AF,AF' DEC A JP NZ,SPN_L0 POP DE INC D POP BC DJNZ SPN_L1 LD A,C EXX LD BC,#7FFD SPN_L2 EX AF,AF' LD A,(IX+3) OUT (C),A LD A,(HL) C_DATA2 PUSH AF LD A,(IX+2) OUT (C),A C_DATA3 POP AF NOP LD (DE),A INC HL INC DE EXX LD HL,SCP_ADR INC (HL) LD HL,PRN_MOV+1 LD A,(HL) SPR_LEN INC A AND 3 CP 1 JP Z,SPR_LEN LD (HL),A EXX EX AF,AF' DEC A JP NZ,SPN_L2 EXX EX AF,AF' POP AF EX AF,AF' POP HL DB #FD LD A,H LD BC,#7FFD OUT (C),A NXT_CH1 LD A,(HL) CP #A JP NZ,NXT_CH2 PUSH HL LD HL,S32_PRN JP NXT_CH4 NXT_CH2 CP #B JP NZ,NXT_CH3 PUSH HL LD HL,S42_PRN JP NXT_CH4 NXT_CH3 CP #C JP NZ,NXT_CH5 PUSH HL LD HL,S64_PRN NXT_CH4 LD (MOD_SET),HL POP HL INC HL NXT_CH5 LD A,(HL) CP #D JP NZ,CONTIN LD HL,(SCP_ADR) LD A,(PRN_MOV+1) DEC A JP NZ,SCP_AD1 INC HL SCP_AD1 LD DE,0 LD A,E RRCA RRCA RRCA AND 3 OR #D8 LD D,A LD A,H RRCA RRCA RRCA AND 3 OR #D8 LD H,A LD A,E ADD A,#1F SUB L CP #20 RET NC LD C,A LD B,0 ADD HL,BC LD D,H LD E,L DEC E PUSH AF LD A,(IX+2) CALL PAGE LD A,(SET_ATR) LD (HL),A POP AF OR A RET Z LDDR RET CONTIN CP 32 JP C,LIN_LOP PUSH HL LD B,(HL) LD A,(IX+2) CALL PAGE LD HL,(SCP_ADR) LD A,H RRCA RRCA RRCA AND 3 OR #D8 LD H,A DB #36 SET_ATR DB #00 POP HL LD A,B PUSH HL DB #CD MOD_SET DW #0000 POP HL INC HL DB #FD LD A,H LD BC,#7FFD OUT (C),A JP NXT_CH5 S32_PRN LD E,A LD D,FONT32 LD HL,(SCP_ADR) INC HL LD (SCP_ADR),HL DEC HL DUP 7 LD A,(DE) LD (HL),A INC D INC H EDUP LD A,(DE) LD (HL),A LD HL,PRN_MOV+1 LD A,(HL) S_BACK INC A AND 3 CP 1 JP Z,S_BACK LD (HL),A RET S42_PRN LD L,A LD H,FONT42 LD DE,(SCP_ADR) PRN_MOV LD A,0 INC A AND 3 LD (PRN_MOV+1),A AND A JP Z,S42_1 DEC A JP Z,S42_2 DEC A JP Z,S42_3 S42_4 PUSH HL PUSH DE DUP 7 LD A,(DE) LD C,(HL) SRA C SRA C OR C LD (DE),A INC D INC H EDUP LD A,(DE) LD C,(HL) SRA C SRA C OR C LD (DE),A POP DE POP HL INC E DUP 7 LD A,(HL) DUP 6 ADD A,A EDUP LD (DE),A INC D INC H EDUP LD A,(HL) DUP 6 ADD A,A EDUP LD (DE),A LD HL,SCP_ADR INC (HL) RET S42_1 DUP 7 LD A,(DE) OR (HL) LD (DE),A INC D INC H EDUP LD A,(DE) OR (HL) LD (DE),A LD HL,SCP_ADR INC (HL) RET S42_2 DUP 7 LD A,(HL) ADD A,A ADD A,A LD (DE),A INC D INC H EDUP LD A,(HL) ADD A,A ADD A,A LD (DE),A RET S42_3 PUSH HL PUSH DE DUP 7 LD A,(DE) LD C,(HL) DUP 4 SRA C EDUP OR C LD (DE),A INC D INC H EDUP LD A,(DE) LD C,(HL) DUP 4 SRA C EDUP OR C LD (DE),A POP DE POP HL INC E DUP 7 LD A,(HL) DUP 4 ADD A,A EDUP LD (DE),A INC D INC H EDUP LD A,(HL) DUP 4 ADD A,A EDUP LD (DE),A LD HL,SCP_ADR INC (HL) RET S64_PRN LD E,A POL_RST LD A,0 CPL LD (POL_RST+1),A LD C,A LD D,FONT64 LD HL,(SCP_ADR) INC HL LD (SCP_ADR),HL DEC HL DUP 7 LD A,(DE) AND C OR (HL) LD (HL),A INC D INC H EDUP LD A,(DE) AND C OR (HL) LD (HL),A LD A,(POL_RST+1) CP #F JP Z,S64_CON LD HL,(SCP_ADR) DEC HL LD (SCP_ADR),HL S64_CON LD A,0 INC A AND 1 LD (S64_CON+1),A OR A RET NZ LD HL,PRN_MOV+1 LD A,(HL) S_BACK2 INC A AND 3 CP 1 JP Z,S_BACK2 LD (HL),A RET RES_ICO LD A,0 OR A RET Z SUB A LD (RES_ICO+1),A DEC A LD (SET_ICO+1),A CALL RES_BUF LD A,(RAM_CH) OR A LD A,#1F JP Z,SET_PA1 LD A,#17 SET_PA1 CALL PAGE DI LD (STK3+1),SP LD SP,ICO_SPR POP HL LD (#4000),HL LD (#C000),HL POP HL LD (#4002),HL LD (#C002),HL POP HL LD (#4004),HL LD (#C004),HL POP HL LD (#4006),HL LD (#C006),HL POP HL LD (#4008),HL LD (#C008),HL POP HL LD (#400A),HL LD (#C00A),HL POP HL LD (#400C),HL LD (#C00C),HL LD SP,ICO_SPR+32 POP HL LD (#4100),HL LD (#C100),HL POP HL LD (#4102),HL LD (#C102),HL POP HL LD (#4104),HL LD (#C104),HL POP HL LD (#4106),HL LD (#C106),HL POP HL LD (#4108),HL LD (#C108),HL POP HL LD (#410A),HL LD (#C10A),HL POP HL LD (#410C),HL LD (#C10C),HL LD SP,ICO_SPR+64 POP HL LD (#4200),HL LD (#C200),HL POP HL LD (#4202),HL LD (#C202),HL POP HL LD (#4204),HL LD (#C204),HL POP HL LD (#4206),HL LD (#C206),HL POP HL LD (#4208),HL LD (#C208),HL POP HL LD (#420A),HL LD (#C20A),HL POP HL LD (#420C),HL LD (#C20C),HL LD SP,ICO_SPR+96 POP HL LD (#4300),HL LD (#C300),HL POP HL LD (#4302),HL LD (#C302),HL POP HL LD (#4304),HL LD (#C304),HL POP HL LD (#4306),HL LD (#C306),HL POP HL LD (#4308),HL LD (#C308),HL POP HL LD (#430A),HL LD (#C30A),HL POP HL LD (#430C),HL LD (#C30C),HL LD SP,ICO_SPR+128 POP HL LD (#4400),HL LD (#C400),HL POP HL LD (#4402),HL LD (#C402),HL POP HL LD (#4404),HL LD (#C404),HL POP HL LD (#4406),HL LD (#C406),HL POP HL LD (#4408),HL LD (#C408),HL POP HL LD (#440A),HL LD (#C40A),HL POP HL LD (#440C),HL LD (#C40C),HL LD SP,ICO_SPR+160 POP HL LD (#4500),HL LD (#C500),HL POP HL LD (#4502),HL LD (#C502),HL POP HL LD (#4504),HL LD (#C504),HL POP HL LD (#4506),HL LD (#C506),HL POP HL LD (#4508),HL LD (#C508),HL POP HL LD (#450A),HL LD (#C50A),HL POP HL LD (#450C),HL LD (#C50C),HL LD SP,ICO_SPR+192 POP HL LD (#4600),HL LD (#C600),HL POP HL LD (#4602),HL LD (#C602),HL POP HL LD (#4604),HL LD (#C604),HL POP HL LD (#4606),HL LD (#C606),HL POP HL LD (#4608),HL LD (#C608),HL POP HL LD (#460A),HL LD (#C60A),HL POP HL LD (#460C),HL LD (#C60C),HL LD SP,ICO_SPR+224 POP HL LD (#4700),HL LD (#C700),HL POP HL LD (#4702),HL LD (#C702),HL POP HL LD (#4704),HL LD (#C704),HL POP HL LD (#4706),HL LD (#C706),HL POP HL LD (#4708),HL LD (#C708),HL POP HL LD (#470A),HL LD (#C70A),HL POP HL LD (#470C),HL LD (#C70C),HL LD SP,ICO_SPR+256 POP HL LD (#4020),HL LD (#C020),HL POP HL LD (#4022),HL LD (#C022),HL POP HL LD (#4024),HL LD (#C024),HL POP HL LD (#4026),HL LD (#C026),HL POP HL LD (#4028),HL LD (#C028),HL POP HL LD (#402A),HL LD (#C02A),HL POP HL LD (#402C),HL LD (#C02C),HL LD SP,ICO_SPR+288 POP HL LD (#4120),HL LD (#C120),HL POP HL LD (#4122),HL LD (#C122),HL POP HL LD (#4124),HL LD (#C124),HL POP HL LD (#4126),HL LD (#C126),HL POP HL LD (#4128),HL LD (#C128),HL POP HL LD (#412A),HL LD (#C12A),HL POP HL LD (#412C),HL LD (#C12C),HL LD SP,ICO_SPR+320 POP HL LD (#4220),HL LD (#C220),HL POP HL LD (#4222),HL LD (#C222),HL POP HL LD (#4224),HL LD (#C224),HL POP HL LD (#4226),HL LD (#C226),HL POP HL LD (#4228),HL LD (#C228),HL POP HL LD (#422A),HL LD (#C22A),HL POP HL LD (#422C),HL LD (#C22C),HL LD SP,ICO_SPR+352 POP HL LD (#4320),HL LD (#C320),HL POP HL LD (#4322),HL LD (#C322),HL POP HL LD (#4324),HL LD (#C324),HL POP HL LD (#4326),HL LD (#C326),HL POP HL LD (#4328),HL LD (#C328),HL POP HL LD (#432A),HL LD (#C32A),HL POP HL LD (#432C),HL LD (#C32C),HL LD SP,ICO_SPR+384 POP HL LD (#4420),HL LD (#C420),HL POP HL LD (#4422),HL LD (#C422),HL POP HL LD (#4424),HL LD (#C424),HL POP HL LD (#4426),HL LD (#C426),HL POP HL LD (#4428),HL LD (#C428),HL POP HL LD (#442A),HL LD (#C42A),HL POP HL LD (#442C),HL LD (#C42C),HL LD SP,ICO_SPR+416 POP HL LD (#4520),HL LD (#C520),HL POP HL LD (#4522),HL LD (#C522),HL POP HL LD (#4524),HL LD (#C524),HL POP HL LD (#4526),HL LD (#C526),HL POP HL LD (#4528),HL LD (#C528),HL POP HL LD (#452A),HL LD (#C52A),HL POP HL LD (#452C),HL LD (#C52C),HL LD SP,ICO_SPR+448 POP HL LD (#4620),HL LD (#C620),HL POP HL LD (#4622),HL LD (#C622),HL POP HL LD (#4624),HL LD (#C624),HL POP HL LD (#4626),HL LD (#C626),HL POP HL LD (#4628),HL LD (#C628),HL POP HL LD (#462A),HL LD (#C62A),HL POP HL LD (#462C),HL LD (#C62C),HL LD SP,ICO_SPR+480 POP HL LD (#4720),HL LD (#C720),HL POP HL LD (#4722),HL LD (#C722),HL POP HL LD (#4724),HL LD (#C724),HL POP HL LD (#4726),HL LD (#C726),HL POP HL LD (#4728),HL LD (#C728),HL POP HL LD (#472A),HL LD (#C72A),HL POP HL LD (#472C),HL LD (#C72C),HL LD SP,ICO_SPR+512 POP HL LD (#5800),HL LD (#D800),HL POP HL LD (#5802),HL LD (#D802),HL POP HL LD (#5804),HL LD (#D804),HL POP HL LD (#5806),HL LD (#D806),HL POP HL LD (#5808),HL LD (#D808),HL POP HL LD (#580A),HL LD (#D80A),HL POP HL LD (#580C),HL LD (#D80C),HL LD SP,ICO_SPR+544 POP HL LD (#5820),HL LD (#D820),HL POP HL LD (#5822),HL LD (#D822),HL POP HL LD (#5824),HL LD (#D824),HL POP HL LD (#5826),HL LD (#D826),HL POP HL LD (#5828),HL LD (#D828),HL POP HL LD (#582A),HL LD (#D82A),HL POP HL LD (#582C),HL LD (#D82C),HL STK3 LD SP,0 JP STR_PUT SET_ICO LD A,#FF OR A RET Z SUB A LD (SET_ICO+1),A DEC A LD (RES_ICO+1),A CALL RES_BUF LD A,(RAM_CH) OR A LD A,#1F JP Z,SET_PAG LD A,#17 SET_PAG CALL PAGE LD DE,ICON_UP DI LD (STK2+1),SP EX DE,HL LD SP,HL EX DE,HL POP HL LD (#4000),HL LD (#C000),HL POP HL LD (#4100),HL LD (#C100),HL POP HL LD (#4200),HL LD (#C200),HL POP HL LD (#4300),HL LD (#C300),HL POP HL LD (#4400),HL LD (#C400),HL POP HL LD (#4500),HL LD (#C500),HL POP HL LD (#4600),HL LD (#C600),HL POP HL LD (#4700),HL LD (#C700),HL POP HL LD (#4020),HL LD (#C020),HL POP HL LD (#4120),HL LD (#C120),HL POP HL LD (#4220),HL LD (#C220),HL POP HL LD (#4320),HL LD (#C320),HL POP HL LD (#4420),HL LD (#C420),HL POP HL LD (#4520),HL LD (#C520),HL POP HL LD (#4620),HL LD (#C620),HL POP HL LD (#4720),HL LD (#C720),HL INC D EX DE,HL LD SP,HL EX DE,HL POP HL LD (#4002),HL LD (#C002),HL POP HL LD (#4102),HL LD (#C102),HL POP HL LD (#4202),HL LD (#C202),HL POP HL LD (#4302),HL LD (#C302),HL POP HL LD (#4402),HL LD (#C402),HL POP HL LD (#4502),HL LD (#C502),HL POP HL LD (#4602),HL LD (#C602),HL POP HL LD (#4702),HL LD (#C702),HL POP HL LD (#4022),HL LD (#C022),HL POP HL LD (#4122),HL LD (#C122),HL POP HL LD (#4222),HL LD (#C222),HL POP HL LD (#4322),HL LD (#C322),HL POP HL LD (#4422),HL LD (#C422),HL POP HL LD (#4522),HL LD (#C522),HL POP HL LD (#4622),HL LD (#C622),HL POP HL LD (#4722),HL LD (#C722),HL INC D EX DE,HL LD SP,HL EX DE,HL POP HL LD (#4004),HL LD (#C004),HL POP HL LD (#4104),HL LD (#C104),HL POP HL LD (#4204),HL LD (#C204),HL POP HL LD (#4304),HL LD (#C304),HL POP HL LD (#4404),HL LD (#C404),HL POP HL LD (#4504),HL LD (#C504),HL POP HL LD (#4604),HL LD (#C604),HL POP HL LD (#4704),HL LD (#C704),HL POP HL LD (#4024),HL LD (#C024),HL POP HL LD (#4124),HL LD (#C124),HL POP HL LD (#4224),HL LD (#C224),HL POP HL LD (#4324),HL LD (#C324),HL POP HL LD (#4424),HL LD (#C424),HL POP HL LD (#4524),HL LD (#C524),HL POP HL LD (#4624),HL LD (#C624),HL POP HL LD (#4724),HL LD (#C724),HL INC D EX DE,HL LD SP,HL EX DE,HL POP HL LD (#4006),HL LD (#C006),HL POP HL LD (#4106),HL LD (#C106),HL POP HL LD (#4206),HL LD (#C206),HL POP HL LD (#4306),HL LD (#C306),HL POP HL LD (#4406),HL LD (#C406),HL POP HL LD (#4506),HL LD (#C506),HL POP HL LD (#4606),HL LD (#C606),HL POP HL LD (#4706),HL LD (#C706),HL POP HL LD (#4026),HL LD (#C026),HL POP HL LD (#4126),HL LD (#C126),HL POP HL LD (#4226),HL LD (#C226),HL POP HL LD (#4326),HL LD (#C326),HL POP HL LD (#4426),HL LD (#C426),HL POP HL LD (#4526),HL LD (#C526),HL POP HL LD (#4626),HL LD (#C626),HL POP HL LD (#4726),HL LD (#C726),HL INC D EX DE,HL LD SP,HL EX DE,HL POP HL LD (#4008),HL LD (#C008),HL POP HL LD (#4108),HL LD (#C108),HL POP HL LD (#4208),HL LD (#C208),HL POP HL LD (#4308),HL LD (#C308),HL POP HL LD (#4408),HL LD (#C408),HL POP HL LD (#4508),HL LD (#C508),HL POP HL LD (#4608),HL LD (#C608),HL POP HL LD (#4708),HL LD (#C708),HL POP HL LD (#4028),HL LD (#C028),HL POP HL LD (#4128),HL LD (#C128),HL POP HL LD (#4228),HL LD (#C228),HL POP HL LD (#4328),HL LD (#C328),HL POP HL LD (#4428),HL LD (#C428),HL POP HL LD (#4528),HL LD (#C528),HL POP HL LD (#4628),HL LD (#C628),HL POP HL LD (#4728),HL LD (#C728),HL INC D EX DE,HL LD SP,HL EX DE,HL POP HL LD (#400A),HL LD (#C00A),HL POP HL LD (#410A),HL LD (#C10A),HL POP HL LD (#420A),HL LD (#C20A),HL POP HL LD (#430A),HL LD (#C30A),HL POP HL LD (#440A),HL LD (#C40A),HL POP HL LD (#450A),HL LD (#C50A),HL POP HL LD (#460A),HL LD (#C60A),HL POP HL LD (#470A),HL LD (#C70A),HL POP HL LD (#402A),HL LD (#C02A),HL POP HL LD (#412A),HL LD (#C12A),HL POP HL LD (#422A),HL LD (#C22A),HL POP HL LD (#432A),HL LD (#C32A),HL POP HL LD (#442A),HL LD (#C42A),HL POP HL LD (#452A),HL LD (#C52A),HL POP HL LD (#462A),HL LD (#C62A),HL POP HL LD (#472A),HL LD (#C72A),HL INC D EX DE,HL LD SP,HL EX DE,HL POP HL LD (#400C),HL LD (#C00C),HL POP HL LD (#410C),HL LD (#C10C),HL POP HL LD (#420C),HL LD (#C20C),HL POP HL LD (#430C),HL LD (#C30C),HL POP HL LD (#440C),HL LD (#C40C),HL POP HL LD (#450C),HL LD (#C50C),HL POP HL LD (#460C),HL LD (#C60C),HL POP HL LD (#470C),HL LD (#C70C),HL POP HL LD (#402C),HL LD (#C02C),HL POP HL LD (#412C),HL LD (#C12C),HL POP HL LD (#422C),HL LD (#C22C),HL POP HL LD (#432C),HL LD (#C32C),HL POP HL LD (#442C),HL LD (#C42C),HL POP HL LD (#452C),HL LD (#C52C),HL POP HL LD (#462C),HL LD (#C62C),HL POP HL LD (#472C),HL LD (#C72C),HL LD HL,#4747 LD SP,#580E DUP 7 PUSH HL EDUP LD SP,#582E DUP 7 PUSH HL EDUP LD SP,#D80E DUP 7 PUSH HL EDUP LD SP,#D82E DUP 7 PUSH HL EDUP STK2 LD SP,0 STR_PUT EI LD A,(RAM_CH) OR A JP Z,PUT_SPR LD A,#15 CALL PAGE JP PUT_SPR ICO_PRN EX AF,AF' LD A,(RAM_CH) OR A JP Z,ICO_PR2 LD A,#17 CALL PAGE LD D,#40 PUSH HL PUSH DE EX AF,AF' CALL ICO_PRI POP DE POP HL LD D,#C0 CALL ICO_PRI LD A,#15 JP PAGE ICO_PR2 LD A,#1F CALL PAGE LD D,#C0 PUSH HL PUSH DE EX AF,AF' CALL ICO_PRI POP DE POP HL LD D,#40 CALL ICO_PRI LD A,#1F JP PAGE ICO_PRI OR A LD B,8 JP NZ,ICO_PR1 LD (DE),A INC E LD (DE),A INC D DEC E DEC B ICO_PR1 DI LD (STK+1),SP LD SP,HL EX DE,HL BACK1 POP DE OR A JP NZ,BACK2 RR E RR D BACK2 LD (HL),E INC L LD (HL),D INC H DEC L DJNZ BACK1 OR A LD BC,#7E0 SBC HL,BC LD B,8 BACK3 POP DE OR A JP NZ,BACK4 RR E RR D BACK4 LD (HL),E INC L LD (HL),D INC H DEC L DJNZ BACK3 STK LD SP,0 EI RET TXT01 DW #0000 DW #0115 DB #78 DB 40,31,20,1,32,20,5,43,2,43,8,15,13,5,16,5,0 DB 1,"INTERVIEW FROM CSP999",0 DB #FF TXT02 DW #0C10 DW #0311 DB #57 DB 18,5,17,21,5,19,20,0 DB "QUIT FLASH INFO ?",0,0," " DB #01," YES ",#1F," ",#03," NO ",0,#FF ORG MUSIC INCBIN "4INTRO99 ORG #C000,#10 TIT_SCR INCBIN "melary W_FONT INCBIN "windfont WND_BUFFER: ORG #C000,#11 DB #FE INCBIN "INTER1 DB #FF ORG START