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 / UTILITYS / DEXIGN.ARC / DEXIGN1.Z80 < prev    next >
Text File  |  1991-07-10  |  35KB  |  2,901 lines

  1.  
  2. CNVRT:    EXX
  3.     LD    HL,FCB
  4.     LD    DE,FCB+1
  5.     LD    BC,11
  6.     LD    (HL),32
  7.     LDIR
  8.     EXX
  9.     LD    IY,FCB+1
  10.     LD    (IY-1),0
  11.     LD    B,A
  12.     CP    0
  13.     RET    Z
  14.     LD    IX,FCB+1+8
  15. CJKK:    LD    A,(HL)
  16.     CALL    BIUP
  17.     INC    HL
  18.     DJNZ    CJKK
  19.     RET
  20. BIUP:    CP    '.'
  21.     JR    Z,ENDBIT
  22.     LD    (IY),A
  23.     INC    IY
  24.     RET
  25. ENDBIT:    PUSH    IX
  26.     POP    IY
  27.     RET
  28.  
  29.  
  30. INCHR:    PUSH    HL
  31.     PUSH    DE
  32.     PUSH    BC
  33.     LD    DE,6
  34.     CALL    BIOS
  35.     POP    BC
  36.     POP    DE
  37.     POP    HL
  38.     RET
  39.  
  40. BIOS:    LD    HL,(1)
  41.     ADD    HL,DE
  42.     JP    (HL)
  43.  
  44. CLS:    LD    HL,61440
  45.     LD    BC,2047
  46.     LD    DE,61441
  47.     LD    (HL),32
  48.     LDIR
  49.     CALL    WIPE_ATTR
  50.     LD    A,(COLON)
  51.     CP    255
  52.     RET    NZ
  53.     LD    A,64
  54.     OUT    (8),A
  55.     LD    HL,63488
  56.     LD    DE,63489
  57.     LD    BC,2047
  58.     LD    (HL),7
  59.     LDIR
  60.     LD    A,0
  61.     OUT    (8),A
  62.     RET
  63.  
  64. DETERM:    LD    BC,1024
  65.     LD    A,(MODE)
  66.     CP    0
  67.     RET    Z
  68.     LD    BC,2048
  69.     CP    1
  70.     RET    Z
  71.     LD    BC,80*24
  72.     RET
  73.  
  74. DETERM_SECTOR:
  75.     LD    B,8
  76.     LD    A,(MODE)
  77.     CP    0
  78.     RET    Z
  79.     LD    B,16
  80.     CP    1
  81.     RET    Z
  82.     LD    B,15
  83.     RET
  84.  
  85.  
  86. PRINT:    LD    A,(HL)
  87.     LD    (COLOUR),A
  88.     INC    HL
  89. PRINT1:    LD    A,(HL)
  90.     INC    HL
  91.     CP    4
  92.     RET    Z
  93.     LD    (DE),A
  94.     INC    DE
  95.     LD    A,(COLON)
  96.     CP    255
  97.     JR    NZ,PRINT1
  98.     LD    A,64
  99.     OUT    (8),A
  100.     LD    A,(COLOUR)
  101.     SET    3,D
  102.     DEC    DE
  103.     LD    (DE),A
  104.     INC    DE
  105.     RES    3,D
  106.     LD    A,0
  107.     OUT    (8),A
  108.     JR    PRINT1
  109. PARY:    LD    (HL),A
  110.     PUSH    AF
  111.     CALL    PARY1
  112.     POP    AF
  113.     SET    7,A
  114.     INC    HL
  115.     LD    (HL),A
  116.     PUSH    AF
  117.     CALL    PARY2
  118.     POP    AF
  119.     RES    7,A
  120.     INC    HL
  121.     INC    HL
  122.     INC    HL
  123.     INC    A
  124.     DJNZ    PARY
  125.     RET
  126. PARY1:    LD    A,(COLON)
  127.     CP    255
  128.     RET    NZ
  129.     SET    3,H
  130.     LD    A,64
  131.     OUT    (8),A
  132.     LD    (HL),6        ; !! (I'M HERE!)
  133.     LD    A,0
  134.     OUT    (8),A
  135.     RES    3,H
  136.     RET
  137. PARY2:    LD    A,(COLON)
  138.     CP    255
  139.     RET    NZ
  140.     SET    3,H
  141.     LD    A,64
  142.     OUT    (8),A
  143.     LD    (HL),6        ; !!
  144.     LD    A,0
  145.     OUT    (8),A
  146.     RES    3,H
  147.     RET
  148. MASERA:    CALL    GETDAT
  149. ERAMAS:    LD    (HL),0
  150.     INC    HL
  151.     DEC     BC
  152.     LD    A,B
  153.     OR    C
  154.     JR    NZ,ERAMAS
  155.     JP    FUNCT
  156. MASFIL:    CALL    GETDAT
  157. FILMAS:    LD    (HL),255
  158.     INC    HL
  159.     DEC    BC
  160.     LD    A,B
  161.     OR    C
  162.     JR    NZ,FILMAS
  163.     JP    FUNCT
  164. MASINV:    CALL    GETDAT
  165. INVMAS:    LD    A,255
  166.     LD    E,(HL)
  167.     SUB    E
  168.     LD    (HL),A
  169.     INC    HL
  170.     DEC    BC
  171.     LD    A,B
  172.     OR    C
  173.     JR    NZ,INVMAS
  174.     JP    FUNCT
  175. IMPOSE:    CALL    GETDT1
  176.     PUSH    DE
  177.     POP    IY
  178.     LD    B,16
  179. IMP:    LD    A,(HL)
  180.     LD    E,(IY)
  181.     OR    E
  182.     LD    (HL),A
  183.     INC    HL
  184.     INC    IY
  185.     DJNZ    IMP
  186.     JP    FUNCT
  187. COPY:    CALL    GETDT1
  188.     LD    B,16
  189. CIMP:    LD    A,(HL)
  190.     LD    (DE),A
  191.     INC    HL
  192.     INC    DE
  193.     DJNZ    CIMP
  194.     JP    FUNCT
  195. GETB:    CALL    MODEUP
  196.     LD    A,B
  197.     LD    B,8
  198.     CP    15
  199.     RET    Z
  200.     LD    B,4
  201.     RET
  202. FLIPUP:    CALL    GETDAT
  203.     LD    B,E
  204. VIVIEN:    PUSH    BC
  205.     CALL    MODEUP
  206.     PUSH    HL
  207.     PUSH    HL
  208.     LD    D,0
  209.     LD    E,B
  210.     ADD    HL,DE
  211.     EX    DE,HL
  212.     POP    HL
  213.     CALL    GETB
  214. ANDREW:    LD    A,(HL)
  215.     PUSH    AF
  216.     LD    A,(DE)
  217.     LD    (HL),A
  218.     POP    AF
  219.     LD    (DE),A
  220.     INC    HL
  221.     DEC    DE
  222.     DJNZ    ANDREW
  223.     POP    HL
  224.     LD    DE,16
  225.     ADD    HL,DE
  226.     POP    BC
  227.     DJNZ    VIVIEN
  228.     JP    FUNCT
  229. FLIPSD:    CALL    GETDAT
  230. FLIPME:    PUSH    BC
  231.     PUSH    HL
  232.     LD    A,0
  233.     LD    B,7
  234. KEYH:    CALL    WHATBT
  235.     PUSH    HL
  236.     PUSH    AF
  237.     LD    HL,COLOUR
  238.     LD    A,B
  239.     JR    NZ,REME
  240.     CALL    RESBIT
  241.     JR    WARREN
  242. REME:    CALL    SETBIT
  243. WARREN:    POP    AF
  244.     POP    HL
  245.     INC    A
  246.     DEC    B
  247.     CP    8
  248.     JR    NZ,KEYH
  249.     LD    A,(COLOUR)
  250.     LD    (HL),A
  251.     POP    HL
  252.     POP    BC
  253.     INC    HL
  254.     DEC    BC
  255.     LD    A,B
  256.     OR    C
  257.     JR    NZ,FLIPME
  258.     JP    FUNCT
  259. FUNCT:    CALL    CLS
  260.     LD    HL,61440
  261.     CALL    DOPCG
  262.     LD    HL,STR38
  263.     LD    DE,61440+8*64
  264.     CALL    PRINT
  265.     LD    DE,61440+9*64
  266.     CALL    PRINT
  267.     LD    DE,61440+10*64
  268.     CALL    PRINT
  269.     LD    DE,61440+11*64
  270.     CALL    PRINT
  271.     LD    DE,61440+12*64
  272.     CALL    PRINT
  273.     LD    DE,61440+13*64
  274.     CALL    PRINT
  275.     LD    DE,61440+14*64
  276.     CALL    PRINT
  277.     LD    DE,61440+15*64
  278.     CALL    PRINT
  279.     CALL    SETTYP
  280. SUBLOP:    CALL    INCHRU
  281.     CP    27
  282.     JP    Z,PART11
  283.     CP    13
  284.     JP    Z,PART11
  285.     CP    '0'
  286.     JR    Z,CHANPA
  287.     CP    '2'
  288.     JP    Z,MASERA
  289.     CP    '3'
  290.     JP    Z,MASFIL
  291.     CP    '4'
  292.     JP    Z,MASINV
  293.     CP    '7'
  294.     JP    Z,IMPOSE
  295.     CP    '1'
  296.     JP    Z,COPY
  297.     CP    '5'
  298.     JP    Z,FLIPUP
  299.     CP    '6'
  300.     JP    Z,FLIPSD
  301.     CP    'R'
  302.     CALL    Z,REST
  303.     JR    SUBLOP
  304. CHANPA:    CALL    CLS
  305.     LD    HL,61440
  306.     CALL    DOPCG
  307.     LD    DE,61440+10*64
  308.     LD    HL,STR45
  309.     CALL    PRINT
  310.     LD    DE,61440+11*64
  311.     CALL    PRINT
  312.     LD    DE,61440+12*64
  313.     CALL    PRINT
  314. FIOR:    CALL    SETTYP
  315.     CALL    INCHR
  316.     CP    '1'
  317.     JR    Z,ANNAK
  318.     CP    '2'
  319.     JR    Z,MICIME
  320.     CP    '3'
  321.     JR    Z,DEBRAJ
  322.     CP    27
  323.     JP    Z,FUNCT
  324.     CP    13
  325.     JP    Z,FUNCT
  326.     JR    FIOR
  327. ANNAK:    LD    A,'S'
  328.     LD    (COPTYP),A
  329.     JR    FIOR
  330. MICIME:    LD    A,'M'
  331.     LD    (COPTYP),A
  332.     JR    FIOR
  333. DEBRAJ:    LD    A,'A'
  334.     LD    (COPTYP),A
  335.     JR    FIOR
  336. GETDAT:    LD    A,(COPTYP)
  337.     CP    'A'
  338.     JR    NZ,KATIE
  339.     LD    HL,63488
  340.     LD    BC,2048
  341.     LD    E,127
  342.     RET
  343. KATIE:    CALL    CLS
  344.     LD    HL,61440
  345.     CALL    DOPCG
  346.     LD    A,(COPTYP)
  347.     CP    'M'
  348.     JR    Z,FRIZ
  349.     LD    DE,61440+10*64
  350.     LD    HL,STR53
  351.     CALL    PRINT
  352.     PUSH    DE
  353.     POP    IX
  354.     INC    IX
  355.     LD    IY,61440+11*64
  356.     CALL    INKEY
  357. AMAND:    LD    HL,63488
  358.     LD    DE,16
  359.     CP    0
  360.     JR    Z,ELIZ
  361. AUB:    ADD    HL,DE
  362.     DEC    A
  363.     JR    NZ,AUB
  364. ELIZ:    CALL    MODEUP
  365.     INC    B
  366.     LD    C,B
  367.     LD    B,0
  368.     LD    E,1
  369.     RET
  370. FRIZ:    LD    DE,61440+10*64
  371.     LD    HL,STR51
  372.     CALL    PRINT
  373.     LD    HL,STR53
  374.     LD    DE,61440+11*64
  375.     CALL    PRINT
  376.     PUSH    DE
  377.     POP    IX
  378.     INC    IX
  379.     LD    IY,61440+12*64
  380.     CALL    INKEY
  381.     LD    B,A
  382.     PUSH    BC
  383.     LD    DE,61440+13*64
  384.     LD    HL,STR52
  385.     CALL    PRINT
  386.     LD    HL,STR53
  387.     LD    DE,61440+14*64
  388.     CALL    PRINT
  389.     PUSH    DE
  390.     POP    IX
  391.     INC    IX
  392.     LD    IY,61440+15*64
  393.     CALL    INKEY
  394.     POP    BC
  395.     CP    B
  396.     JP    Z,AMAND
  397.     JR    NC,DAMIEN
  398.     LD    C,B
  399.     LD    B,A
  400.     LD    A,C
  401. DAMIEN:    PUSH    AF
  402.     PUSH    BC
  403.     LD    HL,63488
  404.     LD    DE,16
  405.     LD    A,B
  406.     CP    0
  407.     JR    Z,DREW
  408. VIVEK:    ADD    HL,DE
  409.     DJNZ    VIVEK
  410. DREW:    POP    BC
  411.     POP    AF
  412.     SUB    B
  413.     INC    A
  414.     PUSH    AF
  415.     LD    B,A
  416.     LD    IY,0
  417. MARY:    ADD     IY,DE
  418.     DJNZ    MARY
  419.     PUSH    IY
  420.     POP    BC
  421.     POP    AF
  422.     LD    E,A
  423.     RET
  424. GETDT1:    CALL    CLS
  425.     LD    HL,61440
  426.     CALL    DOPCG
  427.     LD    DE,61440+10*64
  428.     LD    HL,STR49
  429.     CALL    PRINT
  430.     PRI    STR53,61440+11*64
  431.     PUSH    DE
  432.     POP    IX
  433.     INC    IX
  434.     LD    IY,61440+12*64
  435.     CALL    INKEY
  436.     CP    0
  437.     LD    HL,63488
  438.     JR    Z,IAINU
  439.     LD    B,A
  440.     LD    DE,16
  441. IAIN:    ADD    HL,DE
  442.     DJNZ    IAIN
  443. IAINU:    PUSH    HL
  444.     PRI    STR50,61440+12*64
  445.     PRI    STR53,61440+13*64
  446.     PUSH    DE
  447.     POP    IX
  448.     INC    IX
  449.      LD    IY,61440+14*64
  450.     CALL    INKEY
  451.     CP    0
  452.     LD    HL,63488
  453.     JR    Z,GAINU
  454.     LD    B,A
  455.     LD    DE,16
  456. GAIN:    ADD    HL,DE
  457.     DJNZ    GAIN
  458. GAINU:    PUSH    HL
  459.     POP    DE
  460.     POP    HL
  461.     RET
  462. SETTYP:    LD    DE,61440+17*64
  463.     LD    HL,STR48
  464.     CALL    PRINT
  465.     LD    A,(COPTYP)
  466.     CP    'S'
  467.     JR    Z,SING
  468.     CP    'M'
  469.     JR    Z,MATHS
  470.     LD    HL,STR08
  471.     JR    AGR
  472. SING:    LD    HL,STR55
  473.     JR    AGR
  474. MATHS:    LD    HL,STR54
  475. AGR:    CALL    PRINT
  476.     RET
  477. DOPCG:    LD    B,128
  478.     LD    A,0
  479.     CALL    PARY
  480.     RET
  481. PART1:    CALL    GETNUM
  482.     LD    DE,63488
  483.     LD    BC,2048
  484.     LDIR
  485. PART11:    CALL    CLS
  486.     LD    DE,61440+64
  487.     LD    HL,STR30
  488.     CALL    PRINT
  489.     LD    DE,61440+128
  490.     LD    HL,STRXX
  491.     CALL    PRINT
  492.     LD    HL,61440+128+64
  493.     CALL    DOPCG
  494.     LD    DE,61440+11*64
  495.     LD    HL,STRXX
  496.     CALL    PRINT
  497.     LD    DE,61440+12*64
  498.     LD    HL,STR32
  499.     CALL    PRINT
  500.     LD    A,(HIRESII)
  501.     CP    0
  502.     JR    Z,GOIT
  503.     LD    DE,61440+13*64+10
  504.     LD    HL,STRLL
  505.     CALL    PRINT
  506. GOIT:    CALL    INCHRU
  507.     CP    'X'
  508.     JP    Z,ENDME
  509.     CP    'E'
  510.     JP    Z,MAKEPC
  511.     CP    'R'
  512.     CALL    Z,REST
  513.     CP    'F'
  514.     JP    Z,FUNCT
  515.     CP    'C'
  516.     JP    Z,CHN_BANK
  517.     JR    GOIT
  518.  
  519.  
  520.  
  521. ENDME:    CALL    GETNUM
  522.     EX    DE,HL
  523.     LD    HL,63488
  524.     LD    BC,2048
  525.     LDIR
  526.     JP    START
  527. REST:    LD    BC,2048
  528.     CALL    GETNUM
  529.     LD    DE,63488
  530. REST1:    LD    A,(HL)
  531.     PUSH    AF
  532.     LD    A,(DE)
  533.     LD    (HL),A
  534.     POP    AF
  535.     LD    (DE),A
  536.     INC    HL
  537.     INC    DE
  538.     DEC    BC
  539.     LD    A,B
  540.     OR    C
  541.     JR    NZ,REST1
  542.     RET
  543. CURREN:    LD    HL,STR90
  544.     LD    DE,61440+12*64+20
  545.     CALL    PRINT
  546.     PRI    STR91,61440+12*64
  547.     LD    A,(DEF2)
  548.     LD    (DE),A
  549.     PRI    STR92,61440+13*64
  550.     LD    A,(DEF1)
  551.     LD    (DE),A
  552.     PRI    STR93,61440+14*64
  553.     LD    A,(DEF3)
  554.     LD    (DE),A
  555.     PRI    STR94,61440+15*64
  556.     LD    A,(DEF4)
  557.     LD    (DE),A
  558.     RET
  559. NEWKEY:    CALL    CLS
  560.     LD    HL,STR95
  561.     LD    DE,61440
  562.     CALL    PRINT
  563.     LD    IX,STR92
  564.     LD    IY,DEF1
  565.     LD    DE,61440+128
  566.     LD    B,10
  567.     CALL    CONNEC
  568.     LD    IX,STR91
  569.     LD    IY,DEF2
  570.     LD    DE,61440+128+64
  571.     LD    B,10
  572.     CALL    CONNEC
  573.     LD    IX,STR93
  574.     LD    IY,DEF3
  575.     LD    DE,61440+256
  576.     LD    B,10
  577.     CALL    CONNEC
  578.     LD    IX,STR94
  579.     LD    IY,DEF4
  580.     LD    DE,61440+256+64
  581.     LD    B,10
  582.     CALL    CONNEC
  583.     CALL    CURREN
  584.     CALL    DEXI
  585.     LD    A,0
  586.     RET
  587. CONNEC:    PUSH    IX
  588.     POP    HL
  589.     PUSH    BC
  590.     CALL    PRINT
  591.     POP    BC
  592.     LD    A,(IY)
  593.     LD    (DE),A
  594.     PUSH    BC
  595.     PUSH    IY
  596.     PUSH    DE
  597.     CALL    INCHR
  598.     POP    DE
  599.     POP    IY
  600.     POP    BC
  601.     CP    27
  602.     RET    Z
  603.     LD    HL,IMPOSS
  604. CONES:    CP    (HL)
  605.     RET    Z
  606.     INC    HL
  607.     DJNZ    CONES
  608.     LD    (DE),A
  609.     LD    (IY),A
  610.     RET
  611.  
  612. ERASE_FILE:
  613.     LD    DE,5CH
  614.     LD    C,19
  615.     CALL    5
  616.     RET
  617.  
  618. CREATE_FILE:
  619.     LD    DE,5CH
  620.     LD    C,22
  621.     CALL    5
  622.     RET
  623.  
  624. SAV:    PUSH    BC    ; HL-SAVE DEST, BC=# SECT
  625.     PUSH    HL
  626.     EX    DE,HL
  627.     LD    C,26
  628.     CALL    5
  629.     LD    DE,128
  630.     POP    HL
  631.     ADD    HL,DE
  632.     PUSH    HL
  633.     LD    DE,5CH
  634.     LD    C,21
  635.     CALL    5
  636.     POP    HL
  637.     POP    BC
  638.     DJNZ    SAV
  639.     RET
  640.  
  641. CR:    LD    A,H
  642.     CP    D
  643.     RET    NZ
  644.     LD    A,L
  645.     CP    E
  646.     RET
  647.  
  648. COMPA2:    LD    A,D
  649.     CP    H
  650.     JR    Z,NEV
  651.     JR    NC,BOG
  652.     JR    GOG
  653. NEV:    LD    A,L
  654.     CP    E
  655.     JR    Z,GOG
  656.     JR    C,BOG
  657.     JR    GOG
  658. BOG:    XOR    A
  659.     CP    1
  660.     RET
  661. GOG:    LD    A,1
  662.     CP    1
  663.     RET
  664.  
  665. NOLOAD:    CALL    CLS
  666.     LD    DE,61440+64+20
  667.     LD    HL,STR57
  668.     CALL    PRINT
  669.     POP    HL
  670.     POP    HL
  671.     CALL    INCHR
  672.     JP    START
  673. IFFILE:    LD    DE,5CH
  674.     LD    C,15
  675.     CALL    5
  676.     CP    255
  677.     JP    Z,NOLOAD
  678.     RET
  679.  
  680. LOOP1:    PUSH    BC
  681.     EX    DE,HL    ;HL-PLACE,B-# SECTORS
  682.     PUSH    DE
  683.     LD    C,26
  684.     CALL    5
  685.     POP    DE
  686.     EX    DE,HL
  687.     LD    DE,128
  688.     ADD    HL,DE
  689.     PUSH    HL
  690.     LD    DE,5CH
  691.     LD    C,20
  692.     CALL    5
  693.     POP    HL
  694.     POP    BC
  695.     OR    A
  696.     RET    NZ
  697.     DJNZ    LOOP1
  698.     RET
  699.  
  700. CLOSE:    LD    DE,5CH
  701.     LD    C,16
  702.     CALL    5
  703.     RET
  704.  
  705. GRLOAD:    CALL    IFFILE
  706.     LD    A,(COLSECT)
  707.     CP    0
  708.     JR    Z,NO_COLSECT
  709.     LD    B,1
  710.     LD    HL,COLOUR_SECTOR
  711.     CALL    LOOP1
  712. NO_COLSECT:
  713.     LD    A,(COLSCREEN)
  714.     CP    0
  715.     JR    Z,NO_COLSCREEN
  716.     CALL    DETERM_SECTOR
  717.     LD    HL,24000
  718.     CALL    LOOP1
  719. NO_COLSCREEN:
  720.     LD    A,(PCGON)
  721.     CP    0
  722.     JR    Z,TO_PCG
  723.  
  724.     LD    B,16
  725.     LD    A,(HIRESII)
  726.     CP    0
  727.     JR    Z,OK_PCG
  728.     LD    B,128
  729. OK_PCG:    LD    HL,24000+2048*2
  730.     CALL    LOOP1
  731.  
  732. TO_PCG:
  733.     LD    A,(SCRON)
  734.     CP    0
  735.     JR    Z,TO_SCR
  736.     CALL    DETERM_SECTOR        ; LOAD SCR - NO OPTIONS
  737.     LD    HL,44480
  738.     CALL    LOOP1
  739. TO_SCR:    LD    A,(HIRESII)
  740.     CP    0
  741.     JR    Z,NO_ATTR
  742.     LD    A,(ATTRON)
  743.     CP    0
  744.     JR    Z,NO_ATTR
  745.     CALL    DETERM_SECTOR
  746.     LD    HL,24000+2048
  747.     CALL    LOOP1
  748. NO_ATTR:
  749.     CALL    DETER
  750.     CALL    FORMAT
  751.     CALL    ZB1
  752.     RET
  753.  
  754. SAVE:    LD    DE,5CH
  755.     LD    C,15
  756.     CALL    5
  757.     CP    255
  758.     JR    Z,SAVEME
  759.     CALL    CLS
  760.     LD    DE,61440+64+20
  761.     LD    HL,STR22
  762.     CALL    PRINT
  763.     CALL    INCHRU
  764.     CP    'Y'
  765.     JP    Z,GIMEMO
  766.     LD    DE,61440+20
  767.     LD    HL,STR58
  768.     CALL    PRINT
  769.     CALL    INCHR
  770.     POP    HL
  771.     POP    HL
  772.     JP    START
  773. DEXI:    LD    HL,DEXIGN
  774.     CALL    ENTER
  775.  
  776.     CALL    ERASE_FILE
  777.     CALL    CREATE_FILE
  778.  
  779.     LD    DE,5CH
  780.     LD    C,15
  781.     CALL    5
  782.  
  783.     LD    HL,256
  784.     LD    B,110
  785.     CALL    SAV
  786.  
  787.     CALL    CLOSE
  788.     RET
  789.  
  790. GIMEMO:    CALL    ERASE_FILE
  791. SAVEME:    CALL    CREATE_FILE
  792.     LD    C,15
  793.     LD    DE,5CH
  794.     CALL    5
  795.     CALL    DETER
  796.     CALL    FORMAT
  797.     CALL    GRSAVE
  798.     CALL    CLOSE
  799.     CALL    INCHR
  800.     CALL    ZB1
  801.     RET
  802.  
  803. GRSAVE:    LD    A,(COLSECT)
  804.     CP    0
  805.     JR    Z,O_COLSECT
  806.     LD    B,1
  807.     LD    HL,COLOUR_SECTOR
  808.     CALL    SAV
  809. O_COLSECT:
  810.     LD    A,(COLSCREEN)
  811.     CP    0
  812.     JR    Z,O_COLSCREEN
  813.     CALL    DETERM_SECTOR
  814.     LD    HL,24000
  815.     CALL    SAV
  816. O_COLSCREEN:
  817.     LD    A,(PCGON)
  818.     CP    0
  819.     JR    Z,K_PCGT
  820.  
  821.     LD    B,16
  822.     LD    A,(HIRESII)
  823.     CP    0
  824.     JR    Z,K_PCG
  825.     LD    B,128
  826. K_PCG:    LD    HL,24000+2048*2
  827.     CALL    SAV
  828.  
  829. K_PCGT:    LD    A,(SCRON)
  830.     CP    0
  831.     JR    Z,YO_SCR
  832.     CALL    DETERM_SECTOR
  833.     LD    HL,44480
  834.     CALL    SAV
  835. YO_SCR:    LD    A,(HIRESII)
  836.     CP    0
  837.     RET    Z
  838.     LD    A,(ATTRON)
  839.     CP    0
  840.     RET    Z
  841.     CALL    DETERM_SECTOR
  842.     LD    HL,24000+2048
  843.     CALL    SAV
  844.     RET
  845.  
  846.  
  847. POLT:    LD    B,39
  848.     LD    A,(MODE)
  849.     CP    0
  850.     RET    Z
  851.     CP    1
  852.     LD    B,55
  853.     RET    Z
  854.     LD    B,53
  855.     RET
  856. FCB    EQU    5CH
  857.  
  858. ENTER:    LD    A,0
  859.     LD    (7CH),A
  860.     LD    DE,5CH
  861.     LD    BC,10H
  862.     LDIR
  863.     RET
  864. ZBX:    LD    B,16
  865.     LD    HL,BY8024
  866.     JR    ZB2
  867. ZB0:    LD    B,16
  868.     LD    HL,CTREND
  869.     JR    ZB2
  870. ZB1:    LD    B,16
  871.     LD    HL,ZB3
  872. ZB2:    LD    A,B
  873.     DEC    A
  874.     OUT    (12),A
  875.     LD    A,(HL)
  876.     OUT    (13),A
  877.     DEC    HL
  878.     DJNZ    ZB2
  879.     RET
  880. INPUT:    EX    DE,HL
  881.     LD    HL,STR20
  882.     CALL    PRINT
  883.     EX    DE,HL
  884.     INC    HL
  885.     INC    HL
  886.     LD    (SAVEEM),HL
  887.     LD    B,0
  888. INPUT1:    LD    (HL),127
  889.     PUSH    IX
  890.     PUSH    BC
  891.     CALL    INCHR
  892.     POP    BC
  893.     POP    IX
  894.     CP    27
  895.     JR    NZ,INPUT2
  896.     POP    HL
  897.     JP    START
  898. INPUT2:    CP    8
  899.     JR    NZ,INPUT3
  900.     LD    A,B
  901.     CP    1
  902.      JR    C,INPUT1
  903.     LD    (HL),32
  904.     DEC    B
  905.     DEC    HL
  906.     JR    INPUT1
  907. INPUT3:    CP    13
  908.     JR    NZ,INPUT4
  909.     LD    A,B
  910.     LD    HL,(SAVEEM)
  911.     CALL    CNVRT
  912.     RET
  913. INPUT4:    CP    33
  914.     JR    C,INPUT1
  915.     CP    ':'
  916.     JR    Z,INPUT1
  917.     CP    128
  918.     JR    NC,INPUT1
  919.     CALL    PYU
  920.     LD    C,A
  921.     LD    A,B
  922.     CP    13
  923.     JR    Z,INPUT1
  924.     INC    B
  925.     LD    (HL),C
  926.     INC    HL
  927.     JP    INPUT1
  928. PYU:    CP    'a'
  929.     RET    C
  930.     CP    'z'+1
  931.     RET    NC
  932.     SUB    32
  933.     RET
  934. FILEXI:    LD    A,0
  935.     LD    (7CH),A
  936.     LD    HL,5CH+12
  937.     LD    (HL),0
  938.     INC    HL
  939.     LD    (HL),0
  940.     INC    HL
  941.     LD    (HL),0
  942.     INC    HL
  943.     LD    (HL),0
  944.     RET
  945. PART2:    CALL    CLSPRINT
  946.     LD    DE,61440+20
  947.     LD    HL,STR9E
  948.     LD    A,(HIRESII)
  949.     CP    0
  950.     JR    NZ,PAR2
  951.     LD    HL,STR9
  952. PAR2:    CALL    PRINT
  953.     LD    HL,61440+64+20
  954.     CALL    INPUT
  955.     CALL    FILEXI
  956.     CALL    SAVE
  957.     JP    START
  958. PART3:    CALL    CLSPRINT
  959.     LD    DE,61440+20
  960.     LD    HL,STR10E
  961.     LD    A,(HIRESII)
  962.     CP    0
  963.     JR    NZ,PAR3
  964.     LD    HL,STR10
  965. PAR3:    CALL    PRINT
  966.     LD    HL,61440+64+20
  967.     CALL    INPUT
  968.     CALL    FILEXI
  969.     CALL    CLS
  970.     CALL    GRLOAD
  971.     CALL    INCHR
  972.     JP    START
  973.  
  974. DISKRESET:
  975.     CALL    CLS
  976.     LD    DE,61440+20
  977.     LD    HL,STR21
  978.     CALL    PRINT
  979.     CALL    INCHRU
  980.     CP    'Z'
  981.     JR    C,BKIL
  982.     RES    5,A
  983. BKIL:    CP    'A'
  984.     JR    Z,DOPAR7
  985.     CP    'B'
  986.     JR    Z,DOPAR7
  987.     CP    'C'
  988.     JR    Z,DOPAR7
  989.     CP    'D'
  990.     JR    Z,DOPAR7
  991.     CP    'L'
  992.     JR    Z,DOPAR7
  993.     CP    'M'
  994.     JR    Z,DOPAR7
  995.     CALL    CLS
  996.     JP    START
  997. DOPAR7:    SUB    'A'
  998.     LD    (DRIVE),A
  999.     LD    E,A
  1000.     PUSH    DE
  1001.     LD    C,13
  1002.     CALL    5
  1003.     POP    DE
  1004.     LD    C,14
  1005.     CALL    5
  1006.     JP    START
  1007. PART5:    CALL    CLS
  1008.     CALL    DETER
  1009.     CALL    FORMAT        ;SCREEN
  1010.     LD    A,0
  1011.     LD    (YPOS),A
  1012.     LD    (XPOS),A
  1013.     CALL    SETXY
  1014. BIGLOO:    LD    HL,(XYPOS)
  1015.     LD    A,(HL)
  1016.     LD    (BACKST),A
  1017.     LD    (HL),127
  1018. BIGTOO:    CALL    INCHR
  1019.     CP    26
  1020.     JP    Z,INVER
  1021.     CP    7
  1022.     JP    Z,INUM
  1023.     CP    11
  1024.     JP    Z,SHOWPC
  1025.     CP    6
  1026.     JP    Z,FIXMY
  1027.     CP    1
  1028.     JP    Z,PUTNUM
  1029.     CP    2
  1030.     JP    Z,REPEAT
  1031.     CP    3
  1032.     JP    Z,UPDAT0
  1033.     CP    16
  1034.     JP    Z,CHAPCG
  1035.     CP    17
  1036.     JP    Z,QUIT
  1037.     CP    12
  1038.     CALL    Z,CLSME
  1039.     LD    B,A
  1040.     LD    A,(DEF2)
  1041.     CP    B
  1042.     JP    Z,LEFTGO
  1043.     LD    A,(DEF1)
  1044.     CP    B
  1045.     JP    Z,RIGHGO
  1046.     LD    A,(DEF3)
  1047.     CP    B
  1048.     JP    Z,UPGO
  1049.     LD    A,(DEF4)
  1050.     CP    B
  1051.     JP    Z,DOWNGO
  1052. JUMHER:    LD    A,(OPCGON)
  1053.     ADD    A,B
  1054.     LD    (BACKST),A
  1055.     LD    (CMON),A
  1056.     LD    HL,(LAST)
  1057.     JP    (HL)
  1058.  
  1059. REPEAT:    LD    A,(CMON)
  1060.     LD    B,A
  1061.     JR    JUMHER
  1062.  
  1063.  
  1064. INVER:    CALL    SAVEALL
  1065.     LD    HL,61440
  1066.     CALL    DETERM
  1067. INVE2:    RES    7,(HL)
  1068.     INC    HL
  1069.     DEC    BC
  1070.     LD    A,B
  1071.     OR    C
  1072.     JR    NZ,INVE2
  1073.     CALL    INCHR
  1074.     CALL    FIXALL
  1075.     JP    BIGTOO
  1076. PUTNUM:    CALL    SAVEALL
  1077.     CALL    CLS
  1078.     LD    DE,61440
  1079.     LD    HL,(XYPOS)
  1080.     INC    HL
  1081.     CALL    PRINUM
  1082.     CALL    INCHR
  1083.     CALL    FIXALL
  1084.     JP    BIGLOO
  1085.  
  1086. SHOWPC:    CALL    SAVEALL
  1087.  
  1088.     CALL    CLS
  1089.     LD    HL,61440
  1090.     CALL    DOPCG
  1091.     CALL    INCHR
  1092.     CALL    FIXALL
  1093.     JP    BIGLOO
  1094. INUM:    CALL    SAVEALL
  1095.     CALL    CLS
  1096.     LD    DE,61440
  1097.     LD    HL,STR53
  1098.     CALL    PRINT
  1099.     PUSH    DE
  1100.     POP    IX
  1101.     LD    IY,61440+64
  1102.     CALL    INKEY
  1103.     PUSH    AF
  1104.     CALL    FIXALL
  1105.     POP    AF
  1106.     LD    B,A
  1107.     JP    JUMHER
  1108.  
  1109. UPDAT0:    CALL    SAVEALL
  1110.     JP    BIGLOO
  1111.  
  1112. FIXMY:    LD    HL,61440
  1113.     LD    DE,44480
  1114.     CALL    DETERM
  1115. VFL:    LD    A,(HL)
  1116.     PUSH    AF
  1117.     LD    A,(DE)
  1118.     LD    (HL),A
  1119.     POP    AF
  1120.     LD    (DE),A
  1121.     DEC    BC
  1122.     INC    HL
  1123.     INC    DE
  1124.     LD    A,B
  1125.     OR    C
  1126.     JR    NZ,VFL
  1127.     JP    BIGLOO
  1128. CHAPCG:    LD    A,(OPCGON)
  1129.     CP    0
  1130.     JR    Z,ONPC
  1131.     LD    A,0
  1132.     LD    (OPCGON),A
  1133.     JP    BIGTOO
  1134. ONPC:    LD    A,128
  1135.     LD    (OPCGON),A
  1136.     JP    BIGTOO
  1137. REDON:    LD    HL,(XYPOS)
  1138.     LD    A,(BACKST)
  1139.     LD    (HL),A
  1140.     RET
  1141.  
  1142. LEFTGO:    LD    HL,LEFTGO
  1143.     LD    (LAST),HL
  1144.     LD    A,(XPOS)
  1145.     DEC    A
  1146.     CP    255
  1147.     JP    Z,LEFYO
  1148. LEFY1:    LD    (XPOS),A
  1149.     CALL    REDON
  1150.     CALL    SETXY
  1151.     JP    BIGLOO
  1152. LEFYO:    LD    A,(MODE)
  1153.     CP    2
  1154.     JR    Z,ONLY80
  1155.     LD    A,63
  1156.     JR    LEFY1
  1157. ONLY80:    LD    A,79
  1158.     JR    LEFY1
  1159.  
  1160. RIGHGO:    LD    HL,RIGHGO
  1161.     LD    (LAST),HL
  1162.     LD    A,(XPOS)
  1163.     INC    A
  1164.     LD    B,64
  1165.     CALL    FINRIG
  1166.     CP    B
  1167.     JP    Z,RIGTY
  1168. RIGHTP:    LD    (XPOS),A
  1169.     CALL    REDON
  1170.     CALL    SETXY
  1171.     JP    BIGLOO
  1172. RIGTY:    XOR    A
  1173.     JR    RIGHTP
  1174.  
  1175. FINRIG:    PUSH    AF
  1176.     LD    A,(MODE)
  1177.     CP    2
  1178.     JP    NZ,FRET
  1179.     LD    B,80
  1180. FRET:    POP    AF
  1181.     RET
  1182. CLSME:    CALL    CLS
  1183.     LD    A,32
  1184.     LD    (BACKST),A
  1185.     JP    BIGLOO
  1186. UPGO:    LD    HL,UPGO
  1187.     LD    (LAST),HL
  1188.     LD    A,(YPOS)
  1189.     DEC    A
  1190.     CP    255
  1191.     JP    Z,UPSOP
  1192. UPSOT:    LD    (YPOS),A
  1193.     CALL    REDON
  1194.     CALL    SETXY
  1195.     JP    BIGLOO
  1196. UPSOP:    LD    A,(MODE)
  1197.     CP    0
  1198.     JR    NZ,UPSOT1
  1199.     LD    A,15
  1200.     JR    UPSOT
  1201. UPSOT1:    CP    1
  1202.     JR    NZ,UPSOT2
  1203.     LD    A,31
  1204.     JR    UPSOT
  1205. UPSOT2:    LD    A,23
  1206.     JR    UPSOT
  1207.  
  1208. DOWNGO:    LD    HL,DOWNGO
  1209.     LD    (LAST),HL
  1210.     CALL    MODE5
  1211.     LD    A,(YPOS)
  1212.     INC    A
  1213.     CP    B
  1214.     JP    Z,DOWPO
  1215. TOWDY:    LD    (YPOS),A
  1216.     CALL    REDON
  1217.     CALL    SETXY
  1218.     JP    BIGLOO
  1219. DOWPO:    XOR    A
  1220.     JR    TOWDY
  1221.  
  1222.  
  1223. MODE5:    LD    B,16
  1224.     LD    A,(MODE)
  1225.     CP    0
  1226.     RET    Z
  1227.     CP    1
  1228.     LD    B,32
  1229.     RET    Z
  1230.     LD    B,24
  1231.     RET
  1232. QUIT:    LD    HL,(XYPOS)
  1233.     LD    A,(BACKST)
  1234.     LD    (HL),A
  1235.     LD    HL,61440
  1236.     LD    DE,44480
  1237.     CALL    DETERM
  1238.     LDIR
  1239.     CALL    ZB1
  1240.     JP    START
  1241. REALLY:    LD    A,(MODE)
  1242.     LD    DE,64
  1243.     CP    2
  1244.     RET    NZ
  1245.     LD    DE,80
  1246.     RET
  1247. SETXY:    CALL    REALLY
  1248.     LD    HL,61440
  1249.     LD    A,(YPOS)
  1250.     CP    0
  1251.     JR    Z,SETXY1
  1252.     LD    B,A
  1253. HERE:    ADD    HL,DE
  1254.     DJNZ    HERE
  1255. SETXY1:    LD    A,(XPOS)
  1256.     LD    E,A
  1257.     LD    D,0
  1258.     ADD    HL,DE
  1259.     LD    (XYPOS),HL
  1260.     RET
  1261.  
  1262. DETER:    LD    A,(MODE)
  1263.     CP    0
  1264.     RET    Z
  1265.     CP    1
  1266.     JP    Z,ZB0
  1267.     JP    ZBX
  1268.  
  1269. PART4:    CALL    CLS
  1270.     CALL    CURREN
  1271.     LD    DE,61440
  1272.     LD    HL,STR12
  1273.     CALL    PRINT
  1274.     LD    DE,61440+64
  1275.     LD    HL,STR11
  1276.     CALL    PRINT
  1277.     PRI    STR14,61440+128
  1278.     PRI    STR15,61440+128+64
  1279.     LD    A,(COLSECT)
  1280.     CP    0
  1281.     JR    Z,PART4A
  1282.     PRI    STR16O,61440+256
  1283.     JR    PART4B
  1284. PART4A:    PRI    STR16,61440+256
  1285. PART4B:    LD    A,(COLSCREEN)
  1286.     CP    0
  1287.     JR    Z,PART4C
  1288.     PRI    STR18O,61440+256+64
  1289.     JR    ART4B
  1290.  
  1291.  
  1292. PART4C:    PRI    STR1O8,61440+256+64
  1293. ART4B:    LD    A,(ATTRON)
  1294.     CP    0
  1295.     JR    Z,ART4C
  1296.     PRI    SSTR2,61440+256+64+64
  1297.     JR    RT4B
  1298.  
  1299. ART4C:    PRI    SSTR1,61440+256+64+64
  1300.  
  1301. RT4B:    LD    A,(SCRON)
  1302.     CP    0
  1303.     JR    Z,RT4C
  1304.     PRI    SSTR4,61440+256+64+128
  1305.     JR    YRT4B
  1306. RT4C:    PRI    SSTR3,61440+256+64+128
  1307.  
  1308. YRT4B:    LD    A,(PCGON)
  1309.     CP    0
  1310.     JR    Z,YRT4C
  1311.     PRI    SSTR6,61440+256+64+192
  1312.     JR    YRT4D
  1313.  
  1314. YRT4C:    PRI    SSTR5,61440+256+64+192
  1315. YRT4D:    PRI    STR59,61440+256+256+128
  1316.     INC    DE
  1317.     LD    A,(MODE)
  1318.     CP    2
  1319.     JR    Z,ANUTOD
  1320.     CP    1
  1321.     JR    Z,ANOMOD
  1322.     LD    HL,STR61
  1323.     CALL    PRINT
  1324.     JR    SKIPY
  1325. ANUTOD:    LD    HL,STR192
  1326.     CALL    PRINT
  1327.     JR    SKIPY
  1328. ANOMOD:    LD    HL,STR62
  1329.     CALL    PRINT
  1330. SKIPY:    CALL     INCHR
  1331.     CP    '1'
  1332.     CALL    Z,NEWKEY
  1333.     CP    '2'
  1334.     JP    Z,GESR1
  1335.     CP    '3'
  1336.     JP    Z,GETPCG1
  1337.     CP    27
  1338.     JP    Z,START
  1339.     CP    '4'
  1340.     JP    Z,SEXT
  1341.     CP    '5'
  1342.     JP    Z,SEXTY
  1343.  
  1344.     CP    '6'
  1345.     JP    Z,SEXU
  1346.     CP    '7'
  1347.     JP    Z,SEXZ
  1348.     CP    '8'
  1349.     JP    Z,SEXO
  1350.     CP    '9'
  1351.     JR    NZ,SKIPY
  1352.      LD    A,(MODE)
  1353.      CP    1
  1354.     JR    Z,NORMIT
  1355.     CP    2
  1356.     JR    Z,NORMI
  1357.     LD    A,1
  1358.     LD    (MODE),A
  1359.     JP    YRT4D
  1360. NORMI:    LD    A,0
  1361.     LD    (MODE),A
  1362.     JP    YRT4D
  1363. NORMIT:    LD    A,2
  1364.     LD    (MODE),A
  1365.     JP    YRT4D
  1366.  
  1367.  
  1368. SEXT:    LD    A,(COLSECT)
  1369.     CP    0
  1370.     JR    Z,SEXT1
  1371.     XOR    A
  1372.     LD    (COLSECT),A
  1373.     JP    PART4
  1374. SEXT1:    LD    A,1
  1375.     LD    (COLSECT),A
  1376.     JP    PART4
  1377.  
  1378. SEXU:    LD    A,(ATTRON)
  1379.     CP    0
  1380.     JR    Z,SEXU1
  1381.     XOR    A
  1382.     LD    (ATTRON),A
  1383.     JP    PART4
  1384. SEXU1:    LD    A,1
  1385.     LD    (ATTRON),A
  1386.     JP    PART4
  1387.  
  1388. SEXZ:    LD    A,(SCRON)
  1389.     CP    0
  1390.     JR    Z,SEXZ1
  1391.     XOR    A
  1392.     LD    (SCRON),A
  1393.     JP    PART4
  1394. SEXZ1:    LD    A,1
  1395.     LD    (SCRON),A
  1396.     JP    PART4
  1397.  
  1398. SEXO:    LD    A,(PCGON)
  1399.     CP    0
  1400.     JR    Z,SEXO1
  1401.     XOR    A
  1402.     LD    (PCGON),A
  1403.     JP    PART4
  1404. SEXO1:    LD    A,1
  1405.     LD    (PCGON),A
  1406.     JP    PART4
  1407.  
  1408. SEXTY:    LD    A,(COLSCREEN)
  1409.     CP    0
  1410.     JR    Z,SEXTY1
  1411.     XOR    A
  1412.     LD    (COLSCREEN),A
  1413.     JP    PART4
  1414. SEXTY1:    LD    A,1
  1415.     LD    (COLSCREEN),A
  1416.     JP    PART4
  1417.  
  1418.  
  1419. GESR1:
  1420.     LD    B,0
  1421.     LD    A,(COLSECT)
  1422.     CP    0
  1423.     JR    Z,GESR2
  1424.     INC    B
  1425. GESR2:
  1426.     LD    A,(COLSCREEN)
  1427.     CP    0
  1428.     JR    Z,GESR3
  1429.     PUSH    BC
  1430.     CALL    DETERM_SECTOR
  1431.     POP    AF
  1432.     ADD    A,B
  1433.     LD    B,A
  1434. GESR3:
  1435.     LD    C,0
  1436.     LD    A,(PCGON)
  1437.     CP    0
  1438.     JR    Z,GESR4
  1439.     LD    C,16
  1440.     LD    A,(HIRESII)
  1441.     CP    0
  1442.     JR    Z,GESR4
  1443.     LD    C,128
  1444. GESR4:
  1445.     LD    A,B
  1446.     ADD    A,C
  1447.     PUSH    AF
  1448.     CALL    DETERM_SECTOR
  1449.     POP    AF
  1450.     LD    IY,44480
  1451.     LD    HL,SRC1
  1452.     JP    SKIP_LOAD
  1453.  
  1454.  
  1455.  
  1456.  
  1457. GETPCG1:
  1458.     LD    B,0
  1459.     LD    A,(COLSECT)
  1460.     CP    0
  1461.     JR    Z,GETSCR2
  1462.     INC    B
  1463. GETSCR2:
  1464.     LD    A,(COLSCREEN)
  1465.     CP    0
  1466.     JR    Z,GETSCR3
  1467.     PUSH    BC
  1468.     CALL    DETERM_SECTOR
  1469.     POP    AF
  1470.     ADD    A,B
  1471.     LD    B,A
  1472. GETSCR3:
  1473.     LD    A,B
  1474.     LD    B,16
  1475.     EX    AF,AF'
  1476.     LD    A,(HIRESII)
  1477.     CP    0
  1478.     JR    Z,GETSCR4
  1479.     LD    B,128
  1480. GETSCR4:
  1481.     EX    AF,AF'
  1482.     LD    IY,24000+2048*2
  1483.     LD    HL,SRC2
  1484.     JP    SKIP_LOAD
  1485.  
  1486.  
  1487.  
  1488. INKEY:    PUSH    IX
  1489.     PUSH    IY
  1490.     CALL    INCHR 
  1491.     POP    IY
  1492.     POP    IX
  1493.     CP    24
  1494.     JR    Z,MOINK    ;IY-POSITION OF STRING 2 IF ^A IX-POSITION OF CHAR
  1495.     LD    (IX),A
  1496.     RET
  1497. MOINK:    PUSH    IY
  1498.     POP    DE
  1499.     LD    HL,STR72
  1500.     CALL    PRINT
  1501.     INC    DE
  1502.     CALL    INUMB
  1503.     RET
  1504. INUMB:    EX    DE,HL
  1505. UNUMB:    LD    IY,0
  1506.     CALL    GETGUM
  1507.     CP    '3'
  1508.     JR    NC,UNUMB
  1509.     CP    8
  1510.     JR    Z,UNUMB
  1511.     LD    (HL),A
  1512.     INC    HL
  1513.     SUB    '0'
  1514.     CP    0
  1515.     JR    Z,IWAMOR
  1516.     LD    DE,100
  1517.     LD    B,A
  1518.     PUSH    HL
  1519.     PUSH    IY
  1520.     POP    HL
  1521. PHSI:    ADD    HL,DE
  1522.     DJNZ    PHSI
  1523.     PUSH    HL
  1524.     POP    IY
  1525.     POP    HL
  1526. IWAMOR:    CALL    GETGUM
  1527.     CP    8
  1528.     JR    NZ,NUMB2
  1529.     DEC    HL
  1530.     LD    (HL),'_'
  1531.     JR    UNUMB
  1532. NUMB2:    LD    (HL),A
  1533.     INC    HL
  1534.     SUB    '0'
  1535.     CP    0
  1536.     JR    Z,IWAMOT
  1537.     LD    B,A
  1538.     LD    DE,10
  1539.     PUSH    HL
  1540.     PUSH    IY
  1541.     POP    HL
  1542. HSI:    ADD    HL,DE
  1543.     DJNZ    HSI
  1544.     PUSH    HL
  1545.     POP    IY
  1546.     POP    HL
  1547. IWAMOT:    CALL    GETGUM
  1548.     CP    8
  1549.     JR    NZ,NUMB3
  1550. ABORT:    LD    (HL),'_'
  1551.     DEC    HL
  1552.     LD    (HL),'_'
  1553.     DEC    HL
  1554.     LD    (HL),'_'
  1555.     JR    UNUMB
  1556. NUMB3:    LD    (HL),A
  1557.     SUB    '0'
  1558.     LD    E,A
  1559.     LD    D,0
  1560.     ADD    IY,DE
  1561.     PUSH    IY
  1562.     POP    DE
  1563.     LD    A,D
  1564.     CP    0
  1565.     JR    NZ,ABORT
  1566.     LD    A,E
  1567.     RET
  1568. GETGUM:    PUSH    IY
  1569.     CALL    INCHR
  1570.     POP    IY
  1571.     CP    8
  1572.     RET    Z
  1573.     CP    '0'
  1574.     JR    C,GETGUM
  1575.     CP    '9'+1
  1576.     JR    NC,GETGUM
  1577.     RET
  1578. WHATBT:    CP    0
  1579.     JR    NZ,RUB1
  1580.     BIT    0,(HL)
  1581.     RET
  1582. RUB1:    CP    1
  1583.     JR    NZ,RUB2
  1584.     BIT    1,(HL)
  1585.     RET
  1586. RUB2:    CP    2
  1587.     JR    NZ,RUB3
  1588.     BIT    2,(HL)
  1589.     RET
  1590. RUB3:    CP    3
  1591.     JR    NZ,RUB4
  1592.     BIT    3,(HL)
  1593.     RET
  1594. RUB4:    CP    4
  1595.     JR    NZ,RUB5
  1596.     BIT    4,(HL)
  1597.     RET
  1598. RUB5:    CP    5
  1599.     JR    NZ,RUB6
  1600.     BIT    5,(HL)
  1601.     RET
  1602. RUB6:    CP    6
  1603.     JR    NZ,RUB7
  1604.     BIT    6,(HL)
  1605.     RET
  1606. RUB7:    BIT    7,(HL)
  1607.     RET
  1608. MAKEPC:    LD    DE,61440+13*64
  1609.     LD    HL,STR33
  1610.     CALL    PRINT
  1611.     PUSH    DE
  1612.     POP    IX
  1613.     LD    IY,61440+14*64
  1614.     CALL    INKEY
  1615.     RES    7,A
  1616.     LD    (WHAPCG),A
  1617.     CALL    CLS
  1618. TYLAR:    LD    A,(WHAPCG)
  1619.     LD    HL,63488
  1620.     LD    DE,16
  1621.     LD    B,A
  1622.     CP    0
  1623.     JR    Z,MAKPOG
  1624. DJZ:    ADD    HL,DE
  1625.     DJNZ    DJZ
  1626. MAKPOG:    LD    (WHEPCG),HL
  1627.     LD    DE,SPACE
  1628.     LD    BC,16
  1629.     LDIR
  1630.     CP    4
  1631.     JR    C,OTHER
  1632.     CP    127
  1633.     JR    Z,OTHER
  1634.     LD    A,0
  1635.     LD    (OTHERB),A
  1636.     LD    DE,PCGSPC
  1637.     LD    HL,63488
  1638.     LD    BC,48
  1639.     LDIR
  1640.     LD    DE,63488
  1641.     LD    HL,PCGDAT
  1642.     LD    BC,48
  1643.     LDIR
  1644.     JR    TYLER
  1645. OTHER:    LD    A,1
  1646.     LD    (OTHERB),A
  1647.     LD    DE,PCGSPC
  1648.     LD    HL,63488+30*16
  1649.     LD    BC,48
  1650.     LDIR
  1651.     LD    DE,63488+30*16
  1652.     LD    HL,PCGDAT
  1653.     LD    BC,48
  1654.     LDIR
  1655. TYLER:    LD    HL,(WHEPCG)
  1656.     CALL    SETMAP
  1657.     PRI    STR23,61440+22        ; | FINGER!
  1658.     PRI    STRZZ,61440+18+64
  1659.     PRI    STR24,61440+22+128
  1660.     PRI    STR25,61440+22+128+64
  1661.     PRI    STR261,61440+22+256
  1662.     PRI    STR27,61440+22+256+64
  1663.     PRI    STR28,61440+22+256+128
  1664.     PRI    STRZZ,61440+18+256+128+64
  1665.     PRI    STR281,61440+22+512
  1666.     PRI    STR282,61440+22+512+64
  1667.     PRI    STR283,61440+22+512+128
  1668.     PRI    STRZZ,61440+18+512+128+64
  1669.     PRI    STR29,61440+22+512+256
  1670.     INC    DE
  1671.     INC    DE
  1672.     LD    A,(WHAPCG)
  1673.     SET    7,A
  1674.     LD    (DE),A
  1675.     RES    7,A
  1676.     DEC    A
  1677.     DEC    DE
  1678.     SET    7,A
  1679.     LD    (DE),A
  1680.     INC    DE
  1681.     INC    DE
  1682.     INC    A
  1683.     INC    A
  1684.     SET    7,A
  1685.     LD    (DE),A
  1686.     PUSHALL
  1687.     LD    HL,STRYY
  1688.     LD    DE,61440+18
  1689.     LD    B,16
  1690. DOCN:    CALL    PRINT
  1691.     PUSH    BC
  1692.     PUSH    DE
  1693.     POP    HL
  1694.     LD    BC,62
  1695.     ADD    HL,BC
  1696.     PUSH    HL
  1697.     POP    DE
  1698.     POP    BC
  1699.     LD    HL,STRYY
  1700.     DJNZ    DOCN
  1701.     POPALL
  1702.     CALL    MAKEPG
  1703.     CALL    CODE1
  1704.     LD    HL,PCGSPC
  1705.     LD    BC,48
  1706.     LDIR
  1707.     JP    PART11
  1708. SETMAP:    CALL    CODE
  1709.     LD    DE,61440
  1710. SET1:    LD    A,7
  1711. SET2:    CALL    WHATBT
  1712.     PUSHALL
  1713.     CALL    ICON
  1714.     POPALL
  1715.     INC    DE
  1716.     INC    DE
  1717.     DEC    A
  1718.     CP    255
  1719.     JR    NZ,SET2
  1720.     LD    IY,48
  1721.     ADD    IY,DE
  1722.     PUSH    IY
  1723.     POP    DE
  1724.     INC    HL
  1725.     DJNZ    SET1
  1726.     RET
  1727. ICON:    JP    NZ,NOICON
  1728.     LD    A,(OTHERB)
  1729.     CP    1
  1730.     JR    Z,ICON1
  1731.     LD    HL,STR86
  1732.     JP    ENICON
  1733. ICON1:    LD    HL,STR35
  1734.     JP    ENICON
  1735. NOICON:    LD    A,(OTHERB)
  1736.     CP    1
  1737.     JR    Z,ICON2
  1738.     LD    HL,STR85
  1739.     JP    ENICON
  1740. ICON2:    LD    HL,STR36
  1741. ENICON:    CALL    PRINT
  1742.     RET
  1743. CODE1:    LD    DE,63488
  1744.     LD    A,(OTHERB)
  1745.     CP    0
  1746.     RET    Z
  1747.     LD    DE,63488+30*16
  1748.     RET
  1749. CODE:    LD    B,16
  1750.     LD    A,(MODE)
  1751.     CP    0
  1752.     RET    Z
  1753.     LD    B,8
  1754.     CP    1
  1755.     RET    Z
  1756.     LD    B,11
  1757.     RET
  1758. MAKEPG:    LD    A,0
  1759.     LD    (YPOS),A
  1760.     LD    A,7
  1761.     LD    (XPOS),A
  1762.     CALL    PRICUR
  1763. MAKE2:    LD    BC,10000
  1764. MAKEO:    DEC    BC
  1765.     LD    A,B
  1766.     OR    C
  1767.     JR    NZ,MAKEO
  1768.     LD    A,13
  1769.     CALL    INKEY1
  1770.     RET    Z
  1771.     LD    A,55
  1772.     CALL    INKEY1
  1773.     CALL    Z,MAKEON
  1774.     LD    A,7
  1775.     CALL    INKEY1
  1776.     CALL    Z,MAKEOF
  1777.     LD    A,1
  1778.     CALL    INKEY1
  1779.     CALL    Z,UP
  1780.     LD    A,56
  1781.     CALL    INKEY1
  1782.     CALL    Z,UP
  1783.     LD    A,26
  1784.     CALL    INKEY1
  1785.     CALL    Z,DOWN
  1786.     LD    A,58
  1787.     CALL    INKEY1
  1788.     CALL    Z,DOWN
  1789.     LD    A,44
  1790.     CALL    INKEY1
  1791.     CALL    Z,RIGHT
  1792.     LD    A,62
  1793.     CALL    INKEY1
  1794.     CALL    Z,LEFT
  1795.     LD    A,59
  1796.     CALL    INKEY1
  1797.     CALL    Z,RIGHT
  1798.     LD    A,46
  1799.     CALL    INKEY1
  1800.     CALL    Z,LEFT
  1801.     LD    A,18
  1802.     CALL    INKEY1
  1803.     CALL    Z,SWAP
  1804.     LD    A,9
  1805.     CALL    INKEY1
  1806.     CALL    Z,INVERR
  1807.     LD    A,4
  1808.     CALL    INKEY1
  1809.     CALL    Z,DELETR
  1810.     LD    A,19
  1811.     CALL    INKEY1
  1812.     CALL    Z,SETR
  1813.     LD    A,10
  1814.     CALL    INKEY1
  1815.     CALL    Z,INVERC
  1816.     LD    A,6
  1817.     CALL    INKEY1
  1818.     CALL    Z,SETC
  1819.     LD    A,8
  1820.     CALL    INKEY1
  1821.     CALL    Z,RESETC
  1822.     LD    A,15
  1823.     CALL    INKEY1
  1824.     JR    Z,DECCHA
  1825.     LD    A,16
  1826.     CALL    INKEY1
  1827.     JR    Z,INCCHA
  1828.     JP    MAKE2
  1829. INCCHA:    LD    A,(WHAPCG)
  1830.     INC    A
  1831.     RES    7,A
  1832.     LD    (WHAPCG),A
  1833.     POP    HL
  1834.     CALL    CODE1
  1835.     LD    BC,48
  1836.     LD    HL,PCGSPC
  1837.     LDIR
  1838.     JP    TYLAR
  1839. DECCHA:    LD    A,(WHAPCG)
  1840.     DEC    A
  1841.     RES    7,A
  1842.     LD    (WHAPCG),A
  1843.     POP    HL
  1844.     CALL    CODE1
  1845.     LD    BC,48
  1846.     LD    HL,PCGSPC
  1847.     LDIR
  1848.     JP    TYLAR
  1849. INVERC:    CALL    MODEUP
  1850.     INC    B
  1851.     LD    HL,(WHEPCG)
  1852. INV4:    LD    A,(XPOS)
  1853.     CALL    WHATBT
  1854.     JR    Z,INV5
  1855.     CALL    RESBIT
  1856.     JR    INV9
  1857. INV5:    CALL    SETBIT
  1858. INV9:    INC    HL
  1859.     DJNZ    INV4
  1860.     LD    HL,(WHEPCG)
  1861.     CALL    SETMAP
  1862.     CALL    PRICUR
  1863.     RET
  1864. SETC:    LD    HL,(WHEPCG)
  1865.     CALL    MODEUP
  1866.     INC    B
  1867. INV6:    LD    A,(XPOS)
  1868.     CALL    SETBIT
  1869.     INC    HL
  1870.     DJNZ    INV6
  1871.     LD    HL,(WHEPCG)
  1872.     CALL    SETMAP
  1873.     CALL    PRICUR
  1874.     RET
  1875. RESETC:    LD    HL,(WHEPCG)
  1876.     CALL    MODEUP
  1877.     INC    B
  1878. INV7:    LD    A,(XPOS)
  1879.     CALL    RESBIT
  1880.     INC    HL
  1881.     DJNZ    INV7
  1882.     LD    HL,(WHEPCG)
  1883.     CALL    SETMAP
  1884.     CALL    PRICUR
  1885.     LD    A,0
  1886.     RET
  1887. SWAP:    LD    HL,(WHEPCG)
  1888.     LD    DE,SPACE
  1889.     LD    B,16
  1890. SWAP1:    LD    A,(HL)
  1891.     PUSH    AF
  1892.     LD    A,(DE)
  1893.     LD    (HL),A
  1894.     POP    AF
  1895.     LD    (DE),A
  1896.     INC    HL
  1897.     INC    DE
  1898.     DJNZ    SWAP1
  1899.     LD    HL,(WHEPCG)
  1900.     CALL    SETMAP
  1901.     CALL    PRICUR
  1902.     RET
  1903. INVERR:    LD    A,(YPOS)
  1904.     LD    C,A
  1905.     LD    B,0
  1906.     LD    HL,(WHEPCG)
  1907.     ADD    HL,BC
  1908.     LD    B,(HL)
  1909.     LD    A,255
  1910.     SUB    B
  1911.     LD    (HL),A
  1912.     LD    HL,(WHEPCG)
  1913.     CALL    SETMAP
  1914.     CALL    PRICUR
  1915.     RET
  1916. DELETR:    LD    A,(YPOS)
  1917.     LD    C,A
  1918.     LD    B,0
  1919.     LD    HL,(WHEPCG)
  1920.     ADD    HL,BC
  1921.     LD    A,0
  1922.     LD    (HL),A
  1923.     LD    HL,(WHEPCG)
  1924.     CALL    SETMAP
  1925.     CALL    PRICUR
  1926.     RET
  1927. SETR:    LD    A,(YPOS)
  1928.     LD    C,A
  1929.     LD    B,0
  1930.     LD    HL,(WHEPCG)
  1931.     ADD    HL,BC
  1932.     LD    A,255
  1933.     LD    (HL),A
  1934.     LD    HL,(WHEPCG)
  1935.     CALL    SETMAP
  1936.     CALL    PRICUR
  1937.     RET
  1938. MAKEON:    LD    HL,(WHEPCG)
  1939.     LD    A,(YPOS)
  1940.     LD    E,A
  1941.     LD    D,0
  1942.     ADD    HL,DE
  1943.     LD    A,(XPOS)
  1944.     CALL    SETBIT
  1945.     RET
  1946. MAKEOF:    LD    HL,(WHEPCG)
  1947.     LD    A,(YPOS)
  1948.     LD    E,A
  1949.     LD    D,0
  1950.     ADD    HL,DE
  1951.     LD    A,(XPOS)
  1952.     CALL    RESBIT
  1953.     RET
  1954. UNDER:    LD    HL,61440
  1955.     LD    DE,64
  1956.     LD    A,(YPOS)
  1957.     LD    B,A
  1958.     CP    0
  1959.     JR    Z,PRGCU2
  1960. PRIH3:    ADD    HL,DE
  1961.     DJNZ    PRIH3
  1962. PRGCU2:    LD    A,(XPOS)
  1963.     LD    B,A
  1964.     LD    A,7
  1965.     SUB    B
  1966.     LD    E,A
  1967.     LD    D,0
  1968.     ADD    HL,DE
  1969.     ADD    HL,DE
  1970.     EX    DE,HL
  1971.     LD    HL,(WHEPCG)
  1972.     LD    A,(YPOS)
  1973.     LD    C,A
  1974.     LD    B,0
  1975.     ADD    HL,BC
  1976.     LD    A,(XPOS)
  1977.      CALL    WHATBT
  1978.     CALL    ICON
  1979.     RET
  1980. MODEUP:    LD    B,15
  1981.     LD    A,(MODE)
  1982.     CP    0
  1983.     RET    Z
  1984.     LD    B,7
  1985.     CP    1
  1986.     RET    Z
  1987.     LD    B,10
  1988.     RET
  1989. UP:    CALL    UNDER
  1990.     LD    A,(YPOS)
  1991.     DEC    A
  1992.     CP    255
  1993.     JR    NZ,REG1
  1994.     CALL    MODEUP
  1995.     LD    A,B
  1996. REG1:    LD    (YPOS),A
  1997.     CALL    PRICUR
  1998.     RET
  1999. DOWN:    CALL    UNDER
  2000.     LD    A,(YPOS)
  2001.     INC    A
  2002.     PUSH    AF
  2003.     CALL    MODEUP
  2004.     POP    AF
  2005.     INC    B
  2006.     CP    B
  2007.     JR    NZ,REG2
  2008.     LD    A,0
  2009. REG2:    LD    (YPOS),A
  2010.     CALL    PRICUR
  2011.     RET
  2012. LEFT:    CALL    UNDER
  2013.     LD    A,(XPOS)
  2014.     DEC    A
  2015.     CP    255
  2016.     JR    NZ,REG3
  2017.     LD    A,7
  2018. REG3:    LD    (XPOS),A
  2019.     CALL    PRICUR
  2020.     RET
  2021. RIGHT:    CALL    UNDER
  2022.     LD    A,(XPOS)
  2023.     INC    A
  2024.     CP    8
  2025.     JR    NZ,REG4
  2026.     LD    A,0
  2027. REG4:    LD    (XPOS),A
  2028.     CALL    PRICUR
  2029.     RET
  2030. PRICUR:    LD    HL,61440
  2031.     LD    DE,64
  2032.     LD    A,(YPOS)
  2033.     LD    B,A
  2034.     CP    0
  2035.     JR    Z,PRICU2
  2036. PRI3:    ADD    HL,DE
  2037.     DJNZ    PRI3
  2038. PRICU2:    LD    A,(XPOS)
  2039.     LD    B,A
  2040.     LD    A,7
  2041.     SUB    B
  2042.     LD    E,A
  2043.     LD    D,0
  2044.     ADD    HL,DE
  2045.     ADD    HL,DE
  2046.     EX    DE,HL
  2047.     LD    HL,STR34
  2048.     CALL    PRINT
  2049.     RET
  2050. PART8:    LD    HL,CIGHGO
  2051.     LD    (LAST),HL
  2052.     CALL    CLS
  2053.     CALL    DETER
  2054.     CALL    FORMAT
  2055.     LD    A,0
  2056.     LD    (YPOS),A
  2057.     LD    (XPOS),A
  2058.     CALL    SETXY
  2059. HIGLOO:    LD    A,64
  2060.     OUT    (8),A
  2061.     LD    HL,(XYPOS)
  2062.     LD    A,(HL)
  2063.     LD    (BACKST),A
  2064.     LD    (HL),127
  2065. HIGTOO:    CALL    INCHR
  2066.     CP    6
  2067.     JP    Z,FIXMY1
  2068.     CP    3
  2069.     JP    Z,UPDAT3
  2070.     CP    17
  2071.     JP    Z,UIT
  2072.     CP    12
  2073.     CALL    Z,FILCLS
  2074.     LD    B,A
  2075.     LD    A,(DEF2)
  2076.     CP    B
  2077.     JP    Z,EFTGO
  2078.     LD    A,(DEF1)
  2079.     CP    B
  2080.     JP    Z,IGHGO
  2081.     LD    A,(DEF3)
  2082.     CP    B
  2083.     JP    Z,PGO
  2084.     LD    A,(DEF4)
  2085.     CP    B
  2086.     JP    Z,OWNGO
  2087.     LD    A,B
  2088.     CP    27
  2089.     JR    Z,TOGG
  2090.     CP    22        ; ^V - SIMULATES "L"
  2091.     CALL    Z,CONFIL
  2092.     CP    'A'
  2093.     JR    C,PRESS
  2094.     CP    'A'+17
  2095.     JR    NC,PRESS
  2096.     SUB    'A'
  2097.     LD    (SET),A
  2098.     JP    HIGTOO
  2099. TOGG:    LD    B,0
  2100.     LD    A,(TOGG1)
  2101.     CP    0
  2102.     JR    NZ,TOGGH
  2103.     LD    B,8
  2104. TOGGH:    LD    A,B
  2105.     LD    (TOGG1),A
  2106.     JP    HIGTOO
  2107. PRESS:    CP    '0'
  2108.     JP    C,HIGTOO
  2109.     CP    '0'+9
  2110.     JP    NC,HIGTOO
  2111.     SUB    '0'
  2112.     LD    B,A
  2113.     LD    A,(TOGG1)
  2114.     ADD    A,B
  2115.     LD    HL,(XYPOS)
  2116.     SET    3,H
  2117.     LD    B,A
  2118.     LD    C,16
  2119.     LD    IY,SET
  2120.     LD    A,(IY)
  2121.     CP    0
  2122.     JR    Z,PRESS1
  2123.     LD    E,A
  2124.     LD    A,B
  2125.     LD    B,E
  2126. PRE4:    ADD    A,C
  2127.     DJNZ    PRE4
  2128.     LD    B,A
  2129.     LD    A,64
  2130.     OUT    (8),A
  2131. PRESS1:    LD    (HL),B
  2132.     LD    (LASCOL),BC
  2133.     LD    A,0
  2134.     OUT    (8),A
  2135.     LD    HL,(LAST)
  2136.     JP    (HL)
  2137. UPDAT3:    CALL    REDON
  2138.     LD    HL,63488
  2139.     LD    DE,40000+4*1024
  2140.     CALL    DETERM
  2141.     LDIR
  2142.     JP    HIGLOO
  2143. FIXMY1:    CALL    REDON
  2144.     LD    HL,63488
  2145.     LD    DE,40000+4*1024
  2146.     CALL    DETERM
  2147. GVFL:    LD    A,(HL)
  2148.     PUSH    AF
  2149.     LD    A,(DE)
  2150.     LD    (HL),A
  2151.     POP    AF
  2152.     LD    (DE),A
  2153.     DEC    BC
  2154.     INC    HL
  2155.     INC    DE
  2156.     LD    A,B
  2157.     OR    C
  2158.     JR    NZ,GVFL
  2159.     JP    HIGLOO
  2160. EFTGO:    LD    HL,CEFTGO
  2161.     LD    (LAST),HL
  2162.     LD    A,(XPOS)
  2163.     DEC    A
  2164.     CP    255
  2165.     JR    NZ,EFTL
  2166.     LD    A,(MODE)
  2167.     CP    2
  2168.     JR    NZ,EFLGO1
  2169.     LD    A,79
  2170.     JR    EFTL
  2171. EFLGO1:    LD    A,63
  2172. EFTL:    LD    (XPOS),A
  2173.     CALL    REDON
  2174.     CALL    SETXY
  2175.     JP    HIGLOO
  2176. IGHGO:    LD    HL,CIGHGO
  2177.     LD    (LAST),HL
  2178.     LD    A,(XPOS)
  2179.     INC    A
  2180.     LD    B,64
  2181.     CALL    TES641
  2182.     CP    B
  2183.     JR    NZ,IGHG1
  2184.     XOR    A
  2185. IGHG1:    LD    (XPOS),A
  2186.     CALL    REDON
  2187.     CALL    SETXY
  2188.     JP    HIGLOO
  2189. TES641:    PUSH    AF
  2190.     LD    A,(MODE)
  2191.     CP    2
  2192.     JP    NZ,RETT
  2193.     LD    B,80
  2194. RETT:    POP    AF
  2195.     RET
  2196. FILCLS:    LD    HL,63488
  2197.     LD    DE,63489
  2198.     LD    (HL),7
  2199.     CALL    DETERM
  2200.     LDIR
  2201.     CALL    REDON
  2202.     CALL    SETXY
  2203.     RET
  2204. PGO:    LD    HL,CPGO
  2205.     LD    (LAST),HL
  2206.     LD    A,(YPOS)
  2207.     DEC    A
  2208.     CP    255
  2209.     JR    NZ,POGOH
  2210.     LD    A,(MODE)
  2211.     CP    0
  2212.     JR    NZ,PGO1
  2213.     LD    A,15
  2214.     JR    POGOH
  2215. PGO1:    CP    1
  2216.     JR    NZ,PGO2
  2217.     LD    A,31
  2218.     JR    POGOH
  2219. PGO2:    LD    A,23
  2220. POGOH:    LD    (YPOS),A
  2221.     CALL    REDON
  2222.     CALL    SETXY
  2223.     JP    HIGLOO
  2224. OWNGO:    LD    HL,COWNGO
  2225.     LD    (LAST),HL
  2226.     CALL    MODE5
  2227.     LD    A,(YPOS)
  2228.     INC    A
  2229.     CP    B
  2230.     JR    NZ,OWNG
  2231.     XOR    A
  2232. OWNG:    LD    (YPOS),A
  2233.     CALL    REDON
  2234.     CALL    SETXY
  2235.     JP    HIGLOO
  2236. UIT:    LD    HL,(XYPOS)
  2237.     LD    A,(BACKST)
  2238.     LD    (HL),A
  2239.     LD    HL,63488
  2240.     LD    DE,24000
  2241.     CALL    DETERM
  2242.     LDIR
  2243.     CALL    ZB1
  2244.     JP    START
  2245. CPGO:    LD    HL,CPGO
  2246.     LD    (LAST),HL
  2247.     LD    A,(YPOS)
  2248.     DEC    A
  2249.     CP    255
  2250.     JP    Z,HIGTOO
  2251.     LD    (YPOS),A
  2252.     CALL    REDON
  2253.     CALL    SETXY
  2254.     JP    HIGLOO
  2255. COWNGO:    LD    HL,COWNGO
  2256.     LD    (LAST),HL
  2257.     CALL    MODE5
  2258.     LD    A,(YPOS)
  2259.     INC    A
  2260.     CP    B
  2261.     JP    Z,HIGTOO
  2262.     LD    (YPOS),A
  2263.     CALL    REDON
  2264.     CALL    SETXY
  2265.     JP    HIGLOO
  2266. CEFTGO:    LD    HL,CEFTGO
  2267.     LD    (LAST),HL
  2268.     LD    A,(XPOS)
  2269.     DEC    A
  2270.     CP    255
  2271.     JP    Z,HIGTOO
  2272.     LD    (XPOS),A
  2273.     CALL    REDON
  2274.     CALL    SETXY
  2275.     JP    HIGLOO
  2276. CIGHGO:    LD    HL,CIGHGO
  2277.     LD    (LAST),HL
  2278.     LD    A,(XPOS)
  2279.     INC    A
  2280.     LD    B,64
  2281.     CALL    TES641
  2282.     CP    B
  2283.     JP    Z,HIGTOO
  2284.     LD    (XPOS),A
  2285.     CALL    REDON
  2286.     CALL    SETXY
  2287.     JP    HIGLOO
  2288. CONFIL:    LD    HL,(XYPOS)
  2289.     PUSH    HL
  2290. LABE:    LD    BC,(LASCOL)
  2291.     LD    HL,(XYPOS)
  2292.     LD    A,64
  2293.     OUT    (8),A
  2294.     SET    3,H
  2295.     LD    (HL),B
  2296.     RES    3,H
  2297.     INC    HL
  2298.     LD    (XYPOS),HL
  2299.     PUSH    BC
  2300.     PUSH    AF
  2301.     LD    BC,1250
  2302. YOL9P:    DEC    BC
  2303.     LD    A,B
  2304.     OR    C
  2305.     CP    0
  2306.     JR    NZ,YOL9P
  2307.     POP    AF
  2308.     POP    BC
  2309.     LD    A,55
  2310.     CALL    INKEY1
  2311.     JP    NZ,LABE
  2312.     LD    A,0
  2313.     OUT    (8),A
  2314.     POP    HL
  2315.     LD    (XYPOS),HL
  2316.     CALL    REDON
  2317.     CALL    SETXY
  2318.     RET
  2319.  
  2320.  
  2321. MULT:    CP    0
  2322.     RET    Z
  2323.     ADD    IX,BC
  2324.     DEC    A
  2325.     JR    NZ,MULT
  2326.     RET
  2327.  
  2328.  
  2329. FORMAT:            ; ROUTINE TO PRINT SCREEN IN MEMORY ON SCREEN!
  2330.     CALL    CLS
  2331.     LD    A,(COLON)
  2332.     CP    255
  2333.     JR    NZ,NO_COLOR
  2334.     LD    A,64
  2335.     OUT    (8),A
  2336.     LD    DE,63488
  2337.     LD    HL,24000
  2338.     CALL    DETERM
  2339.     LDIR
  2340.     XOR    A
  2341.     OUT    (8),A
  2342. NO_COLOR:
  2343.     LD    A,(HIRESII)
  2344.     CP    0
  2345.     JR    Z,NORM_PIC
  2346.     LD    A,144
  2347.     OUT    (28),A
  2348.     LD    DE,61440
  2349.     LD    HL,24000+2048
  2350.     CALL    DETERM
  2351.     LDIR
  2352.     LD    A,135
  2353.     OUT    (28),A
  2354.     LD    HL,24000+2*2048
  2355.     LD    DE,63488
  2356.     LD    A,135
  2357.     LD    B,8
  2358. MORE_ATTR:
  2359.     PUSH    BC
  2360.     PUSH    DE
  2361.     LD    BC,2048
  2362.     LDIR
  2363.     POP    DE
  2364.     POP    BC
  2365.     DEC    A
  2366.     OUT    (28),A
  2367.     DJNZ    MORE_ATTR
  2368.     LD    A,128
  2369.     OUT    (28),A
  2370.     JR    DO_SS
  2371. NORM_PIC:
  2372.     LD    DE,63488
  2373.     LD    HL,24000+2*2048
  2374.     LD    BC,2048
  2375.     LDIR
  2376. DO_SS:    LD    DE,61440
  2377.     LD    HL,44480
  2378.     CALL    DETERM
  2379.     LDIR
  2380.     RET
  2381.  
  2382. CAPTURE:            ; ROUTINE TO PRINT SCREEN IN MEMORY ON SCREEN!
  2383.     LD    A,(COLON)
  2384.     CP    255
  2385.     JR    NZ,NO_LOR
  2386.     LD    A,64
  2387.     OUT    (8),A
  2388.     LD    HL,63488
  2389.     LD    DE,24000
  2390.     CALL    DETERM
  2391.     LDIR
  2392.     XOR    A
  2393.     OUT    (8),A
  2394. NO_LOR:
  2395.     LD    A,144
  2396.     OUT    (28),A
  2397.     LD    HL,61440
  2398.     LD    DE,24000+2048
  2399.     CALL    DETERM
  2400.     LDIR
  2401.     LD    A,135
  2402.     OUT    (28),A
  2403.     LD    DE,24000+2*2048
  2404.     LD    HL,63488
  2405.     LD    A,135
  2406.     LD    B,8
  2407. RE_ATTR:
  2408.     PUSH    BC
  2409.     PUSH    HL
  2410.     LD    BC,2048
  2411.     LDIR
  2412.     POP    HL
  2413.     POP    BC
  2414.     DEC    A
  2415.     OUT    (28),A
  2416.     DJNZ    RE_ATTR
  2417.     LD    A,128
  2418.     OUT    (28),A
  2419.     LD    HL,61440
  2420.     LD    DE,44480
  2421.     CALL    DETERM
  2422.     LDIR
  2423.     RET
  2424.  
  2425. GETNUM:    LD    HL,24000+2048
  2426.     LD    DE,2048
  2427.     LD    A,(BANK_NO)
  2428. GETN1:    ADD    HL,DE
  2429.     DEC    A
  2430.     RET    Z
  2431.     JR    GETN1
  2432.  
  2433. WIPE_ATTR:
  2434.     LD    A,(PREMIUM)
  2435.     CP    0
  2436.     RET    Z
  2437.     LD    A,144
  2438.     OUT    (28),A
  2439.     LD    HL,61440
  2440.     LD    DE,61441
  2441.     LD    BC,2047
  2442.     LD    (HL),0
  2443.     LDIR
  2444.     LD    A,128
  2445.     OUT    (28),A
  2446.     RET
  2447.  
  2448. SAVEALL:
  2449.     CALL    REDON
  2450.     LD    HL,61440
  2451.     LD    DE,22000
  2452.     CALL    DETERM
  2453.     LDIR
  2454.     LD    A,64
  2455.     OUT    (8),A
  2456.     LD    DE,19500
  2457.     LD    HL,63488
  2458.     CALL    DETERM
  2459.     LDIR
  2460.     LD    A,0
  2461.     OUT    (8),A
  2462.     LD    A,144
  2463.     OUT    (28),A
  2464.     LD    DE,17000
  2465.     LD    HL,61440
  2466.     CALL    DETERM
  2467.     LDIR
  2468.     LD    A,128
  2469.     OUT    (28),A
  2470.     RET
  2471.  
  2472. FIXALL:    LD    DE,61440
  2473.     LD    HL,22000
  2474.     CALL    DETERM
  2475.     LDIR
  2476.     LD    A,64
  2477.     OUT    (8),A
  2478.     LD    HL,19500
  2479.     LD    DE,63488
  2480.     CALL    DETERM
  2481.     LDIR
  2482.     LD    A,0
  2483.     OUT    (8),A
  2484.     LD    A,144
  2485.     OUT    (28),A
  2486.     LD    HL,17000
  2487.     LD    DE,61440
  2488.     CALL    DETERM
  2489.     LDIR
  2490.     LD    A,128
  2491.     OUT    (28),A
  2492.     RET
  2493.  
  2494.  
  2495. CHN_BANK:
  2496.     LD    A,(HIRESII)
  2497.     CP    0
  2498.     JP    Z,GOIT
  2499.     CALL    GETNUM
  2500.     EX    DE,HL
  2501.     LD    HL,63488
  2502.     LD    BC,2048
  2503.     LDIR
  2504.     LD    A,(BANK_NO)
  2505.     INC    A
  2506.     CP    9
  2507.     JR    NZ,CHN_O
  2508.     LD    A,1
  2509. CHN_O:    LD    (BANK_NO),A
  2510.     CALL    GETNUM
  2511.     LD    DE,63488
  2512.     LD    BC,2048
  2513.     LDIR
  2514.     JP    GOIT
  2515.  
  2516.  
  2517. DRAW:    XOR    A
  2518.     LD    (YPOS),A
  2519.     LD    (XPOS),A
  2520.     LD    (BITL8),A
  2521.     LD    (BITU8),A
  2522.     LD    (MODE),A
  2523.     CALL    SETXY
  2524.     CALL    CLS
  2525.     CALL    DETER
  2526.     CALL    FORMAT
  2527.     JP    VARITI
  2528.  
  2529. SETBIT:    CP    0
  2530.     JR    NZ,YOP1
  2531.     SET    0,(HL)
  2532.     RET
  2533. YOP1:    CP    1
  2534.     JR    NZ,YOP2
  2535.     SET    1,(HL)
  2536.     RET
  2537. YOP2:    CP    2
  2538.     JR    NZ,YOP3
  2539.     SET    2,(HL)
  2540.     RET
  2541. YOP3:    CP    3
  2542.     JR    NZ,YOP4
  2543.     SET    3,(HL)
  2544.     RET
  2545. YOP4:    CP    4
  2546.     JR    NZ,YOP5
  2547.     SET    4,(HL)
  2548.     RET
  2549. YOP5:    CP    5
  2550.     JR    NZ,YOP6
  2551.     SET    5,(HL)
  2552.     RET
  2553. YOP6:    CP    6
  2554.     JR    NZ,YOP7
  2555.     SET    6,(HL)
  2556.     RET
  2557. YOP7:    SET    7,(HL)
  2558.     RET
  2559. RESBIT:    CP    0
  2560.     JR    NZ,RED1
  2561.     RES    0,(HL)
  2562.     RET
  2563. RED1:    CP    1
  2564.     JR    NZ,RED2
  2565.     RES    1,(HL)
  2566.     RET
  2567. RED2:    CP    2
  2568.     JR    NZ,RED3
  2569.     RES    2,(HL)
  2570.     RET
  2571. RED3:    CP    3
  2572.     JR    NZ,RED4
  2573.     RES    3,(HL)
  2574.     RET
  2575. RED4:    CP    4
  2576.     JR    NZ,RED5
  2577.     RES    4,(HL)
  2578.     RET
  2579. RED5:    CP    5
  2580.     JR    NZ,RED6
  2581.     RES    5,(HL)
  2582.     RET
  2583. RED6:    CP    6
  2584.     JR    NZ,RED7
  2585.     RES    6,(HL)
  2586.     RET
  2587. RED7:    RES    7,(HL)
  2588.     RET
  2589.  
  2590. GETPCG:    LD    A,(HIRESII)
  2591.     CP    0
  2592.     CALL    NZ,SET_BANK
  2593.     LD    A,(HL)
  2594.     BIT    7,A
  2595.     JR    Z,MANUP
  2596.     RES    7,A
  2597.     LD    IX,0
  2598.     LD    BC,16
  2599.     CALL    MULT
  2600.     PUSH    IX
  2601.     POP    HL
  2602.     LD    DE,63488
  2603.     ADD    HL,DE
  2604.     RET
  2605.  
  2606. MANUP:    LD    HL,(XYPOS)
  2607.     LD    A,(HL)
  2608.     PUSH    AF
  2609.     LD    (HL),'^'
  2610.     CALL    WAIT
  2611.     LD    HL,(XYPOS)
  2612.     POP    AF
  2613.     LD    (HL),A
  2614.     POP    HL
  2615.     RET
  2616.  
  2617. SET_BANK:
  2618.     PUSH    HL
  2619.     LD    DE,-61440+24000+2048
  2620.     ADD    HL,DE
  2621.     LD    A,(HL)
  2622.     SET    7,A
  2623.     OUT    (28),A
  2624.     POP    HL
  2625.     RET
  2626.  
  2627.  
  2628. MANIP:    LD    HL,(XYPOS)
  2629.     CALL    GETPCG
  2630.     LD    A,(BITU8)
  2631.     LD    E,A
  2632.     LD    D,0
  2633.     ADD    HL,DE
  2634.     LD    A,(BITL8)
  2635.     CALL    WHATBT
  2636.     JP    NZ,RESOL
  2637.     CALL    SETBIT
  2638.     PUSH    AF
  2639.     CALL    WAIT
  2640.     POP    AF
  2641.     CALL    RESBIT
  2642.     RET
  2643. RESOL:    CALL    RESBIT
  2644.     PUSH    AF
  2645.     CALL    WAIT
  2646.     POP    AF
  2647.     CALL    SETBIT
  2648.     RET
  2649.  
  2650. WAIT:    LD    BC,3000
  2651. W1:    DEC    BC
  2652.     LD    A,B
  2653.     OR    C
  2654.     JR    NZ,W1            
  2655.     RET
  2656.  
  2657. VARITI:    CALL    MANIP
  2658.     LD    A,55
  2659.     CALL    INKEY1
  2660.     CALL    Z,FG1
  2661.     LD    A,7
  2662.     CALL    INKEY1
  2663.     CALL    Z,FG2
  2664.     LD    A,17
  2665.     CALL    INKEY1
  2666.     JP    Z,GBTGD
  2667.     LD    A,1
  2668.     CALL    INKEY1
  2669.     CALL    Z,UPBT
  2670.     LD    A,56
  2671.     CALL    INKEY1
  2672.     CALL    Z,UPBT
  2673.     LD    A,58
  2674.     CALL    INKEY1
  2675.     CALL    Z,DWBT
  2676.     LD    A,26
  2677.     CALL    INKEY1
  2678.     CALL    Z,DWBT
  2679.     LD    A,44
  2680.     CALL    INKEY1
  2681.     CALL    Z,LFBT
  2682.     LD    A,59
  2683.     CALL    INKEY1
  2684.     CALL    Z,LFBT
  2685.     LD    A,62
  2686.     CALL    INKEY1
  2687.     CALL    Z,RGBT
  2688.     LD    A,46
  2689.     CALL    INKEY1
  2690.     CALL    Z,RGBT
  2691.     JP    VARITI
  2692.  
  2693.  
  2694.  
  2695. FG1:    LD    HL,(XYPOS)
  2696.     CALL    GETPCG
  2697.     LD    A,(BITU8)
  2698.     LD    E,A
  2699.     LD    D,0
  2700.     ADD    HL,DE
  2701.     LD    A,(BITL8)
  2702.     CALL    SETBIT
  2703.     RET
  2704. FG2:    LD    HL,(XYPOS)
  2705.     CALL    GETPCG
  2706.     LD    A,(BITU8)
  2707.     LD    E,A
  2708.     LD    D,0
  2709.     ADD    HL,DE
  2710.     LD    A,(BITL8)
  2711.     CALL    RESBIT
  2712.     RET
  2713. UPBT:    LD    A,(BITU8)
  2714.     DEC    A
  2715.     CP    255
  2716.     JR    NZ,UPBT1
  2717.     LD    A,(YPOS)
  2718.     DEC    A
  2719.     CP    255
  2720.     JR    NZ,UPBT2
  2721.     LD    A,15
  2722. UPBT2:    LD    (YPOS),A
  2723.     CALL    SETXY
  2724.     LD    A,15
  2725. UPBT1:    LD    (BITU8),A
  2726.     RET
  2727.  
  2728.  
  2729. DWBT:    LD    A,(BITU8)
  2730.     INC    A
  2731.     CP    16
  2732.     JR    NZ,DWBT1
  2733.  
  2734.     LD    A,(YPOS)
  2735.     INC    A
  2736.     CP    16
  2737.     JR    NZ,DWBT2
  2738.     XOR    A
  2739. DWBT2:    LD    (YPOS),A
  2740.     CALL    SETXY
  2741.     XOR    A
  2742. DWBT1:    LD    (BITU8),A
  2743.     RET
  2744.  
  2745. RGBT:    LD    A,(BITL8)
  2746.     DEC    A
  2747.     CP    255
  2748.     JR    NZ,LFBT1
  2749.  
  2750.     LD    A,(XPOS)
  2751.     INC    A
  2752.     CP    64
  2753.     JR    NZ,LFBT2
  2754.     XOR    A
  2755. LFBT2:    LD    (XPOS),A
  2756.     CALL    SETXY
  2757.     LD    A,7
  2758. LFBT1:    LD    (BITL8),A
  2759.     RET
  2760.  
  2761. LFBT:    LD    A,(BITL8)
  2762.     INC    A
  2763.     CP    8
  2764.     JR    NZ,RGBT1
  2765.  
  2766.     LD    A,(XPOS)
  2767.     DEC    A
  2768.     CP    255
  2769.     JR    NZ,RGBT2
  2770.     LD    A,63
  2771. RGBT2:    LD    (XPOS),A
  2772.     CALL    SETXY
  2773.     XOR    A
  2774. RGBT1:    LD    (BITL8),A
  2775.     RET
  2776.  
  2777. GBTGD:    LD    A,(HIRESII)
  2778.     CP    0
  2779.     JR    NZ,GBTGD1
  2780.     LD    DE,24000+2048*2
  2781.     LD    HL,63488
  2782.     LD    BC,2048
  2783.     LDIR
  2784.     JP    STAT
  2785.  
  2786. GBTGD1:    LD    DE,24000+2*2048
  2787.     LD    HL,63488
  2788.     LD    A,135
  2789.     OUT    (28),A
  2790.     LD    B,8
  2791. ORE_ATTR:
  2792.     PUSH    BC
  2793.     PUSH    HL
  2794.     LD    BC,2048
  2795.     LDIR
  2796.     POP    HL
  2797.     POP    BC
  2798.     DEC    A
  2799.     OUT    (28),A
  2800.     DJNZ    ORE_ATTR
  2801.     LD    A,128
  2802.     OUT    (28),A
  2803.     JP    STAT
  2804.  
  2805.  
  2806. SKIP_LOAD:
  2807.     PUSH    IY
  2808.     PUSH    BC
  2809.     PUSH    AF
  2810.     PUSH    HL
  2811.     CALL    CLSPRINT
  2812.     POP    HL
  2813.     LD    DE,61440+20
  2814.     CALL    PRINT
  2815.     LD    HL,61440+64+20
  2816.     CALL    INPUT
  2817.     CALL    FILEXI
  2818.     CALL    CLS
  2819.     POP    AF
  2820.     CALL    LOAD_SEG
  2821.     POP    BC
  2822.     POP    HL
  2823.     CALL    LOOP1
  2824.     CALL    DETER
  2825.     CALL    FORMAT
  2826.     CALL    ZB1
  2827.     CALL    INCHR
  2828.     JP    START
  2829.  
  2830. LOAD_SEG:
  2831.     EX    AF,AF'
  2832.     CALL    IFFILE
  2833.     EX    AF,AF'
  2834.     LD    B,A
  2835. LOAD_SEG2:
  2836.     PUSH    BC
  2837.     LD    HL,17000
  2838.     LD    B,1
  2839.     CALL    LOOP1
  2840.     POP    BC
  2841.     DJNZ    LOAD_SEG2
  2842.     RET
  2843.  
  2844.  
  2845.  
  2846. CLSPRINT:
  2847.     CALL    CLS
  2848.     LD    DE,61440+6*64
  2849.     LD    HL,PESH1
  2850.     CALL    PRINT
  2851.     LD    A,(COLSECT)
  2852.     CP    0
  2853.     JR    Z,CLSPR1
  2854.  
  2855.     LD    DE,61440+8*64
  2856.     LD    HL,PESH2
  2857.     CALL    PRINT
  2858.  
  2859. CLSPR1:    LD    A,(COLSCREEN)
  2860.     CP    0
  2861.     JR    Z,CLSPR2
  2862.  
  2863.  
  2864.     LD    DE,61440+9*64
  2865.     LD    HL,PESH3
  2866.     CALL    PRINT
  2867.  
  2868.  
  2869.  
  2870. CLSPR2:    LD    A,(PCGON)
  2871.     CP    0
  2872.     JR    Z,CLSPR3
  2873.  
  2874.     LD    DE,61440+10*64
  2875.     LD    HL,PESH4
  2876.     CALL    PRINT
  2877.  
  2878. CLSPR3:    LD    A,(SCRON)
  2879.     CP    0
  2880.     JR    Z,CLSPR4
  2881.  
  2882.     LD    DE,61440+11*64
  2883.     LD    HL,PESH5
  2884.     CALL    PRINT
  2885.  
  2886.  
  2887. CLSPR4:    LD    A,(ATTRON)
  2888.     CP    0
  2889.     JR    Z,CLSPR5
  2890.     LD    DE,61440+12*64
  2891.     LD    HL,PESH6
  2892.     CALL    PRINT
  2893.  
  2894. CLSPR5:    LD    DE,61440+14*64
  2895.     LD    HL,PESH7
  2896.     CALL    PRINT
  2897.     LD    A,(MODE)
  2898.     CALL    SELECT_MODE
  2899.     CALL    PRINT
  2900.     RET
  2901.