Subversion Repositories NedoOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1. ;****************************************************************************
  2. ;** MENU AND CHEAT ROUTINES                                                **
  3. ;****************************************************************************
  4.  
  5.                 IF MUSICALSO=0
  6.  
  7.                 ;ORG MENUSTART
  8.  
  9. ;**************************************
  10. ;** CHEATS FOR OCEANТS GAMES TESTERS **
  11. ;**************************************
  12.  
  13. RJO             LD (POL+1),HL
  14. YYU             LD A,30:LD (TIM1+1),A
  15. TIM1            LD A,30:DEC A:LD (TIM1+1),A:JP Z,HEREW
  16.                 EI:HALT:CALL KEYS
  17. POL             LD HL,0:LD A,(HL):INC A:JR Z,GOTCHEAT
  18.                 INC C:CP C:JR NZ,TIM1:INC HL:LD (POL+1),HL:JR YYU
  19. GOTCHEAT        LD A,7:OUT (254),A:EI:HALT:XOR A:OUT (254),A
  20.                 INC HL:JP (HL)
  21.  
  22. CHEAT1          DB "I AM AN OCEAN GAMES TESTER",$FF
  23.                 CALL SPRINT:DB PRINK,7,PRCLS,PRSIZE,1
  24.                 DB PRAT,10,11,"HELLO....CHEAT",PRPAUSE,PRCLS
  25.                 DB PRINK,#45,PRAT,06,00,"MIDNIGHT  RESISTANCE"
  26.                 DB PRINK,#46,PRAT,08,04,"OCEAN CHEAT MODE"
  27.                 DB PRAT,08,08,"1 INFINITE LIVES"
  28.                 DB PRAT,08,10,"2 INFINITE  AMMO"
  29.                 DB PRAT,08,12,"3 WEAPON  SELECT"
  30.                 DB PRAT,08,14,"4 KILLER   SPACE",PRINK,#45
  31.                 DB PRAT,08,18,"0 EXIT     CHEAT",PRINK,#44
  32.                 DB PRAT,05,22,"CHEATS DON'T USE DRUGS",PREOF
  33. INFLOOP         LD A,(INFLIVES):LD HL,$5800+(08*32)+8:CALL SHOWLIGHT
  34.                 LD A,(INFAMMO):LD HL,$5800+(10*32)+8:CALL SHOWLIGHT
  35.                 LD A,(WEPSELECT):LD HL,$5800+(12*32)+8:CALL SHOWLIGHT
  36.                 LD A,(SPACEBARCHEAT):LD HL,$5800+(14*32)+8:CALL SHOWLIGHT
  37. SHWLOP          LD A,$EF:IN A,(254):RRA :RET NC
  38.                 LD C,0
  39.                 LD A,$F7:IN A,(254):RRA :JR NC,SHW1
  40.                 INC C:RRA :JR NC,SHW1
  41.                 INC C:RRA :JR NC,SHW1
  42.                 INC C:RRA :JR C,SHWLOP
  43. SHW1            LD HL,INFLIVES:ADD HL,BC:LD A,(HL):CPL:LD (HL),A
  44.                 CALL WAITNOKEY:JR INFLOOP
  45.  
  46. SHOWLIGHT       LD DE,16:LD B,E:OR A:LD A,#42:JR Z,SHOWLIGINV
  47.                 LD A,#56
  48. SHOWLIGINV      LD (HL),A:INC L:DJNZ SHOWLIGINV:LD B,E:ADD HL,DE
  49. SHOWLIGIN1      LD (HL),A:INC L:DJNZ SHOWLIGIN1:RET
  50.  
  51. CHEAT2          DB "WE WANT TO HEAR MUSIC",$FF
  52.                 CALL SPRINT:DB PRINK,7,PRCLS,PRSIZE,1
  53.                 DB PRINK,#45,PRAT,06,00,"MIDNIGHT  RESISTANCE"
  54.                 DB PRINK,#46
  55.                 DB PRAT,06,03,"0.QUIET...  5.COMTU..."
  56.                 DB PRAT,06,05,"1.NIGHT...  6.PIGEON.."
  57.                 DB PRAT,06,07,"2.HAHAA...  7.HISCORE."
  58.                 DB PRAT,06,09,"3.EGYPT...  8.JUMP...."
  59.                 DB PRAT,06,11,"4.LELLY...  9.TITLE..."
  60.                 DB PRINK,#44
  61.                 DB PRAT,11,22,"Q.QUIT....",PRSIZE,0,PREOF
  62.  
  63.                 LD A,1:LD (MUSCONT+1),A
  64.  
  65. MUSLOOP         CALL KEYS:CP "Q":JR Z,XITEM
  66.                 CP "0":JR C,MUSLOOP:CP "9"+1:JR NC,MUSLOOP
  67.                 SUB "0":CALL PLAYMUSIC:JR MUSLOOP
  68. XITEM           XOR A:JP PLAYMUSIC
  69. CHEAT3          DB "HELLO JIMMY BAGLEY",$FF
  70.                 CALL SPRINT:DB PRINK,7,PRCLS,PRSIZE,1
  71.                 DB PRAT,11,10,"HELLO JIM.",PRPAUSE,PREOF
  72.                 LD HL,HELLOS:LD (MASSAGE+1),HL:RET
  73.  
  74. ;**************************************
  75.  
  76. ;RETURNS C=ASCI VAL OF KEY PRES/NC
  77. ;NO KEY CARRY SET
  78.  
  79. KEYS            CALL KEYFET:LD A,C:RET
  80.  
  81. KEYFET          XOR A:LD (KEYV),A:LD L,0:LD DE,5:LD B,8:LD C,254
  82. KF1             LD A,C:IN A,(254):AND 31:CP 31:PUSH BC:CALL NZ,KPRESD1
  83.                 POP BC:ADD HL,DE:RLC C:DJNZ KF1:LD A,(KEYV)
  84.                 LD C,A:OR A:JR Z,NKY:LD HL,MKEYTABL
  85. NSHF            LD A,C:ADD A,L:LD L,A:JR NC,JJ:INC H
  86. JJ              LD C,(HL):LD A,C:OR A:RET
  87. NKY             SCF :RET
  88. KPRESD1         OR %11100000:LD H,L:LD B,5
  89. KPRESD          SRL A:JR NC,KP1:INC H:DJNZ KPRESD:RET
  90. KP2             LD A,C:INC H:JR KPRESD
  91. KP1             LD C,A:LD A,H:CP $24:JR Z,KP2:OR A:JR Z,KP2
  92.                 LD (KEYV),A:RET
  93. KEYV            DB 0
  94. CSH             EQU 0
  95. EN              EQU 13
  96. SSH             EQU 0
  97. MKEYTABL        DB CSH, "ZXCVASDFGQWERT"
  98.                 DB "1234509876POIUY"
  99.                 DB EN, "LKJH ",SSH,"MNB"
  100.  
  101. ;***************************************
  102.  
  103. GOMENU          DI:LD A,$3F:LD I,A:XOR A:LD R,A:OUT (254),A
  104.                 CALL INTER
  105.  
  106. MENU            CALL SPRINT
  107.                 DB PRINK,#46,PRINK2,#47
  108.                 DB PRCLS,PRSIZE,1,PRAT,06,00,"MIDNIGHT  RESISTANCE"
  109.                 DB PRAT,11,03,"1 KEYBOARD"
  110.                 DB PRAT,11,05,"2 KEMPSTON"
  111.                 DB PRAT,11,07,"3 SINCLAIR"
  112.                 DB PRAT,11,09,"4 CURSOR  "
  113.                 DB PRAT,11,11,"5 REDEFINE"
  114.                 DB PRAT,04,14,"WINNERS DON'T USE DRUGS.",PRSIZE,0
  115.                 DB PREOF
  116.  
  117.                 CALL RESETSCROLL
  118. OPTDELBOY       EI:HALT:LD A,(POS):INC A:LD (POS),A
  119.                 CALL FLD:CALL SCROLL
  120.                 LD A,%11110111:IN A,(254):LD C,A
  121.                 RR C:JR NC,OPT1
  122.                 RR C:JR NC,OPT2
  123.                 RR C:JR NC,OPT3
  124.                 RR C:JR NC,OPT4
  125.                 RR C:JR NC,OPT5
  126.                 JP OPTDELBOY
  127.  
  128. OPT1            XOR A:LD (READKEYS+1),A:RET
  129. OPT2            LD A,1:LD (READKEYS+1),A:RET
  130. OPT3            LD A,2:LD (READKEYS+1),A:RET
  131. OPT4            LD A,3:LD (READKEYS+1),A:RET
  132. OPT5            CALL REDEFINE:JP MENU
  133.  
  134. ;***************************************
  135.  
  136. REDEFINE        LD IX,XTRAKEYS:CALL SPRINT
  137.                 DB PRINK,#46,PRINK2,#47,PRCLS,PRSIZE,1
  138.                 DB PRAT,08,02,"PRESS KEY FOR :-"
  139.                 DB PRINK,#45,PRINK2,#44
  140.                 DB PRAT,10,06,"HOLD       ",PREOF
  141.                 CALL GETDEF:CALL SPRINT
  142.                 DB PRAT,10,08,"FIRE PACK  ",PREOF
  143.                 CALL GETDEF:CALL SPRINT
  144.                 DB PRAT,10,10,"FIRE GUN   ",PREOF
  145.                 CALL GETDEF:CALL SPRINT
  146.                 DB PRAT,10,12,"UP         ",PREOF
  147.                 CALL GETDEF:CALL SPRINT
  148.                 DB PRAT,10,14,"DOWN       ",PREOF
  149.                 CALL GETDEF:CALL SPRINT
  150.                 DB PRAT,10,16,"LEFT       ",PREOF
  151.                 CALL GETDEF:CALL SPRINT
  152.                 DB PRAT,10,18,"RIGHT      ",PREOF
  153.                 CALL GETDEF:CALL SPRINT
  154.                 DB PRINK,#46,PRINK2,#47
  155.                 DB PRAT,08,22,"KEYS OK ?  (Y/N)",PREOF
  156.                 CALL WAITNOKEY:CALL WAITKEY
  157.  
  158. HEREW           CALL KEYS:JR C,HEREW
  159.                 LD A,C:CP "N":JP Z,REDEFINE
  160.                 LD A,C:CP "Y":RET Z
  161.                 LD HL,CHEAT1:LD A,(HL):CP C:JP Z,RJO
  162.                 LD HL,CHEAT2:LD A,(HL):CP C:JP Z,RJO
  163.                 LD HL,CHEAT3:LD A,(HL):CP C:JP Z,RJO
  164.                 JR HEREW
  165.  
  166. GETDEF          CALL WAITNOKEY:CALL WAITKEY: LD C,%01111111
  167. GDCLP           LD B, %00001
  168. GDBLP           LD A,C:IN A,(254):AND B:JR Z,GOT
  169.                 RLC B:BIT 5,B:JR Z,GDBLP:RRC C:JR C,GDCLP:JR GETDEF
  170. GOT             LD (IX+00),C:INC IX:LD (IX+00),B:INC IX
  171.                 PUSH BC:PUSH DE:CALL KEYS
  172.                 LD A,C:POP DE:POP BC:CALL PRTCELL
  173.                 JP WAITNOKEY
  174.  
  175. ;****************************************************************************
  176.  
  177. BIGAD           EQU $5020
  178. SMALLAD         EQU $5B00
  179.  
  180. FLD             LD IX,FLDTAB:LD DE,BIGAD
  181.                 LD HL,SMALLAD:LD C,6
  182. FLDCLP          LD A,(IX+00):INC IX:OR A:JR Z,PAMBY:LD B,A
  183. FLDBLP          PUSH HL:PUSH DE:PUSH BC
  184.                 LD BC,32:LDIR:POP BC:POP DE:POP HL
  185.                 CALL PIXDNDE:DJNZ FLDBLP
  186. PAMBY           LD A,L:ADD A,32:LD L,A
  187.                 DEC C:JP NZ,FLDCLP
  188.                 LD B,5
  189. CLR             PUSH DE:PUSH BC:LD HL,$4000:LD BC,32:LDIR
  190.                 POP BC:POP DE:CALL PIXDNDE:DJNZ CLR
  191.  
  192.                 LD HL,FLDTAB+6:LD DE,FLDTAB+7:LD BC,7:LDDR
  193.  
  194. FLDCNT          LD A,0:INC A:LD (FLDCNT+1),A
  195. HANDY           LD A,(FLDCNT+1)
  196.                 RRA:RRA:RRA:RRA
  197.                 AND %1100
  198.                 LD C,A:LD B,0:LD HL,FLIDS:ADD HL,BC
  199.                 LD C,(HL):INC HL:LD B,(HL):INC HL:LD (FLIDDY),BC
  200.                 LD A,(FLDCNT+1)
  201. FLIDDY          RRA:RRA:AND 15:LD C,A:LD B,0
  202.                 LD HL,FLDS:ADD HL,BC:LD A,(HL):LD (DE),A:RET
  203.  
  204. FLIDS           RRA:RRA:RRA:NOP:RRA:NOP:NOP:NOP
  205.                 NOP:NOP:RRA:NOP:RRA:NOP:RRA:RRA
  206.  
  207. FLDTAB          DS 8,0
  208. LETTER          DS 8,0
  209.  
  210. FLDS            DB 1,1,1,2,3,4,5,6,6,5,4,3,2,1,1,1
  211.  
  212. RESETSCROLL     XOR A:LD (FLDCNT+1),A
  213.                 LD HL,FLDTAB:LD DE,FLDTAB+1:LD BC,7+8:LD (HL),A:LDIR
  214.                 LD HL,SMALLAD:LD DE,SMALLAD+1:LD BC,255:LD (HL),A:LDIR
  215.                 LD A,7:LD (SCROLL+1),A
  216. MASSAGE         LD HL,MESSAGE:LD (MESSADDR+1),HL
  217.                 LD HL,MESSAGE:LD (MASSAGE+1),HL:RET
  218.  
  219. SCROLL          LD A,7:INC A:AND 7:LD (SCROLL+1),A:JR NZ,NOLETTER
  220. MESSADDR        LD HL,MESSAGE:LD A,(HL):INC HL:LD (MESSADDR+1),HL
  221.                 CP 255:JR NZ,NOTEOF
  222.                 LD HL,MESSAGE:LD (MESSADDR+1),HL:JR MESSADDR
  223. NOTEOF          OR 128:LD L,A:LD H,7
  224.                 ADD HL,HL:ADD HL,HL:ADD HL,HL
  225.                 LD DE,LETTER:LD BC,8:LDIR
  226.  
  227.                 LD HL,LETTER:LD A,(HL):LD (HL),0
  228.                 INC HL:OR (HL):LD (HL),A
  229.                 LD HL,LETTER+7:LD A,(HL):DEC HL:OR (HL):LD (HL),A
  230.  
  231. NOLETTER        LD HL,SMALLAD+$1F:LD DE,LETTER+1:LD C,6
  232. LETCLP          EX DE,HL:RL (HL):EX DE,HL:LD B,32
  233. LETBLP          RL (HL):DEC L:DJNZ LETBLP
  234.                 INC DE:LD A,L:ADD A,32+32:LD L,A
  235.                 DEC C:JP NZ,LETCLP:RET
  236.  
  237. MESSAGE         DB "SPECIAL FX PRESENTS 'MIDNIGHT RESISTANCE'...   "
  238.                 DB "CODE BY JIMMY BAGLEY...   "
  239.                 DB "GRAFIX BY CHAS DAVIES...   "
  240.                 DB "MUSIC BY KEITH TINMAN...   "
  241.                 DB "ALL CODE, GRAPHICS AND MUSIC...   "
  242.                 DB 127,"'90 OCEAN SOFTWARE...   "
  243.                 DB "                               ",255
  244.  
  245. HELLOS          DB "HELLO FIRST OF ALL TO JIMMY AND JACQUI...   "
  246.                 DB "MUM,   "
  247.                 DB "PAT AND NIGE, CRAIG, DONNA,   "
  248.                 DB "DAVE AND CAROLE AND KIDS,   "
  249.                 DB "KATHY AND JOHN AND FAMILY,   "
  250.                 DB "CHRIS WEBSTER, LEE, NIBS,   "
  251.                 DB "DAVE WORTON,  PAUL GRIFFITHS,  CHRIS WORTON,   "
  252.                 DB "                               ",255
  253. EOF
  254.  
  255. ;****************************************************************************
  256. ;** SET UP PAGES WITH SPRITES + ROUTINES FOR OTHER LEVELS                  **
  257. ;****************************************************************************
  258.  
  259. SETUPPAGES      DI:LD A,$3F:LD I,A:XOR A:LD R,A:OUT (254),A
  260.                 LD SP,THESTACK
  261.                 CALL INTER:XOR A:CALL PLAYMUSIC
  262.  
  263.                 LD A,R:LD (RND1),A:DB #10,#FE
  264.                 LD A,R:LD (RND2),A:DB #10,#FE
  265.                 LD A,R:LD (RND3),A
  266.  
  267.                 LD A,STARTLEV-1:LD DE,LLDATLEN:LD HL,LLDAT:CALL MULT
  268.                 LD A,(HL):INC HL:LD H,(HL):LD L,0
  269.                 LD DE,LEVELDATA:LD BC,$2000:ds 3;CALL CAGE
  270.  
  271.                 LD A,AUTO:OR A:JP NZ,REENTRY
  272.  
  273.                 DI:LD A,$3F:LD I,A
  274.                 XOR A:LD R,A:OUT (254),A
  275.                 IM 1:EI
  276. STOPNOW         INC A:AND 7:OUT (254),A:JP STOPNOW
  277.  
  278. CAGE
  279.                 ex de,hl
  280.                 ld lx,a
  281.                 ld hx,0
  282.                 di
  283.                 call copypage
  284.                 ei
  285.                 ret
  286.                 ;PUSH DE:EXX :POP HL:LD D,A:LD E,$10:LD BC,$7FFD:EXX
  287.                 DI:LD A,$3F
  288.                 ;LD I,A
  289. BCCOPYPAGE      EXX:OUT (C),E:LD A,(HL):INC HL
  290.                 OUT (C),D:EXX:LD (HL),A:INC HL
  291.                 DEC BC:LD A,B:OR C:JP NZ,BCCOPYPAGE
  292.                 EXX:OUT (C),E:EXX:LD A,$FE:LD I,A:EI:RET
  293.  
  294. ;****************************************************************************
  295. ;** END OF FILE                                                            **
  296. ;****************************************************************************
  297.  
  298. ENDOFBACK
  299.                 ENDIF
  300.