LOCK_X DEFW 0 LOCK_Y DEFW 0 LOCK_CX DEFW 0 LOCK_CY DEFW 0 MAIN_CX DEFW 0 MAIN_CY DEFW 0 G EQU GRAY K EQU RED T EQU BRED U EQU WHITE J EQU BLACK RDB_BMP DEFB G,J,J,J,J,G,G DEFB J,J,G,G,G,J,G DEFB J,G,G,G,G,G,U DEFB J,G,G,G,G,G,U DEFB J,G,G,G,G,G,U DEFB G,J,G,G,G,U,U DEFB G,G,U,U,U,U,G RDB2BMP DEFB G,J,J,J,J,G,G DEFB J,J,G,G,G,J,G DEFB J,G,U,U,J,G,U DEFB J,G,U,G,J,G,U DEFB J,G,J,J,J,G,U DEFB G,J,G,G,G,U,U DEFB G,G,U,U,U,U,G CHE_BMP DEFB J,J,J,J,J,J,U DEFB J,G,G,G,G,G,U DEFB J,G,G,G,G,G,U DEFB J,G,G,G,G,G,U DEFB J,G,G,G,G,G,U DEFB J,G,G,G,G,G,U DEFB U,U,U,U,U,U,U CHE2BMP DEFB J,J,J,J,J,J,U DEFB J,G,G,G,G,G,U DEFB J,G,U,U,J,G,U DEFB J,G,U,G,J,G,U DEFB J,G,J,J,J,G,U DEFB J,G,G,G,G,G,U DEFB U,U,U,U,U,U,U SBU_BMP DEFB U,U,U,U,U,U,U,J DEFB U,G,G,G,G,G,G,J DEFB U,G,G,J,J,G,G,J DEFB U,G,J,J,J,J,G,J DEFB U,G,G,J,J,G,G,J DEFB U,G,G,J,J,G,G,J DEFB U,G,G,G,G,G,G,J DEFB J,J,J,J,J,J,J,J SBD_BMP DEFB U,U,U,U,U,U,U,J DEFB U,G,G,G,G,G,G,J DEFB U,G,G,J,J,G,G,J DEFB U,G,G,J,J,G,G,J DEFB U,G,J,J,J,J,G,J DEFB U,G,G,J,J,G,G,J DEFB U,G,G,G,G,G,G,J DEFB J,J,J,J,J,J,J,J SBU_BMA DEFB J,J,J,J,J,J,J,J DEFB J,G,G,G,G,G,G,U DEFB J,G,G,J,J,G,G,U DEFB J,G,J,J,J,J,G,U DEFB J,G,G,J,J,G,G,U DEFB J,G,G,J,J,G,G,U DEFB J,G,G,G,G,G,G,U DEFB J,U,U,U,U,U,U,U SBD_BMA DEFB J,J,J,J,J,J,J,J DEFB J,G,G,G,G,G,G,U DEFB J,G,G,J,J,G,G,U DEFB J,G,G,J,J,G,G,U DEFB J,G,J,J,J,J,G,U DEFB J,G,G,J,J,G,G,U DEFB J,G,G,G,G,G,G,U DEFB J,U,U,U,U,U,U,U SBL_BMP DEFB U,U,U,U,U,U,U,J DEFB U,G,G,G,G,G,G,J DEFB U,G,G,J,G,G,G,J DEFB U,G,J,J,J,J,G,J DEFB U,G,J,J,J,J,G,J DEFB U,G,G,J,G,G,G,J DEFB U,G,G,G,G,G,G,J DEFB J,J,J,J,J,J,J,J SBR_BMP DEFB U,U,U,U,U,U,U,J DEFB U,G,G,G,G,G,G,J DEFB U,G,G,G,J,G,G,J DEFB U,G,J,J,J,J,G,J DEFB U,G,J,J,J,J,G,J DEFB U,G,G,G,J,G,G,J DEFB U,G,G,G,G,G,G,J DEFB J,J,J,J,J,J,J,J SBL_BMA DEFB J,J,J,J,J,J,J,J DEFB J,G,G,G,G,G,G,U DEFB J,G,G,J,G,G,G,U DEFB J,G,J,J,J,J,G,U DEFB J,G,J,J,J,J,G,U DEFB J,G,G,J,G,G,G,U DEFB J,G,G,G,G,G,G,U DEFB J,U,U,U,U,U,U,U SBR_BMA DEFB J,J,J,J,J,J,J,J DEFB J,G,G,G,G,G,G,U DEFB J,G,G,G,J,G,G,U DEFB J,G,J,J,J,J,G,U DEFB J,G,J,J,J,J,G,U DEFB J,G,G,G,J,G,G,U DEFB J,G,G,G,G,G,G,U DEFB J,U,U,U,U,U,U,U BUTTON EQU #80 ED_BOX EQU #81 STATIC EQU #82 LISTX EQU #83 VSBAR EQU #84 HSBAR EQU #85 CH_BOX EQU #86 RD_BUTT EQU #87 GROUP EQU #88 GETPARM LD B,(IX+2) INC IX INC IX INC IX PUSH BC PUSH HL LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) LD (MAIN_X),HL LD (MAIN_Y),DE LD (MAIN_CX),BC EXX LD C,(IX+6) LD B,(IX+7) LD (MAIN_CY),BC POP DE EXX LD D,XH LD E,XL LD HL,10 ADD HL,DE LD BC,#0100 LD A,C CPIR EX DE,HL LD XH,D LD XL,E POP BC GPRM1 PUSH BC EXX LD L,(IX+8) LD H,(IX+9) AND A SBC HL,DE EXX JP NZ,GPRM2 POP BC LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC AND A RET GPRM2 CALL ITEM_NX POP BC DJNZ GPRM1 SCF RET DLGclos LD B,(IX+2) INC IX INC IX INC IX LD L,(IX+8) LD H,(IX+9) PUSH HL PUSH BC LD D,XH LD E,XL LD HL,10 ADD HL,DE LD BC,#0100 LD A,C CPIR EX DE,HL LD XH,D LD XL,E POP BC DCLO1 PUSH BC LD L,(IX+8) LD H,(IX+9) CALL LDESTR JP C,DCLO2 CALL ITEM_NX POP BC DJNZ DCLO1 LD HL,#0000 CALL LDESTR LD HL,#0002 CALL LDESTR POP HL CALL DESTR AND A RET DCLO2 POP BC POP HL AND A RET RTDIAL DEFW 0 DLGopen INC IX INC IX INC IX LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) LD (MAIN_X),HL LD (WIN_X),HL LD (MAIN_Y),DE LD (WIN_Y),DE LD (MAIN_CX),BC LD L,(IX+6) LD H,(IX+7) LD (MAIN_CY),HL LD L,(IX+8) LD H,(IX+9) AND A RET DLGinit LD (RTDIAL),IX LD (USERINI+1),HL LD B,(IX+2) PUSH BC CALL AWIN LD D,XH LD E,XL LD HL,10 ADD HL,DE CALL CAPTION EX DE,HL LD XL,E LD XH,D LD HL,(MAIN_X) LD (WIN_X),HL LD HL,(MAIN_Y) LD (WIN_Y),HL POP BC ITMCYC3 PUSH BC LD L,(IX+8) LD H,(IX+9) LD A,(IX+10) USERINI CALL USERini LD HL,ITMCYC2 PUSH HL OR A RET Z LD A,(IX+10) CP BUTTON JP Z,BUT_INI CP ED_BOX JP Z,EDB_INI CP CH_BOX JP Z,CHB_INI CP RD_BUTT JP Z,RDB_INI CP LISTX JP Z,LST_INI CP VSBAR JP Z,SBV_INI CP HSBAR JP Z,SBH_INI CP STATIC JP Z,STC_INI CP GROUP JP Z,GRP_INI POP HL ITMCYC2 CALL ITEM_NX POP BC DJNZ ITMCYC3 AND A RET AWIN INC IX INC IX INC IX LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) LD (MAIN_X),HL LD (MAIN_Y),DE LD (MAIN_CX),BC EXX LD C,(IX+6) LD B,(IX+7) LD (MAIN_CY),BC EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL CONST CALL RESTRG LD HL,0 LD DE,0 CALL OPTIMIZ LD HL,#0000 CALL LCONST CALL RESTRG LD A,(WINDOW_) LD (BODY),A JP PLANE CAPTION PUSH HL LD BC,12 EXX LD HL,(MAIN_CX) LD BC,6 AND A SBC HL,BC LD B,H LD C,L LD HL,(MAIN_X) INC HL INC HL INC HL LD DE,(MAIN_Y) INC DE INC DE INC DE CALL SAVERG LD HL,2 LD DE,2 CALL OPTIMIZ LD HL,#0002 CALL LCONST CALL RESTRG LD A,(ACAPT_) LD (BODY),A CALL PLACE POP DE PUSH DE CALL LENSTR LD HL,(MAIN_CX) AND A SBC HL,BC SRL H RR L LD DE,(MAIN_X) ADD HL,DE EX DE,HL LD HL,(MAIN_Y) LD BC,6 ADD HL,BC EX DE,HL LD A,(CTEXT_) LD (BODY),A POP BC JP PCHARX BUT_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG JP PBUTTON LST_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG JP PLIST LST_CLR LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX JP PLIST EDB_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG JP PEDITOR CHB_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG XOR A JP PCHECK RDB_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG XOR A JP RDBUTT STC_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG JP PSTATIC SBV_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG CALL SAVERG CALL INITBAR CALL RESTRG LD (USOBJ_X),HL LD (USOBJ_Y),DE PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX PUSH HL PUSH DE LD A,(WINDOW_) LD (BODY),A CALL PLACE POP DE POP HL PUSH IX LD IX,SBU_BMP LD BC,#0808 CALL SPR_256 LD BC,(SB_LEN) EXX LD DE,(SB_LEN) LD HL,(SB_VAL) CALL MUL LD DE,(SB_MAX) CALL DIV LD DE,(LOCK_Y) LD BC,8 ADD HL,BC ADD HL,DE EX DE,HL LD HL,(LOCK_X) LD BC,(LOCK_CX) CALL PLANE LD HL,(LOCK_Y) LD BC,(LOCK_CY) ADD HL,BC LD BC,8 AND A SBC HL,BC EX DE,HL LD HL,(LOCK_X) LD IX,SBD_BMP LD BC,#0808 CALL SPR_256 POP IX LD HL,(USOBJ_X) LD DE,(USOBJ_Y) LD BC,8 EXX LD BC,8 EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) INC L CALL LCONST CALL RESTRG EX DE,HL LD BC,(LOCK_CY) ADD HL,BC LD BC,8 AND A SBC HL,BC EX DE,HL LD BC,8 EXX LD BC,8 EXX CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) INC L INC L CALL LCONST AND A RET SBH_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) CALL LCONST CALL RESTRG CALL SAVERG CALL INITBAH CALL RESTRG LD (USOBJ_X),HL LD (USOBJ_Y),DE PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX PUSH HL PUSH DE LD A,(WINDOW_) LD (BODY),A CALL PLACE POP DE POP HL PUSH IX LD IX,SBL_BMP LD BC,#0808 CALL SPR_256 LD BC,(LOCK_CY) EXX LD DE,(SB_LEN) LD HL,(SB_VAL) CALL MUL LD DE,(SB_MAX) CALL DIV LD DE,(LOCK_X) LD BC,8 ADD HL,BC ADD HL,DE LD DE,(LOCK_Y) LD BC,(SB_LEN) CALL PLANE LD HL,(LOCK_X) LD BC,(LOCK_CX) ADD HL,BC LD BC,8 AND A SBC HL,BC LD DE,(LOCK_Y) LD IX,SBR_BMP LD BC,#0808 CALL SPR_256 POP IX LD HL,(USOBJ_X) LD DE,(USOBJ_Y) LD BC,8 EXX LD BC,8 EXX CALL SAVERG CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) INC L CALL LCONST CALL RESTRG LD BC,(LOCK_CX) ADD HL,BC LD BC,8 AND A SBC HL,BC LD BC,8 EXX LD BC,8 EXX CALL OPTIMIZ LD L,(IX+8) LD H,(IX+9) INC L INC L CALL LCONST AND A RET GRP_INI LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX JP PGROUP PGROUP PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX JP DFRAME PSTATIC PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX CALL ITEM_TX LD B,H LD C,L LD HL,(LOCK_X) INC HL INC HL INC HL LD DE,(LOCK_Y) INC DE INC DE LD A,(WTEXT_) LD (BODY),A JP PCHARX PLIST PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX LD A,(WRKSPC_) LD (BODY),A CALL PLACE RET PCHECK PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX LD BC,#0707 PUSH IX OR A LD IX,CHE_BMP JR Z,OFFCH2 LD IX,CHE2BMP OFFCH2 CALL SPR_256 POP IX CALL ITEM_TX PUSH HL LD HL,(LOCK_X) LD BC,12 ADD HL,BC LD DE,(LOCK_Y) LD A,(WTEXT_) LD (BODY),A POP BC JP PCHARX RDBUTT PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX LD BC,#0707 PUSH IX OR A LD IX,RDB_BMP JR Z,OFFCH LD IX,RDB2BMP OFFCH CALL SPR_256 POP IX CALL ITEM_TX PUSH HL LD HL,(LOCK_X) LD BC,12 ADD HL,BC LD DE,(LOCK_Y) LD A,(WTEXT_) LD (BODY),A POP BC JP PCHARX PEDITOR PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX LD A,(WRKSPC_) LD (BODY),A CALL PLACE RET PBUTTON PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX LD A,(BUTTON_) LD (BODY),A CALL PLANE CALL ITEM_TX EX DE,HL LD A,(DE) INC A JP Z,BSPRITE PUSH DE CALL LENSTR LD HL,(LOCK_CX) AND A SBC HL,BC SRL H RR L LD DE,(LOCK_X) ADD HL,DE EX DE,HL LD HL,(LOCK_CY) LD BC,6 AND A SBC HL,BC SRL H RR L LD BC,(LOCK_Y) ADD HL,BC EX DE,HL POP BC LD A,(BTEXT_) LD (BODY),A JP PCHARX BSPRITE INC DE LD A,(DE) BSPRADR LD HL,#C000 LD BC,0 BSPR1 ADD HL,BC LD C,(HL) INC HL LD B,(HL) DEC HL DEC A JP NZ,BSPR1 INC HL INC HL LD C,(HL) INC HL LD B,(HL) INC HL LD A,C PUSH IX PUSH HL LD HL,(LOCK_CX) AND A SBC HL,BC SRL H RR L LD DE,(LOCK_X) ADD HL,DE EX DE,HL POP HL LD C,(HL) INC HL LD B,(HL) INC HL PUSH HL LD HL,(LOCK_CY) AND A SBC HL,BC SRL H RR L EX AF,AF' LD A,C LD BC,(LOCK_Y) ADD HL,BC EX DE,HL POP IX LD B,A EX AF,AF' LD C,A CALL SPR_256 POP IX AND A RET USOBJ_X DEFW 0 USOBJ_Y DEFW 0 SB_HGT DEFW 0 ;BAR HEIGHT SB_LEN DEFW 0 ;LENGHT POINTER SB_MIN DEFW 0 ;MIN VALUE SB_MAX DEFW 12 ;MAX VALUE SB_VAL DEFW 0 ;CURRENT VALUE SB_ADD DEFW 1 ;NORMAL ADDER SB_WIN DEFW 5 ;BIG ADDER INITBAR EXX LD HL,#FFF0 ADD HL,BC LD (SB_HGT),HL EXX LD HL,(SB_MAX) LD DE,(SB_WIN) AND A SBC HL,DE JR NC,INITB1 LD (SB_MAX),DE INITB1 LD HL,(SB_HGT) CALL MUL LD DE,(SB_MAX) CALL DIV LD (SB_LEN),HL RET INITBAH LD HL,#FFF0 ADD HL,BC LD (SB_HGT),HL LD HL,(SB_MAX) LD DE,(SB_WIN) AND A SBC HL,DE JR NC,INITB1H LD (SB_MAX),DE INITB1H LD HL,(SB_HGT) CALL MUL LD DE,(SB_MAX) CALL DIV LD (SB_LEN),HL RET ;SCROLL CALL SAVERG ; CALL INITBAR ; CALL RESTRG PSCROLL PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX PUSH HL PUSH DE LD A,(WINDOW_) LD (BODY),A CALL PLACE POP DE POP HL PUSH IX LD IX,(U_S_BMP) LD BC,#0808 CALL SPR_256 LD BC,(SB_LEN) EXX LD DE,(SB_HGT) LD HL,(SB_VAL) CALL MUL LD DE,(SB_MAX) CALL DIV LD DE,(LOCK_Y) LD BC,8 ADD HL,BC ADD HL,DE EX DE,HL LD HL,(LOCK_X) LD BC,(LOCK_CX) CALL PLANE LD HL,(LOCK_Y) LD BC,(LOCK_CY) ADD HL,BC LD BC,8 AND A SBC HL,BC EX DE,HL LD HL,(LOCK_X) LD IX,(D_S_BMP) LD BC,#0808 CALL SPR_256 POP IX RET PSCROLH PUSH BC LD BC,(MAIN_X) ADD HL,BC EX DE,HL LD BC,(MAIN_Y) ADD HL,BC EX DE,HL POP BC LD (LOCK_X),HL LD (LOCK_Y),DE LD (LOCK_CX),BC EXX LD (LOCK_CY),BC EXX PUSH HL PUSH DE LD A,(WINDOW_) LD (BODY),A CALL PLACE POP DE POP HL PUSH IX LD IX,(U_S_BMP) LD BC,#0808 CALL SPR_256 LD BC,(LOCK_CY) EXX LD DE,(SB_HGT) LD HL,(SB_VAL) CALL MUL LD DE,(SB_MAX) CALL DIV LD DE,(LOCK_X) LD BC,8 ADD HL,BC ADD HL,DE LD DE,(LOCK_Y) LD BC,(SB_LEN) CALL PLANE LD HL,(LOCK_X) LD BC,(LOCK_CX) ADD HL,BC LD BC,8 AND A SBC HL,BC LD DE,(LOCK_Y) LD IX,(D_S_BMP) LD BC,#0808 CALL SPR_256 POP IX RET SBV_WRK LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX OR A JP Z,PBARINI DEC A JP Z,PBARUP EXX LD HL,SBU_BMP LD (U_S_BMP),HL LD HL,SBD_BMA LD (D_S_BMP),HL EXX JP PSCROLL PBARUP EXX LD HL,SBU_BMA LD (U_S_BMP),HL LD HL,SBD_BMP LD (D_S_BMP),HL EXX JP PSCROLL PBARINI EXX LD HL,SBU_BMP LD (U_S_BMP),HL LD HL,SBD_BMP LD (D_S_BMP),HL EXX CALL SAVERG CALL INITBAR CALL RESTRG JP PSCROLL SBH_WRK LD L,(IX+0) LD H,(IX+1) LD E,(IX+2) LD D,(IX+3) LD C,(IX+4) LD B,(IX+5) EXX LD C,(IX+6) LD B,(IX+7) EXX OR A JP Z,PBAHINI DEC A JP Z,PBAHUP EXX LD HL,SBL_BMP LD (U_S_BMP),HL LD HL,SBR_BMA LD (D_S_BMP),HL EXX JP PSCROLH PBAHUP EXX LD HL,SBL_BMA LD (U_S_BMP),HL LD HL,SBR_BMP LD (D_S_BMP),HL EXX JP PSCROLH PBAHINI EXX LD HL,SBL_BMP LD (U_S_BMP),HL LD HL,SBR_BMP LD (D_S_BMP),HL EXX CALL SAVERG CALL INITBAH CALL RESTRG JP PSCROLH U_S_BMP DEFW SBU_BMP D_S_BMP DEFW SBD_BMP ;Input Parameters HL/DE ;Output Result in HL,Octatok in BC DIV LD A,H LD C,L LD HL,#0000 LD B,#10 trial1 RL C RLA ADC HL,HL SBC HL,DE CCF JR NC,ngv1 ptv1 DJNZ trial1 PUSH HL RL C RLA ADD HL,HL AND A SBC HL,DE CCF LD H,A LD L,C LD BC,0 ADC HL,BC POP BC RET restr1 RL C RLA ADC HL,HL ADD HL,DE JR C,ptv1 ngv1 DJNZ restr1 RL C RLA ADD HL,DE PUSH HL ADD HL,HL AND A SBC HL,DE CCF LD H,A LD L,C LD BC,0 ADC HL,BC POP BC RET MUL PUSH HL ;HL*DE--HL XOR A OR D JR Z,MULENT EX DE,HL XOR A OR D JR Z,MULENT SCF POP HL RET MULENT LD A,E LD E,0 LD D,E JR MMULB2 MMULB1 ADD HL,HL JR C,ENDMUL MMULB2 OR A JR Z,ENDMUL RRA JR NC,MMULB1 EX DE,HL ADD HL,DE EX DE,HL JR MMULB1 ENDMUL POP HL EX DE,HL RET ITEM_TX LD D,XH LD E,XL LD HL,11 ADD HL,DE RET ITEM_NX LD D,XH LD E,XL LD HL,11 ADD HL,DE LD BC,#0100 LD A,C CPIR EX DE,HL LD XH,D LD XL,E RET