?login_element?

Subversion Repositories NedoOS

Rev

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