?login_element?

Subversion Repositories NedoOS

Rev

Rev 803 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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