?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. *Z80
  2.  
  3. ;Начальное демо-меню для НЛО-2
  4.  
  5. D$      MAC
  6.         DI
  7.         HALT
  8.         ENDM
  9. PUSH$   MAC
  10.         PUSH    HL
  11.         PUSH    DE
  12.         PUSH    BC
  13.         ENDM
  14. POP$    MAC
  15.         POP     BC
  16.         POP     DE
  17.         POP     HL
  18.         ENDM
  19.  
  20.         ORG #7000 ;->A  полуряд 12345
  21.         ENT $
  22.         DI
  23.         IM 2
  24.         LD A,#71
  25.         LD I,A
  26.         JP TRISTA
  27.         DEFM "  UFO-2 Beginning (c)1996 Mednonogov Slava  "
  28.  
  29.         DEFS #7100-$,#72
  30. STK     DEFS 260,#72
  31.         DEFS #7272-$,#72
  32. INTRPT  PUSH$
  33.         EXX
  34.         PUSH$
  35.         PUSH AF
  36.         EX AF,AF
  37.         PUSH AF
  38.         CALL XMUSIC+6
  39.         POP AF
  40.         EX AF,AF
  41.         POP AF
  42.         POP$
  43.         EXX
  44.         POP$
  45.         EI
  46.         RETI
  47.  
  48. SCR4
  49. *B      ..\DATA\XI4.DTA
  50. SCR2
  51. *B      ..\DATA\XI1.DTA
  52. XMU
  53. *B      ..\DATA\M_UFO.DTA
  54. SCR1
  55. *B      ..\DATA\XI2.DTA
  56. SCR3
  57. *B      ..\DATA\XI3.DTA
  58.  
  59. XMUSIC  EQU 60000
  60. TRISTA  LD (STKR+1),SP
  61.         LD SP,STK-4
  62.         CALL OFFS
  63.         XOR A
  64.         OUT (254),A
  65.         LD HL,XMU+2
  66.         LD DE,XMUSIC-17
  67.         CALL DELPC
  68.         CALL XMUSIC
  69. LO1     EI
  70.         LD HL,SCR3
  71.         LD DE,#4000
  72.         CALL DELPCS
  73.         HALT
  74.         CALL SW5
  75.         LD D,15
  76.         CALL WAIT
  77.         LD HL,SCR2
  78.         LD DE,#C000
  79.         PUSH DE
  80.         CALL DELPCS
  81.         HALT
  82.         CALL SW7
  83.         LD D,28
  84.         CALL WAIT
  85.         HALT
  86.         CALL SW5
  87.         LD D,20
  88.         CALL WAIT
  89.         LD HL,SCR1
  90.         POP DE
  91.         PUSH DE
  92.         CALL DELPCS
  93.         HALT
  94.         CALL SW7
  95.         LD D,24
  96.         CALL WAIT
  97.         HALT
  98.         CALL SW5
  99.         LD D,16
  100.         CALL WAIT
  101.         LD HL,SCR4
  102.         POP DE
  103.         CALL DELPCS
  104.         HALT
  105.         CALL SW7
  106.         LD D,22
  107.         CALL WAIT
  108.         JP LO1
  109.  
  110.  
  111. STKR    LD SP,#1111
  112.         DI
  113.         EX AF,AF
  114.         LD BC,65533 ;мyз off
  115.         LD A,7
  116.         OUT (C),A
  117.         LD BC,49149
  118.         LD A,#FF
  119.         OUT (C),A
  120.         IM 1
  121.         EX AF,AF
  122.         LD C,0
  123.         RRA
  124.         JR C,STK1
  125.         INC C
  126.         RRA
  127.         JR C,STK1
  128.         INC C
  129. STK1    LD A,C
  130.         RET
  131.  
  132. WAIT    LD BC,#F7FE
  133.         IN A,(C)
  134.         CPL
  135.         AND %111
  136.         JP NZ,STKR
  137.         LD B,25
  138. LOw     HALT
  139.         DJNZ LOw
  140.         LD B,#7F
  141.         IN A,(C)
  142.         AND 1
  143.         RET Z
  144.         DEC D
  145.         JR NZ,WAIT
  146.         RET Z
  147.  
  148. DELPCS  PUSH DE
  149.         INC HL
  150.         INC HL
  151.         CALL DELPC
  152.         POP HL
  153.         LD A,#18
  154.         ADD A,H
  155.         LD H,A
  156.         LD A,3
  157. LO02    LD B,0
  158. LO00    SET 6,(HL)
  159.         INC HL
  160.         DJNZ LO00
  161.         DEC A
  162.         JR NZ,LO02
  163.         RET Z
  164.  
  165. ;Декомпрессор
  166. ;HL-откуда DE-куда
  167. DLPCB   DEFS 4
  168. DELPC   PUSH DE
  169.         LD DE,DLPCB
  170.         LD BC,4
  171.         LDIR
  172.         POP DE
  173. xpD0    LD A,(HL)
  174.         BIT 7,A
  175.         JR NZ,xpD1
  176.         PUSH AF
  177.         AND 1
  178.         LD B,A
  179.         LD A,(HL)
  180.         AND #E
  181.         RRCA
  182.         ADD A,3
  183.         LD C,A
  184. xpD0X   INC HL
  185.         LD A,E
  186.         SUB (HL)
  187.         INC HL
  188.         PUSH HL
  189.         LD L,A
  190.         LD A,D
  191.         SBC A,B
  192.         LD H,A
  193.         LD B,0
  194.         LDIR
  195. D00     POP HL
  196.         POP AF
  197.         RLCA
  198.         RLCA
  199.         RLCA
  200.         RLCA
  201.         AND #F
  202.         JR Z,xpD0
  203.         JR xpDRR
  204. xpD1    INC HL
  205.         BIT 6,A
  206.         JR NZ,xpD2
  207.         AND #3F
  208.         JR Z,xpDEND
  209. xpDRR   LD C,A
  210. xpDLO   LD A,(HL) ;неразрушающий
  211.         RRCA
  212.         LD (DE),A
  213.         INC DE
  214.         INC HL
  215.         DEC C
  216.         JP NZ,xpDLO
  217.         JR xpD0
  218. xpD2    AND #3F
  219.         ADD A,4
  220.         LD C,A
  221.         LD A,(HL)
  222.         PUSH AF
  223.         AND #F
  224.         LD B,A
  225.         JR xpD0X
  226. xpDEND  LD HL,DLPCB
  227.         LD C,4
  228.         LDIR
  229.         RET
  230.  
  231. SCR     EQU #C000
  232. OFFS    CALL    SW7
  233.         LD      DE,SCR+#1AFE
  234.         LD      HL,SCR+#1AFF
  235.         LD      BC,768
  236.         LD      (HL),0
  237.         LDDR
  238.         LD      BC,6143
  239.         LD      (HL),255
  240.         LDDR
  241.         RET
  242.  
  243. SW7     LD      A,%11111
  244. SWW     LD BC,#7FFD
  245.         OUT (C),A
  246.         RET
  247. SW5     LD A,%10111
  248.         JR SWW
  249.        
  250.         DEFS 5000,#FF
  251.  
  252.         DEFM " MADE BY COOPER FEET        "
  253.  
  254.  
  255.