?login_element?

Subversion Repositories NedoOS

Rev

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

  1.         DEVICE ZXSPECTRUM1024
  2.         include "../../_sdk/sys_h.asm"
  3.  
  4.         SLOT 0
  5.         page 63 ;иначе по умолчанию в 0x0000 pg7
  6.         SLOT 3
  7.  
  8. MUSIC=1
  9.  
  10. IMVEC=#4100
  11. IM2=0
  12.  
  13. PROTECT=0
  14. CHEATS=1
  15. NOENEMY=0;1
  16.  
  17. ;*L-
  18. ;*Z80
  19. ;*O
  20. ;*M-
  21. ;*D-
  22. ;D$     MAC ;debug
  23.         ;DI
  24.         ;HALT
  25.         ;ENDM
  26.  
  27.         include "macro.asm"
  28.  
  29.         PAGE 8
  30.         org 0xc000
  31.         ds 0x0400 ;чтобы в одной странице ровно 5 рядов спрайтов
  32.         include "sprites1.ast"
  33.         savebin "ufo2/ufospr1.dat",0xc000,$-0xc000
  34.         display "endsprites=",$
  35.         PAGE 9
  36.         org 0xc000
  37.         include "sprites2.ast"
  38.         savebin "ufo2/ufospr2.dat",0xc000,$-0xc000
  39.         display "endsprites2=",$
  40.         ;PAGE 10
  41.         ;org 0xc000
  42.         ;include "sprites3.ast"
  43.         ;savebin "ufo2/ufospr3.dat",0xc000,$-0xc000
  44.         ;display "endsprites3=",$
  45.         ;PAGE 11
  46.         ;org 0xc000
  47.         ;include "sprites4.ast"
  48.         ;savebin "ufo2/ufospr4.dat",0xc000,$-0xc000
  49.         ;display "endsprites4=",$
  50.         ;PAGE 12
  51.         ;org 0xc000
  52.         ;include "sprites5.ast"
  53.         ;savebin "ufo2/ufospr5.dat",0xc000,$-0xc000
  54.         ;display "endsprites5=",$
  55.         PAGE 13
  56.         org 0xc000
  57.         include "xm0.ast"
  58.         include "xm11a.ast"
  59.         savebin "ufo2/ufoxm11a.dat",0xc000,$-0xc000
  60.         PAGE 14
  61.         org 0xc000
  62.         include "xm11b.ast"
  63.         ;include "sprites1.ast"
  64.         savebin "ufo2/ufoxm11b.dat",0xc000,$-0xc000
  65.  
  66. ;*F     XPAGE
  67. ;содержимое страниц
  68. ;СТРАНИЦЫ: c #C000
  69. ;0: #C000:
  70. ;1: #C000:T(256<),TWCMPR(256),WORDS,MENUS,PEDIA,NAMES
  71. ;2: *main*
  72. ;3: #C000:xSprites,xSHIP,xUFO
  73. ;4: #C000:xHERO(12k=8*16*96),#F000:xDIE(768),#F300:xBOOM(768),#F600
  74. ;5: *main*
  75. ;6: *swap*
  76. ;7: #C000:SCR,#D800:ATR,#DB00:
  77. ;*P4 ***********Страница 4***********
  78.         PAGE 4
  79.         ORG #C000
  80. begin4
  81. ;*B ..\data\xhero.dat
  82.         incbin "data/xhero.dat"
  83. xSHIP
  84. ;*B ..\ZX_DISC\XM0.LPC
  85.         ;incbin "ZX_DISC/XM0.LPC"
  86.         incbin "ZX_DISC/xm0.mlz"
  87.         ds #FFFE-$;DEFR
  88. end4
  89. ;*P3 ***********Cтраница 3***********
  90.         PAGE 3
  91.         ORG #C000
  92. begin3
  93. xEARTH
  94. ;*B ..\data\xsprites.dat
  95.         incbin "data/xsprites.dat"
  96. xWEAPON EQU xEARTH+2880
  97. xBUTTON EQU xEARTH+3840
  98. xWBUTTN EQU xBUTTON+128
  99. xBBUTTN EQU xWBUTTN+96
  100. xSIGN   EQU xEARTH+4192
  101. xPARAM  EQU xEARTH+5056
  102. xKEY    EQU xEARTH+5536
  103. xPLUS   EQU xKEY+576
  104. xLABEL  EQU xEARTH+6304
  105. xMAP    EQU xEARTH+7136
  106. xMARKER
  107. ;*B ..\ZX_DISC\xmarker.dat
  108.         incbin "ZX_DISC/xmarker.dat"
  109. xUFO   
  110. ;*B ..\ZX_DISC\XM1.LPC
  111.         ;incbin "ZX_DISC/XM1.LPC"
  112.         incbin "ZX_DISC/xm1.mlz"
  113. xL0
  114. ;*B ..\ZX_DISC\XL0.LPC
  115.         ;incbin "ZX_DISC/XL0.LPC"
  116.         incbin "ZX_DISC/XL0.mlz"
  117. xL1
  118. ;*B ..\ZX_DISC\XL1.LPC
  119.         ;incbin "ZX_DISC/XL1.LPC"
  120.         incbin "ZX_DISC/XL1.mlz"
  121. end3
  122. ;*P1 ***********Cтраница 1***********
  123.         PAGE 1
  124.         ORG #C000
  125. begin1
  126. T
  127. ;*B ..\data\x256.dat
  128.         incbin "data/x256.dat"
  129. TWCMPR
  130. ;*B ..\data\xcompres.dat
  131.         incbin "data/xcompres.dat"
  132. WORDS
  133. ;*B ..\data\xword.dat
  134.         incbin "data/xword.dat"
  135. MENUS
  136. ;*B ..\data\xmenu.dat
  137.         incbin "data/xmenu.dat"
  138. PEDIA
  139. ;*B ..\data\xfopedia.dat
  140.         incbin "data/xfopedia.dat"
  141. NAMES
  142. ;*B ..\data\xname.dat
  143.         incbin "data/xname.dat"
  144.         ;DEFR #FFFE-$
  145.         ds #FFFE-$
  146. end1
  147. ;*P7 ***********Cтраница 7***********
  148.         PAGE 7
  149.         ORG #C000
  150. begin7
  151. ;*B ..\IMAGES\XHIST.SCR
  152.         incbin "images/XHIST.SCR"
  153.         DEFS 1024,0
  154.         db " No room for STS 4.x!  Please reload..."
  155. ;сюда процедурой SWPBAT с адреса SwpMEM #E600 кладётся кусок памяти из SwpADR #7580 длиной #1A00 (при этом DSCR=#9000)
  156.        
  157. end7
  158. ;*P0
  159.         PAGE 0      
  160.  
  161.         org PROGSTART
  162. begin
  163.         include "loader.asm"
  164.        
  165.         ORG #4000+16
  166. beginmain
  167.         ;ENT $
  168. JP_ST   JP xSTART ;вх.
  169.         ds #4040-$ ;DEFR
  170. ;Interupt entry
  171. INTRP
  172.        if 1
  173.         push af
  174.         ld a,(SEED)
  175.         inc a
  176.         ld (SEED),a
  177.         jr nz,INTR2
  178.         ld a,(SEED+1)
  179.         inc a
  180.         ld (SEED+1),a
  181. INTR2
  182.         pop af
  183.         ei
  184.         ret
  185.        else
  186.         PUSH HL
  187.         LD HL,SEED
  188.         INC (HL)
  189.         JR NZ,INTR2
  190.         INC HL
  191.         INC (HL)
  192. INTR2   POP HL
  193.         EI
  194.         RETI
  195.        endif
  196. ;SEED   DEFW 1 ;счётчик
  197. NRFT    DEFB 1 ;для XIO
  198. ;Interupt table
  199. ;==================================обслуживание клавиатуры
  200. PRSROW  IN      A,(C)
  201.         CPL
  202.         AND     #1F
  203.         RET
  204.  
  205. ;TMO    LD      A,(KEYJOY)
  206. ;       OR      A
  207. ;       JR      NZ,TMOJOY
  208. ;       LD      C,#FE
  209. ;       LD      B,C
  210. ;TMOO   CALL    PRSROW
  211. ;       JR      NZ,TMOOK
  212. ;       RLC     B
  213. ;       JR      TMOO
  214. ;TMOOK  LD      C,A
  215. ;       RET
  216. ;TMOJOY CALL    CONTR
  217. ;       OR      A
  218. ;       JR      Z,TMOJOY
  219. ;       RET
  220.  
  221. PRSKEY  PUSH    BC
  222.         LD      C,#FE
  223.         CALL    PRSROW
  224.         POP     BC
  225.         AND     C
  226.         RET
  227.  
  228.         display "CONTR=",$
  229. CONTR   PUSHs;$
  230.         LD      A,(KEYJOY)
  231.         OR      A
  232.         JR      Z,CO1
  233.         LD      C,#1F
  234.         CALL    PRSROW
  235.         XOR     #1F
  236. CO2     LD      (CONTRB),A
  237.         LD      A,(PMOUSE)
  238.         OR      A
  239.         CALL    NZ,MOUSE
  240.         POPs;$
  241.         LD      A,(CONTRB)
  242.         RET
  243. CO1     LD      HL,(KEYS)
  244.         LD      E,0
  245.         LD      D,5
  246. CO3     LD      C,(HL)
  247.         INC     HL
  248.         LD      B,(HL)
  249.         CALL    PRSKEY
  250.         JR      Z,CO4
  251.         SET     5,E
  252. CO4     RRC     E
  253.         DEC     D
  254.         INC     HL
  255.         JR      NZ,CO3
  256.         LD      A,E
  257.         JR      CO2
  258.  
  259. DELAY
  260.        if MUSIC
  261.         push af
  262.         YIELD
  263.         pop af
  264.        else
  265.         EI
  266.         HALT
  267.         DI
  268.        endif
  269.         DEC A
  270.         JR NZ,DELAY
  271.         RET Z
  272.  
  273. ;*************Параметры настройки игры**
  274. C_ONOF  DEFB    0;0-вкл/1-выкл
  275. KEYN    DEFB    0
  276. KEYS    DEFW    KBR
  277. KEYJOY  DEFB    0 ;(1-K.-stick)
  278. PMOUSE  DEFB    0 ;(1-K.-mouse)
  279.  
  280. CFGLEN  EQU     $-C_ONOF
  281. ;***************************************
  282. CONTRB  DEFB    0
  283. KBR     DEFW    #DF01,#DF02,#FD01,#FB01,#7F07
  284. KBR2    DEFW    #7F04,#7F08,#FE02,#FD01,#7F03
  285. INT2    DEFW    #EF08,#EF10,#EF04,#EF02,#EF01
  286. KUR     DEFW    #EF04,#F710,#EF10,#EF08,#EF01 ;;;
  287.  
  288. RND     PUSH    HL
  289.         LD      HL,(RNA)
  290.         INC     HL
  291. ;;;     LD      A,R
  292. ;;;     ADD     A,H
  293.         LD      A,H ;;;
  294.         AND     #1F
  295.         LD      H,A
  296.         LD      A,(RNB)
  297.         RRCA
  298.         XOR     (HL)
  299.         ADD     A,L
  300.         LD      (RNA),HL
  301.         LD      (RNB),A
  302.         POP     HL
  303.         RET
  304.  
  305.         ;DEFR #4100-$,#40
  306.         ds IMVEC-$,#40
  307.         DEFS 257,#40
  308.  
  309. xSTART  DI
  310.         LD SP,#4030
  311.         CALL START1 ;нач.уст.защиты
  312.         LD A,2
  313.         OUT (254),A
  314.         ;ост после защиты
  315.         CALL MU_ENT
  316.         XOR A
  317.         OUT (254),A
  318.         CALL JP_ST
  319. start   DI
  320.         LD SP,#4040
  321.        if IM2
  322.         LD A,#41
  323.         LD I,A
  324.         IM 2
  325.        else
  326.        call swapimer
  327.        endif
  328.         CALL START2 ;нач.уст
  329.         CALL BACK ;копирование экрана
  330.        ;call SWPBAT
  331.         LD IX,MUST
  332.         CALL MENUC ;вывод меню
  333.         CALL MU_ENT ;ждать ENTER
  334.         CALL NO_3D ;откл 3D боя
  335.        if 1
  336.        ld a,1
  337.        ld (T_INTR),a ;тип истребителя
  338.        ld a,1
  339.        ld (AQU),a ;число акванавтов
  340.        ld (AQNAVT),a ;имя
  341.        xor a
  342.        ld (AQNAVT+6),a ;wound
  343.        ld a,7
  344.        ld (AQNAVT+1),a ;ранг
  345.        endif
  346.        if 0
  347.        ld a,1
  348.        ld (T_UFO),a
  349.        ld (AQU),a ;число акванавтов
  350.        ld (AQNAVT),a ;имя
  351.        ld a,7
  352.        ld (AQNAVT+1),a ;ранг
  353.        call BATTLE
  354.        endif
  355.        ;call BATTL1
  356.        if MUSIC
  357.        call SETMENUMUSIC
  358.        endif
  359.         CALL MLOOP      ;---начало
  360. ;       CALL XEARTH  ;--удали
  361. ;       CALL COPYAT  ;
  362. ;       LD A,0       ;
  363. ;       LD (T_INTR),A;
  364. ;       LD A,4       ;
  365. ;       LD (TARoff),A;
  366. ;       LD (NRECR),A ;
  367. ;       LD (AQU),A   ;
  368. ;       CALL RECRUT  ;
  369. ;       CALL MLOOP
  370.  
  371. MUST    DEFW #202,#3412
  372. MU_ENT  LD A,#BF ;ждать ENTER
  373.         IN A,(#FE)
  374.         RRA
  375.         JR C,MU_ENT
  376.         RET NC
  377. NO_3D   RRCA ;откл 3D боя
  378.         RRCA
  379.         RRCA
  380.         LD HL,xHAC2
  381.         RET C
  382.         INC (HL)
  383.         RET
  384. ;Main procedures
  385. ;*F     XMAIN
  386. ;**** HЛО-2. Дьяволы бездны ****
  387. ;*M-
  388. ;*D-
  389.         DEFB 0
  390. SYSINI  DEFB 28 ;systxt 28
  391. MONINI  DEFB 1 ;1/0 в ScrBU нет/есть текст
  392. xHACK   DEFB #7;F;если 7f, то видимое поле []
  393. ;*F xLID
  394.         include "xlid.asm"
  395. ;*F xGamedat
  396.         include "xgamedat.asm"
  397. FONT
  398. ;*B ..\data\xfont.dat
  399.         incbin "data/xfont.dat"
  400. CRC3    DEFB 11
  401. ;*L+
  402. TAB100  ds 98;DEFR 98
  403.         DEFB #15,#88 ;таблица плохих секторов
  404. ;*L-
  405. ;*F xlib
  406.         ;include "xlib.asm"
  407. ;CRC2   DEFW 0;[] -crc2
  408. xHAC2   DEFB #D5;D6;если D6, то нет боя []
  409. ;*F xlie
  410.         include "xlie.asm"
  411. ;--------swap-область
  412. ;*L+
  413. ;*F XLIN
  414.         include "xlin.asm"
  415. ;*F xliM
  416.         include "xlim.asm"
  417. ;*F XLIK
  418.         include "xlik.asm"
  419. ;*L+
  420. ;*D-
  421.         ;DEFR #8F3F-$
  422.         ds #8F3F-$
  423.         db " Область для размещения стека "
  424.         DEFS #9000-$,#CC
  425. ;*L-
  426. ;*F xLI1 ;нач. уст
  427.         include "xli1.asm"
  428.         ORG $
  429. end
  430.  
  431.  
  432.  
  433. LESHA   DISP #B000
  434. ;*F xLESHA
  435.         include "xlesha.asm"
  436.         ent;ENDD
  437. endLESHA
  438.  
  439. ;*P0 *********** Страница 0 ***********
  440.         PAGE 0
  441.         ORG #C000
  442. begin0
  443. ;блок для упаковки BLK2?
  444. ASMBL1  DISP #AB00
  445. ;*F xlix
  446.         include "xlix.asm"
  447.         ent;ENDD
  448.         ORG $
  449. ;блок для упаковки BLK3?
  450. ASMBL2  DISP SwpADR
  451. ;*F XLIC
  452.         include "xlic.asm"
  453. ;*L+
  454.         DEFB $/256,$&0xff ;xlic
  455. ;*L-
  456.         ent;ENDD
  457.         ORG $
  458. ;блок для упаковки BLK4?
  459. ASMBL3  DISP SwpADR
  460. ;*F XLIF
  461.         include "xlif.asm"
  462. ;*F XIOD
  463.         include "xiod.asm"
  464. ;*L+
  465.         DEFB $/256,$&0xff ;xliF+xioD
  466. ;*L-
  467.         ent;ENDD
  468. end0
  469.  
  470.         savebin "blk1.bin",LESHA,endLESHA-LESHA
  471.         savebin "blk2.bin",ASMBL1,ASMBL2-ASMBL1
  472.         savebin "blk3.bin",ASMBL2,ASMBL3-ASMBL2
  473.         savebin "blk4.bin",ASMBL3,end0-ASMBL3
  474.  
  475.         page 0
  476.         savebin "ufo2/ufo2main.dat",beginmain,end-beginmain
  477.         page 1
  478.         savebin "ufo2/ufo21.dat",begin1,end1-begin1
  479.         page 3
  480.         savebin "ufo2/ufo23.dat",begin3,end3-begin3
  481.         page 4
  482.         savebin "ufo2/ufo24.dat",begin4,end4-begin4
  483.         ;page 6
  484.         ;savebin "ufo2/ufo26.dat",begin6,end6-begin6
  485.         page 7
  486.         savebin "ufo2/ufo27.dat",begin7,end7-begin7
  487.        
  488.         LABELSLIST "../../../us/user.l",1
  489.