home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / BEEHIVE / GAMES / NEWNANOC.ARK / NANOCREV.INC < prev    next >
Text File  |  1991-12-23  |  13KB  |  1,121 lines

  1. LEFT:    LD    HL,(YPOS)
  2.     LD    DE,2
  3.     ADD    HL,DE
  4.     LD    (DESTIN),HL
  5.     CALL    ISGEM
  6.     LD    DE,-1
  7.     CALL    ISWALL
  8.     RET    C
  9.     LD    DE,-65
  10.     CALL    ISWALL
  11.     RET    C    
  12.     LD    HL,(SCPOS)
  13.     LD    DE,-16
  14.     ADD    HL,DE
  15.     LD    (SCPOS),HL
  16.     LD    A,(CCFL)
  17.     CP    1
  18.     JP    Z,LCONV
  19.     LD    A,'L'
  20.     LD    (DIR),A
  21.     LD    (CDIR),A
  22.     CALL    GOSCN
  23.     CALL    COLBEH
  24.     CALL    MOVE
  25.     CALL    PRINT
  26.     CALL    CLICK
  27.     RET
  28. LCONV:    LD    A,'L'
  29.     LD    (CDIR),A
  30.     LD    A,(DIR)
  31.     CP    'U'
  32.     JP    NZ,SOK
  33.     LD    A,'F'
  34.     LD    (DIR),A
  35.     CALL    MOVE
  36. SOK:    CALL    GOSCN
  37.     CALL    COLBEH
  38.     CALL    PRINT
  39.     RET
  40.  
  41. RIGHT:  LD    HL,(YPOS)
  42.     LD    DE,-2
  43.     ADD    HL,DE
  44.     LD    (DESTIN),HL
  45.     CALL    ISGEM
  46.     LD    DE,2
  47.     CALL    ISWALL
  48.     RET    C
  49.     LD    DE,-62
  50.     CALL    ISWALL
  51.     RET    C
  52.     LD    HL,(SCPOS)
  53.     LD    DE,16
  54.     ADD    HL,DE
  55.     LD    (SCPOS),HL
  56.     LD    A,(CCFL)
  57.     CP    1
  58.     JP    Z,RCONV
  59.     LD    A,'R'
  60.     LD    (DIR),A
  61.     LD    (CDIR),A
  62.     CALL    GOSCN
  63.     CALL    COLBEH
  64.     CALL    MOVE
  65.     CALL    PRINT
  66.     CALL    CLICK
  67.     RET
  68. RCONV:    LD    A,'R'
  69.     LD    (CDIR),A
  70.     LD    A,(DIR)
  71.     CP    'U'
  72.     JP    NZ,SOK1
  73.     LD    A,'F'
  74.     LD    (DIR),A
  75.     CALL    MOVE
  76. SOK1:    CALL    GOSCN
  77.     CALL    COLBEH
  78.     CALL    PRINT
  79.     RET
  80.  
  81. UP:    LD    A,(DUMMY2)
  82.     CP    'A'+80H
  83.     JP    NZ,ROPE
  84.     LD    A,(DUMMY2+1)
  85.     CP    'B'+80H
  86.     RET    NZ
  87.     LD    A,'U'
  88.     LD    (DIR),A
  89.     LD    (CDIR),A
  90.     LD    HL,(YPOS)
  91.     LD    (DESTIN),HL
  92.     CALL    ABOVE
  93.     RET    Z
  94.     CALL    CLICK
  95.     CALL    MOVE
  96.     CALL    GOSCN
  97.     CALL    COLBEH
  98.     CALL    PRINT
  99.     RET
  100. ROPE:    LD    A,(DUMMY2)
  101.     CP    'a'+80H
  102.     RET    NZ
  103.     LD    A,(DUMMY2+1)
  104.     CP    'b'+80H
  105.     RET    NZ
  106.     LD    A,'F'
  107.     LD    (DIR),A
  108.     LD    (CDIR),A
  109.     LD    HL,(YPOS)
  110.     LD    (DESTIN),HL
  111.     CALL    ABOVE
  112.     RET    Z
  113.     CALL    CLICK
  114.     CALL    MOVE
  115.     CALL    GOSCN
  116.     CALL    COLBEH
  117.     CALL    PRINT
  118.     RET
  119.  
  120. DOWN:   LD    HL,(YPOS)
  121.     LD    (DESTIN),HL
  122.     LD    DE,64
  123.     ADD    HL,DE
  124.     LD    A,(HL)
  125.     CP    'A'+80H
  126.     JP    NZ,LDOWN
  127.     INC    HL
  128.     LD    A,(HL)
  129.     CP    'B'+80H
  130.     RET    NZ
  131.     DEC    HL
  132.     LD    (YPOS),HL
  133.     CALL    CLICK
  134.     LD    A,'U'
  135.     LD    (DIR),A
  136.     LD    (CDIR),A
  137.     CALL    MOVE
  138.     CALL    GOSCN
  139.     CALL    COLBEH
  140.     CALL    PRINT
  141.     LD    HL,(YPOS)
  142.     LD    DE,62432
  143.     CALL    BIGCP
  144.     JP    C,DWNLEV
  145.     RET
  146. LDOWN:    LD    A,(HL)
  147.     CP    'a'+128
  148.     RET    NZ
  149.     INC    HL
  150.     LD    A,(HL)
  151.     CP    'b'+128
  152.     RET    NZ
  153.     DEC    HL
  154.     LD    (YPOS),HL
  155.     CALL    CLICK
  156.     LD    A,'F'
  157.     LD    (DIR),A
  158.     LD    (CDIR),A
  159.     CALL    MOVE
  160.     CALL    GOSCN
  161.     CALL    COLBEH
  162.     CALL    PRINT
  163.     LD    HL,(YPOS)
  164.     LD    DE,62432
  165.     CALL    BIGCP
  166.     JP    C,DWNLEV
  167.     RET
  168.  
  169. ISWALL: LD    HL,(YPOS)
  170.     ADD    HL,DE
  171.     LD    A,(HL)
  172.     PUSH    HL
  173.     LD    HL,SOLID
  174.     AND    7FH
  175.     LD    BC,4
  176.     CPIR
  177.     POP    HL
  178.     JP    NZ,RECF
  179.     XOR    A
  180.     LD    (JUMPC),A
  181.     SCF
  182.     RET
  183. RECF:    XOR    A
  184.     RET
  185.  
  186. ABOVE:    CALL    ISGEM
  187.     XOR    A
  188.     LD    (USEL),A
  189.     LD    HL,(YPOS)
  190.     LD    DE,-128
  191.     ADD    HL,DE
  192.     LD    A,(HL)
  193.     LD    HL,SOLID
  194.     AND    7FH
  195.     LD    BC,4
  196.     CPIR
  197.     RET    Z
  198.     LD    HL,(YPOS)
  199.     LD    DE,-127
  200.     ADD    HL,DE
  201.     LD    A,(HL)
  202.     LD    HL,SOLID
  203.     AND    7FH
  204.     LD    BC,4
  205.     CPIR
  206.     RET    Z
  207.     LD    HL,(YPOS)
  208.     LD    DE,-64
  209.     ADD    HL,DE
  210.     LD    (YPOS),HL
  211.     LD    DE,61536
  212.     CALL    BIGCP
  213.     JP    C,UPLEV
  214.     LD    A,'F'
  215.     LD    (CDIR),A
  216.     LD    A,1
  217.     LD    (USEL),A
  218.     RET
  219.  
  220. UNDER:  CALL    ISGEM
  221.     LD    HL,(YPOS)
  222.     LD    DE,64
  223.     ADD    HL,DE
  224.     LD    A,(HL)
  225.     AND    7FH
  226.     LD    HL,STAND
  227.     LD    BC,18
  228.     CPIR
  229.     JP    Z,ELSE
  230.     LD    HL,(YPOS)
  231.     LD    DE,65
  232.     ADD    HL,DE
  233.     LD    A,(HL)
  234.     AND    7FH
  235.     LD    HL,STAND
  236.     LD    BC,18
  237.     CPIR
  238.     JP    Z,ELSE
  239.     LD    HL,(YPOS)    ; SORE THUMB
  240.     LD    DE,64
  241.     ADD    HL,DE
  242.     LD    A,(HL)
  243.     AND    7FH
  244.     CP    'X'
  245.     JP    NZ,MO
  246.     LD    HL,64896
  247.     CALL    ISUND
  248.     JP    C,MO
  249.     RET
  250. MO:    LD    HL,(YPOS)
  251.     LD    DE,64
  252.     ADD    HL,DE
  253.     LD    A,(HL)
  254.     AND    7FH
  255.     CP    'Y'
  256.     JP    NZ,MO1
  257.     LD    HL,64912
  258.     CALL    ISUND
  259.     JP    C,MO1
  260.     RET
  261. MO1:    LD    HL,(YPOS)
  262.     LD    DE,65
  263.     ADD    HL,DE
  264.     LD    A,(HL)
  265.     AND    7FH
  266.     CP    'Y'
  267.     JP    NZ,MO2
  268.     LD    HL,64912
  269.     CALL    ISUND
  270.     JP    C,MO2
  271.     RET
  272. MO2:    LD    HL,(YPOS)
  273.     LD    DE,65
  274.     ADD    HL,DE
  275.     LD    A,(HL)
  276.     AND    7FH
  277.     CP    'X'
  278.     JP    NZ,FALD
  279.     LD    HL,64896
  280.     CALL    ISUND
  281.     JP    C,FALD
  282.     RET
  283. FALD:    LD    HL,(YPOS)
  284.     LD    (DESTIN),HL
  285.     LD    DE,64
  286.     ADD    HL,DE
  287.     LD    (YPOS),HL
  288.     LD    A,'F'
  289.     LD    (DIR),A
  290.     LD    (CDIR),A
  291.     CALL    GOSCN
  292.     CALL    COLBEH
  293.     CALL    MOVE
  294.     CALL    PRINT
  295.     LD    HL,(SDEL)
  296.     ADD    HL,HL
  297.     PUSH    HL
  298.     POP    BC
  299.     CALL    DELAY
  300.     LD    A,(PRINT0)
  301.     INC    A
  302.     LD    (PRINT0),A
  303.     LD    C,10
  304.     LD    B,A
  305.     CALL    MUSIC
  306.     LD    HL,(YPOS)
  307.     LD    DE,62432
  308.     CALL    BIGCP
  309.     JP    C,DWNLEV
  310.     CALL    MOVSPI
  311.     JP    UNDER
  312. XON:    LD    A,1
  313.     LD    (ARG),A
  314.     RET
  315. XOFF:    XOR    A
  316.     LD    (ARG),A
  317.     RET
  318. YON:    LD    A,1
  319.     LD    (ARG1),A
  320.     RET
  321. YOFF:    XOR    A
  322.     LD    (ARG1),A
  323.     RET
  324.  
  325. ELSE:    LD    HL,(YPOS)
  326.     LD    DE,64
  327.     ADD    HL,DE
  328.     LD    A,(HL)
  329.     AND    7FH
  330.     LD    HL,CLEFT
  331.     LD    BC,5
  332.     CPIR
  333.     JP    Z,OLEFT
  334.     LD    HL,(YPOS)
  335.     LD    DE,65
  336.     ADD    HL,DE
  337.     LD    A,(HL)
  338.     AND    7FH
  339.     LD    HL,CLEFT
  340.     LD    BC,5
  341.     CPIR
  342.     JP    Z,OLEFT
  343.     LD    HL,(YPOS)
  344.     LD    DE,64
  345.     ADD    HL,DE
  346.     LD    A,(HL)
  347.     AND    7FH
  348.     LD    HL,CRIGHT
  349.     LD    BC,5
  350.     CPIR
  351.     JP    Z,ORIGHT
  352.     LD    HL,(YPOS)
  353.     LD    DE,65
  354.     ADD    HL,DE
  355.     LD    A,(HL)
  356.     AND    7FH
  357.     LD    HL,CRIGHT
  358.     LD    BC,5
  359.     CPIR
  360.     JP    Z,ORIGHT
  361.     RET
  362.  
  363. OLEFT:    LD    A,(STEP)
  364.     INC    A
  365.     LD    (STEP),A
  366.     CP    6
  367.     RET    NZ
  368.     XOR    A
  369.     LD    (STEP),A
  370.     LD    A,1
  371.     LD    (CCFL),A
  372.     JP    LEFT
  373.     RET
  374. ORIGHT:    LD    A,(STEP)
  375.     INC    A
  376.     LD    (STEP),A
  377.     CP    6
  378.     RET    NZ
  379.     XOR    A
  380.     LD    (STEP),A
  381.     LD    A,1
  382.     LD    (CCFL),A
  383.     JP    RIGHT
  384.     RET
  385. ISUND:    XOR    A
  386.     LD    A,(HL)
  387.     CP    0
  388.     RET    NZ
  389.     SCF
  390.     RET
  391.  
  392. MOVE:   LD    A,(DIR)
  393.     CP    'R'
  394.     JP    Z,RIGH
  395.     CP    'F'
  396.     JP    Z,FALL
  397.     CP    'U'
  398.     JP    Z,UPDOWN
  399.     LD    A,(ANIM)
  400.     CP    2
  401.     JP    Z,NUP
  402.     LD    A,2
  403.     LD    (ANIM),A
  404.     LD    HL,(NTL2)
  405.     LD    (DUMMY),HL
  406.     LD    HL,(NBL2)
  407.     LD    (DUMMY1),HL
  408.     JP    OK
  409. FALL:   LD    HL,(NTS)
  410.     LD    (DUMMY),HL
  411.     LD    HL,(NBS)
  412.     LD    (DUMMY1),HL
  413.     JP    OK
  414. UPDOWN: LD    A,(ANIM)
  415.     CP    1
  416.     JP    NZ,NUP2
  417.     LD    A,2
  418.     LD    (ANIM),A
  419.     LD    HL,(NTU2)
  420.     LD    (DUMMY),HL
  421.     LD    HL,(NBU2)
  422.     LD    (DUMMY1),HL
  423.     JP    OK
  424. NUP2:   LD    A,1
  425.     LD    (ANIM),A
  426.     LD    HL,(NTU1)
  427.     LD    (DUMMY),HL
  428.     LD    HL,(NBU1)
  429.     LD    (DUMMY1),HL
  430.     JP    OK
  431. NUP:    LD    A,1
  432.     LD    (ANIM),A
  433.     LD    HL,(NTL1)
  434.     LD    (DUMMY),HL
  435.     LD    HL,(NBL1)
  436.     LD    (DUMMY1),HL
  437. OK:    RET
  438. RIGH:   LD    A,(ANIM)
  439.     CP    2
  440.     JP    Z,NUP1
  441.     LD    A,2
  442.     LD    (ANIM),A
  443.     LD    HL,(NTR2)
  444.     LD    (DUMMY),HL
  445.     LD    HL,(NBR2)
  446.     LD    (DUMMY1),HL
  447.     JP    OK
  448. NUP1:   LD    A,1
  449.     LD    (ANIM),A
  450.     LD    HL,(NTR1)
  451.     LD    (DUMMY),HL
  452.     LD    HL,(NBR1)
  453.     LD    (DUMMY1),HL
  454.     JP    OK
  455.  
  456. CLICK:  LD    A,(DIR)
  457.     CP    'L'
  458.     JP    Z,NOTR
  459.     CP    'R'
  460.     JP    Z,NOTL
  461.     LD    B,50
  462.     LD    C,2
  463.     JP    GMUS
  464. NOTL:   LD    B,75
  465.     LD    C,2
  466.     JP    GMUS
  467. NOTR:   LD    B,100
  468.     LD    C,2
  469. GMUS:   CALL    MUSIC
  470.     RET
  471.  
  472. JUMP:   CALL    JUMPS
  473.     JP    BIGLOO
  474. JUMPS:  LD    A,(JUMPC)
  475.     DEC    A
  476.     LD    (JUMPC),A
  477.     LD    A,(JUMPD)
  478.     CP    'L'
  479.     CALL    Z,LEFT
  480.     LD    A,(JUMPD)
  481.     CP    'R'
  482.     CALL    Z,RIGHT
  483.     CP    ' '
  484.     RET    NZ
  485.     LD    A,'F'
  486.     LD    (CDIR),A
  487.     LD    HL,(YPOS)
  488.     LD    (DESTIN),HL
  489.     CALL    ABOVE
  490.     LD    A,(USEL)
  491.     CP    1
  492.     JP    NZ,INDI
  493.     LD    A,'F'
  494.     LD    (DIR),A
  495.     CALL    MOVE
  496. INDI:    CALL    GOSCN
  497.     CALL    COLBEH
  498.     CALL    PRINT
  499.     RET
  500.  
  501. GOJUMP: PUSHALL
  502.     LD    B,50
  503.     LD    C,20
  504.     CALL    MUSIC
  505.     POPALL
  506.     LD    A,' '
  507.     LD    (JUMPD),A
  508.     CALL    JUMPS
  509.     LD      A,8
  510.     LD      (JUMPC),A
  511.     LD      A,44
  512.     CALL    INKEY
  513.     JP      Z,LEFNT
  514.     CALL    JOYKEY
  515.     BIT    2,A
  516.     JP    NZ,LEFNOT
  517. LEFNT:    LD      A,'L'
  518.     LD      (JUMPD),A
  519.     JP      BIGLOO
  520. LEFNOT: LD      A,46
  521.     CALL    INKEY
  522.     JP      Z,RIGNT
  523.     CALL    JOYKEY
  524.     BIT    3,A
  525.     JP    NZ,RIGNOT
  526. RIGNT:    LD      A,'R'
  527.     LD      (JUMPD),A
  528.     JP      BIGLOO
  529. RIGNOT: LD      A,0
  530.     LD      (JUMPC),A
  531.     LD    A,' '
  532.     LD    (JUMPD),A
  533.     LD    BC,500H
  534.     CALL    DELAY
  535.     JP      BIGLOO
  536.  
  537. GOSCN:  LD    A,(ACOUNT)
  538.     ADD    A,10
  539.     LD    (ACOUNT),A
  540.     LD    A,(BCOUNT)
  541.     ADD    A,10
  542.     LD    (BCOUNT),A
  543.     LD    A,(LBRID)
  544.     ADD    A,4
  545.     LD    (LBRID),A
  546.     LD    A,(LCHAIN)
  547.     ADD    A,6
  548.     LD    (LCHAIN),A
  549.     LD    A,(CDIR)
  550.     CP    'U'
  551.     JP    Z,SGO
  552.     CP    'F'
  553.     JP    Z,SGO
  554.     JP    LSC
  555. SGO:    CALL    MIDSLI
  556.     LD    BC,100
  557.     CALL    DELAY
  558.     JP    MCOLR
  559. MIDSLI:    LD    HL,(SCPOS)
  560.     LD    DE,32*16
  561.     ADD    HL,DE
  562.     PUSH    HL
  563.     POP    BC
  564. MIDSL1:    LD    HL,61472
  565.     LD    DE,2
  566. HERPUS:    LD    A,16
  567. VEGIE1:    PUSH    AF
  568.     LD    A,(BC)
  569.     LD    (HL),A
  570.     POP    AF
  571.     PUSH    DE
  572.     LD    DE,64
  573.     ADD    HL,DE
  574.     POP    DE
  575.     INC    BC
  576.     DEC    A
  577.     JP    NZ,VEGIE1
  578.     PUSH    DE
  579.     LD    DE,-1024
  580.     ADD    HL,DE
  581.     POP    DE
  582.     INC    HL
  583.     DEC    DE
  584.     LD    A,D
  585.     OR    E
  586.     JP    NZ,HERPUS
  587.     RET
  588. LSC:    LD    A,(CDIR)
  589.     CP    'R'
  590.     JP    Z,BEAR
  591.     LD    HL,(SCPOS)
  592.     LD    DE,528
  593.     ADD    HL,DE
  594.     PUSH    HL
  595.     POP    BC
  596.     CALL    MIDSL1
  597.     LD    HL,63486-1024
  598.     LD    DE,63487-1024
  599.     LD    BC,1024
  600.     LDDR
  601.     LD    BC,(SCPOS)
  602.     LD    HL,61440
  603.     LD    DE,2
  604.     JP    HERP
  605. BEAR:    LD    HL,(SCPOS)
  606.     LD    DE,496
  607.     ADD    HL,DE
  608.     PUSH    HL
  609.     POP    BC
  610.     CALL    MIDSL1
  611.     LD    HL,61441
  612.     LD    DE,61440
  613.     LD    BC,1024
  614.     LDIR
  615.     LD    HL,(SCPOS)
  616.     LD    DE,62*16
  617.     ADD    HL,DE
  618.     PUSH    HL
  619.     POP    BC
  620.     LD    HL,61502
  621.     LD    DE,2
  622. HERP:   LD    A,16
  623. VEGIE:    PUSH    AF
  624.     LD    A,(BC)
  625.     LD    (HL),A
  626.     POP    AF
  627.     PUSH    DE
  628.     LD    DE,64
  629.     ADD    HL,DE
  630.     POP    DE
  631.     INC    BC
  632.     DEC    A
  633.     JP    NZ,VEGIE
  634.     PUSH    DE
  635.     LD    DE,-1024
  636.     ADD    HL,DE
  637.     POP    DE
  638.     INC    HL
  639.     DEC    DE
  640.     LD    A,D
  641.     OR    E
  642.     JP    NZ,HERP
  643. MCOLR:    LD    A,(COLFLG)
  644.     CP    255
  645.     JP    NZ,MARIO
  646.     LD    A,64
  647.     OUT    (8),A
  648.     LD    A,(CDIR)
  649.     CP    'L'
  650.     JP    Z,CLEF
  651.     CP    'R'
  652.     JP    Z,CRIG
  653.     RET
  654. CLEF:   LD    HL,65534-1024
  655.     LD    DE,65535-1024
  656.     LD    BC,1024
  657.     LDDR
  658.     XOR    A
  659.     OUT    (8),A
  660.     LD    HL,61440
  661.     CALL    COLSLI
  662.     LD    HL,61440+33
  663.     CALL    COLSLI
  664.     LD    HL,61440+34
  665.     CALL    COLSLI
  666.     RET
  667. CRIG:   LD    HL,63489
  668.     LD    DE,63488
  669.     LD    BC,1024
  670.     LDIR
  671.     XOR    A
  672.     OUT    (8),A
  673.     LD    HL,61503
  674.     CALL    COLSLI
  675.     LD    HL,61440+33
  676.     CALL    COLSLI
  677.     LD    HL,61440+34
  678.     CALL    COLSLI
  679.     RET
  680. MARIO:    LD    BC,100H
  681.     CALL    DELAY
  682.     RET
  683.  
  684. GOSCN1:    LD    BC,(SCPOS)
  685.     LD    HL,61440
  686.     LD    DE,64
  687. VEG1:   LD    A,16
  688. VEG:    PUSH    AF
  689.     LD    A,(BC)
  690.     LD    (HL),A
  691.     POP    AF
  692.     PUSH    DE
  693.     LD    DE,64
  694.     ADD    HL,DE
  695.     POP    DE
  696.     INC    BC
  697.     DEC    A
  698.     JP    NZ,VEG
  699.     PUSH    DE
  700.     LD    DE,-1024
  701.     ADD    HL,DE
  702.     POP    DE
  703.     INC    HL
  704.     DEC    DE
  705.     LD    A,D
  706.     OR    E
  707.     JP    NZ,VEG1
  708.     RET
  709.  
  710. COLBEH:    LD    HL,(DESTIN)
  711.     LD    BC,2
  712.     CALL    COLSC
  713.     LD    HL,(DESTIN)
  714.     LD    DE,64
  715.     SBC    HL,DE
  716.     LD    BC,2
  717.     CALL    COLSC
  718.     RET
  719.  
  720. PRINT:    LD    BC,(YPOS)
  721.     PUSH    IY
  722.     PUSH    IX
  723.     PUSH    DE
  724.     PUSH    HL
  725.     PUSH    AF
  726.     LD    DE,62999
  727.     LD    IX,63004
  728.     LD    IY,63008
  729.     LD    A,(BC)
  730.     CALL    CHECK
  731.     INC    BC
  732.     LD    A,(BC)
  733.     CALL    CHECK
  734.     LD    HL,-65
  735.     ADD    HL,BC
  736.     PUSH    HL
  737.     POP    BC
  738.     LD    A,(BC)
  739.     CALL    CHECK
  740.     INC    BC
  741.     LD    A,(BC)
  742.     CALL    CHECK
  743.     POP    AF
  744.     POP    HL
  745.     POP    DE
  746.     POP    IX
  747.     POP    IY
  748.     RET
  749. CHECK:  CALL    CHECK2
  750.     INC    DE
  751.     INC    IX
  752.     INC    IY
  753.     RET    Z
  754.     LD    A,(COLFLG)
  755.     CP    255
  756.     JP    NZ,ALICE
  757.     LD    A,64
  758.     OUT    (8),A
  759.     SET    3,B
  760.     LD    A,(BC)
  761.     LD    (IY),A
  762.     INC    IY
  763.     INC    IY
  764.     INC    IY
  765.     INC    IY
  766.     LD    A,(IY)
  767.     LD    (BC),A
  768.     DEC    IY
  769.     DEC    IY
  770.     DEC    IY
  771.     DEC    IY
  772.     RES    3,B
  773.     XOR    A
  774.     OUT    (8),A
  775. ALICE:    LD    A,(BC)
  776.     LD    (IX),A
  777.     LD    A,(DE)
  778.     LD    (BC),A
  779.     RET
  780. CHECK2: AND    7FH
  781.     PUSH    HL
  782.     PUSH    BC
  783.     LD    B,59
  784.     LD    HL,TESBEH
  785. LOOP59:    CP    (HL)
  786.     JP    Z,BOWLS
  787.     INC    HL
  788.     DJNZ    LOOP59
  789.     CP    255        ; RESET "Z" FLAG
  790. BOWLS:    POP    BC
  791.     POP    HL
  792.     RET
  793.  
  794. MOVSPI:    LD    A,(CURLEV)
  795.     CP    11
  796.     JP    Z,ALL
  797.     LD    A,(SPISTE)
  798.     INC    A
  799.     CP    2
  800.     JP    NZ,NOTWO
  801.     XOR    A
  802. NOTWO:    LD    (SPISTE),A
  803.     CP    1
  804.     RET    NZ
  805. ALL:    CALL    ISKILL
  806.     CALL    ISDEAD
  807.     LD    A,(ROKNUM)
  808.     CP    0
  809.     RET    Z
  810.     LD    IY,ROKSP
  811. ROCKY1:    LD    L,(IY)
  812.     LD    H,(IY+1)
  813.     PUSH    IY
  814.     PUSH    AF
  815.     PUSH    HL
  816.     CALL    CHEC
  817.     CALL    Z,FALL1
  818.     POP    HL
  819.     POP    AF
  820.     POP    IY
  821.     INC    IY
  822.     INC    IY
  823.     INC     IY
  824.     DEC    A
  825.     JP    NZ,ROCKY1
  826.     RET
  827. FALL1:    PUSH    HL
  828.     LD    DE,16
  829.     LD    A,(IY+2)
  830.     CP    1
  831.     LD    (USEL),A
  832.     JP     Z,KINKO1
  833. KINKO2:    ADD    HL,DE
  834.     ADD    HL,DE
  835.     CALL    CP1
  836.     JP    NZ,ENMOV1
  837.     INC    HL
  838.     CALL    CP1
  839.     JP    Z,ENMOV1
  840.     SBC    HL,DE
  841.     SBC    HL,DE
  842.     DEC    HL
  843.     PUSH    HL
  844.     LD    (HL),160
  845.     ADD    HL,DE
  846.     LD    (HL),'E'+128
  847.     ADD    HL,DE
  848.     LD    (HL),'G'+128
  849.     POP    HL
  850.     ADD    HL,DE
  851.     JP    GOOOP
  852. KINKO1:    SBC    HL,DE
  853.     CALL    CP1
  854.     JP    NZ,ENMOV2
  855.     INC    HL
  856.     CALL    CP1
  857.     JP    Z,ENMOV2
  858.     DEC    HL
  859.     LD    (HL),'E'+128
  860.     PUSH    HL
  861.     ADD    HL,DE
  862.     LD    (HL),'G'+128
  863.     ADD    HL,DE
  864.     LD    (HL),160
  865.     POP    HL
  866.     JP    GOOOP
  867. ENMOV1:    POP    HL
  868.     LD    (IY+2),1
  869.     RET
  870. ENMOV2:    POP    HL
  871.     LD    (IY+2),2
  872.     RET
  873. GOOOP:    LD    (IY),L
  874.     LD    (IY+1),H
  875.     CALL    PRISPI
  876.     POP    HL
  877.     RET
  878. CP1:    LD    A,(HL)
  879.     CP    32
  880.     RET    Z
  881.     CP    160
  882.     RET
  883. NOSPI:    LD    IX,ROKSP
  884. NOSPI1:    LD    D,(IX+1)
  885.     LD    E,(IX)
  886.     CALL    CRAZ    
  887.     JP    Z,JESE
  888.     LD    BC,3
  889.     ADD    IX,BC
  890.     JP    NOSPI1
  891. JESE:    LD    (IX),0
  892.     LD    (IX+1),0
  893.     RET
  894. CHEC:    PUSH    AF
  895.     XOR    A
  896.     CP    H
  897.     JP    NZ,ENF
  898.     CP    L
  899.     JP    NZ,ENF
  900.     POP    AF
  901.     INC    A    
  902.     CP    0
  903.     RET
  904. ENF:    POP    AF
  905.     CP    A
  906.     RET
  907. PUTIN1:    LD    HL,ROKSP
  908.     LD    DE,ROKSP+1
  909.     LD    BC,239
  910.     LD    (HL),0
  911.     LDIR
  912.     XOR    A
  913.     LD    (ROKNUM),A
  914.     LD    HL,13000
  915.     LD    IY,ROKSP
  916.     LD    B,0
  917.     LD    A,'E'+128
  918. COKLOO:    CP    (HL)
  919.     CALL    Z,MORSPI
  920.     INC    HL
  921.     LD    A,1AH
  922.     CP    (HL)
  923.     JP    Z,ENDE
  924.     LD    A,'E'+128
  925.     JP    COKLOO
  926. MORSPI:    LD    (IY),L
  927.     INC    IY
  928.     LD    (IY),H
  929.     INC    IY
  930.     LD    (IY),1    
  931.     INC    IY
  932.     INC    B
  933.     RET
  934. ENDE:    LD    A,B
  935.     LD    (ROKNUM),A
  936.     RET
  937. CRAZ:    LD    A,H
  938.     CP    D
  939.     RET    NZ
  940.     LD    A,L
  941.     CP    E
  942.     RET
  943.  
  944. PRISPI:    PUSH    HL
  945.     EX    DE,HL
  946.     LD    HL,(SCPOS)
  947.     PUSH    DE
  948.     SBC    HL,DE
  949.     POP    DE
  950.     JP    NC,MINUS
  951.     LD    HL,(SCPOS)
  952.     PUSH    DE
  953.     LD    DE,1024
  954.     ADD    HL,DE
  955.     POP    DE
  956.     PUSH    DE
  957.     SBC    HL,DE
  958.     POP    DE
  959.     JP    C,MINUS
  960.     POP    DE
  961.     PUSH    DE
  962.     EX    DE,HL
  963.     LD    DE,(SCPOS)
  964.     PUSH    HL
  965.     SBC    HL,DE
  966.     CALL    DIV16
  967.     PUSH    BC
  968.     CALL    TESEND
  969.     LD    A,(63486)
  970.     CP    0
  971.     JP    NZ,RABID
  972.     CALL    TESEN
  973. RABID:    POP    BC
  974.     PUSH    BC
  975.     ADD    HL,HL
  976.     ADD    HL,HL
  977.     ADD    HL,HL
  978.     ADD    HL,HL
  979.     ADD    HL,HL
  980.     ADD    HL,HL
  981.     PUSH    HL
  982.     POP    DE
  983.     LD    HL,61440
  984.     ADD    HL,DE
  985.     ADD    HL,BC
  986.     POP    BC
  987.     POP    DE
  988.     PUSH    BC
  989.     EX    DE,HL
  990.     LD    A,(63486)
  991.     CP    1
  992.     JP    Z,OOUT
  993.     CP    2
  994.     JP    Z,OOUT2
  995.     PUSH    DE
  996.     LD    A,(USEL)
  997.     CP    1
  998.     JP    Z,TRASH
  999.     LD    BC,-16
  1000.     ADD    HL,BC
  1001.     DEC    DE
  1002.     LD    A,(HL)
  1003.     LD    (DE),A
  1004.     LD    BC,16
  1005.     ADD    HL,BC
  1006.     INC    DE
  1007. TRASH:    LD    A,(HL)
  1008.     LD    (DE),A
  1009.     LD    BC,16
  1010.     ADD    HL,BC
  1011.     INC    DE
  1012.     LD    A,(HL)
  1013.     LD    (DE),A
  1014.     LD    A,(USEL)
  1015.     CP    1
  1016.     JP    NZ,OGRE
  1017.     LD    BC,16
  1018.     ADD    HL,BC
  1019.     INC    DE
  1020.     LD    A,(HL)
  1021.     LD    (DE),A
  1022. OGRE:    POP    DE
  1023.     POP    HL
  1024.     LD    A,(COLFLG)
  1025.     CP    255
  1026.     JP    NZ,MINUS
  1027.     SET    3,D
  1028.     LD    A,64
  1029.     OUT    (8),A
  1030.     LD    A,(CTABL+69)
  1031.     LD    (DE),A
  1032.     INC    DE
  1033.     LD    (DE),A
  1034.     XOR    A
  1035.     OUT    (8),A
  1036. MINUS:    POP    HL
  1037.     RET
  1038.  
  1039. OOUT:    LD    A,160
  1040.     LD    (DE),A
  1041.     DEC    DE
  1042.     LD    BC,-16
  1043.     ADD    HL,BC
  1044.     LD    A,(HL)
  1045.     LD    (DE),A
  1046.     POP    HL
  1047.     JP    MINUS
  1048.  
  1049. OOUT2:    LD    BC,16
  1050.     ADD    HL,BC
  1051.     LD    A,160
  1052.     INC    DE
  1053.     LD    (DE),A
  1054.     INC    DE
  1055.     LD    BC,16
  1056.     ADD    HL,BC
  1057.     LD    A,(HL)
  1058.     LD    (DE),A
  1059.     POP    HL
  1060.     JP    MINUS
  1061.  
  1062. TESEND:    PUSHALL
  1063.     PUSH    BC
  1064.     POP    HL
  1065.     LD    DE,62
  1066.     CALL    BIGCP
  1067.     JP    C,OHOH
  1068.     LD    DE,0
  1069.     CALL    BIGCP
  1070.     JP    C,BGIN
  1071.     XOR    A
  1072.     LD    (63486),A
  1073.     JP    TEND
  1074. OHOH:    LD    A,1
  1075.     LD    (63486),A
  1076.     JP    TEND
  1077. BGIN:    LD    A,2
  1078.     LD    (63486),A
  1079. TEND:    POPALL
  1080.     RET
  1081.  
  1082. TESEN:    PUSHALL
  1083.     PUSH    BC
  1084.     POP    HL
  1085.     LD    DE,63
  1086.     CALL    BIGCP
  1087.     JP    C,OHOH1
  1088.     LD    DE,0
  1089.     CALL    BIGCP
  1090.     JP    C,GOOK
  1091.     XOR    A
  1092.     LD    (63486),A
  1093.     JP    TEND1
  1094. OHOH1:    LD    A,1
  1095.     LD    (63486),A
  1096.     JP    TEND1
  1097. GOOK:    LD    A,2
  1098.     LD    (63486),A
  1099. TEND1:    POPALL
  1100.     RET
  1101.  
  1102. DIV16:    LD    BC,0
  1103.     LD    A,H
  1104.     CP    0
  1105.     JP    NZ,GOODPO
  1106.     LD    A,L
  1107.     CP    16
  1108.     RET    C
  1109. GOODPO:    LD    DE,16
  1110.     LD    BC,0
  1111. MULRAY:    SBC    HL,DE
  1112.     INC    BC
  1113.     LD    A,H
  1114.     CP    0
  1115.     JP    NZ,MULRAY
  1116.     LD    A,L
  1117.     CP    16
  1118.     RET    C
  1119.     JP    MULRAY
  1120.  
  1121.