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 / COLTABX.Z80 < prev    next >
Text File  |  1991-07-10  |  6KB  |  451 lines

  1. COLTABX:    CALL    CLS
  2.     LD    A,(PREMIUM)
  3.     CP    0
  4.     JP    Z,CHER1
  5.     LD    A,144
  6.     OUT    (28),A
  7.     LD    HL,61440
  8.     LD    DE,61441
  9.     LD    BC,2048
  10.     LD    (HL),0
  11.     LDIR
  12.     XOR    A
  13.     OUT    (28),A
  14. CHER1:    LD    HL,24000
  15.     LD    DE,20000
  16.     LD    BC,2048
  17.     LDIR
  18.     LD    HL,COLOUR_SECTOR
  19.     LD    DE,19000
  20.     LD    BC,128
  21.     LDIR
  22.  
  23. CHER21:    CALL    CLS
  24.     CALL    CHER2
  25.     LD    HL,LSTR1
  26.     LD    DE,61440+8*64+64
  27.     CALL    PRINT
  28.     LD    DE,61440+8*64+128
  29.     CALL    PRINT
  30.     LD    DE,61440+8*64+128+64
  31.     CALL    PRINT
  32.     LD    DE,61440+8*64+256
  33.     CALL    PRINT
  34.     LD    DE,61440+8*64+256+64
  35.     CALL    PRINT
  36.     LD    DE,61440+8*64+256+128
  37.     CALL    PRINT
  38.     LD    DE,61440+8*64+256+128+64
  39.     CALL    PRINT
  40. CHER3:    CALL    INCHRU
  41.     CP    '1'
  42.     JP    Z,CHER4
  43.     CP    '2'
  44.     JP    Z,CHER5
  45.     CP    '3'
  46.     JP    Z,CHER6
  47.     CP    '6'
  48.     JP    Z,CHER7
  49.     CP    '4'
  50.     JP    Z,CHER8
  51.     CP    '5'
  52.     JP    Z,CHER9
  53.     CP    27
  54.     JP    Z,STAT
  55.     JP    CHER3
  56. CHER5:    CALL    DETER
  57.     CALL    FORMAT
  58.     CALL    INCHR
  59.     CALL    ZB1
  60.     JP    CHER21
  61. CHER7:    LD    DE,24000
  62.     LD    HL,20000
  63.     LD    BC,2048
  64.     CALL    CHER10
  65.     LD    DE,COLOUR_SECTOR
  66.     LD    HL,19000
  67.     LD    BC,128
  68.     CALL    CHER10
  69.     JP    CHER21
  70.  
  71. CHER10:
  72.     LD    A,(HL)
  73.     PUSH    AF
  74.     LD    A,(DE)
  75.     LD    (HL),A
  76.     POP    AF
  77.     LD    (DE),A
  78.     INC    DE
  79.     INC    HL
  80.     DEC    BC
  81.     LD    A,B
  82.     OR    C
  83.     JR    NZ,CHER10
  84.     RET
  85.  
  86.  
  87.  
  88. OUT864:    PUSH    AF
  89.     LD    A,64
  90.     OUT    (8),A
  91.     POP    AF
  92.     RET
  93. OUT80:    PUSH    AF
  94.     XOR    A
  95.     OUT    (8),A
  96.     POP    AF
  97.     RET
  98.  
  99. CHER9:    LD    HL,COLOUR_SECTOR
  100.     LD    DE,COLOUR_SECTOR+1
  101.     LD    BC,127
  102.     LD    (HL),7
  103.     LDIR
  104.     JP    CHER21
  105.  
  106.  
  107.  
  108.  
  109. CHER4:    CALL    CHER11
  110.     JP    CHER21
  111.  
  112.  
  113. CHER11:    LD    IY,44480
  114.     LD    BC,2048
  115.     LD    IX,24000
  116.  
  117. CHER12:    LD    A,(IY)
  118.     RES    7,A
  119.     LD    DE,COLOUR_SECTOR
  120.     LD    H,0
  121.     LD    L,A
  122.     ADD    HL,DE
  123.     LD    A,(HL)
  124.     LD    (IX),A
  125.     INC    IY
  126.     INC    IX
  127.     DEC    BC
  128.     LD    A,B
  129.     OR    C
  130.     JP    NZ,CHER12
  131.     RET
  132.  
  133. CHER13:
  134.     LD    HL,CSTR0
  135.     LD    DE,61440+64*9
  136.     CALL    PRINT
  137.     LD    DE,61440+64*10
  138.     CALL    PRINT
  139.     LD    DE,61440+64*11
  140.     CALL    PRINT
  141.     LD    DE,61440+64*12
  142.     CALL    PRINT
  143.  
  144.     LD    DE,61456+64*9
  145.     CALL    PRINT
  146.     LD    DE,61456+64*10
  147.     CALL    PRINT
  148.     LD    DE,61456+64*11
  149.     CALL    PRINT
  150.     LD    DE,61456+64*12
  151.     CALL    PRINT
  152.  
  153.     LD    DE,61440+32+64*9
  154.     CALL    PRINT
  155.     LD    DE,61440+32+64*10
  156.     CALL    PRINT
  157.     LD    DE,61440+32+64*11
  158.     CALL    PRINT
  159.     LD    DE,61440+32+64*12
  160.     CALL    PRINT
  161.     LD    DE,61440+48+64*9
  162.     CALL    PRINT
  163.     LD    DE,61440+48+64*10
  164.     CALL    PRINT
  165.     LD    DE,61440+48+64*11
  166.     CALL    PRINT
  167.     LD    DE,61440+48+64*12
  168.     CALL    PRINT
  169.     RET
  170.  
  171. CNVRTP:    CP    8
  172.     JR    NC,CNVRP1
  173.     ADD    A,'0'
  174.     RET
  175. CNVRP1:    ADD    A,'A'-8
  176.     RET
  177.  
  178. CHER8:    CALL    CLS
  179.     CALL    CHER2
  180.     CALL    CHER13
  181. ;    LD    HL,FARTO
  182. ;    LD    DE,61440+64*13+10
  183. ;    CALL    PRINT
  184. GOP3:    LD    A,(CHER17)
  185.     RRCA
  186.     RRCA
  187.     RRCA
  188.     RRCA
  189.     LD    HL,CURBAK
  190.     OR    (HL)
  191.     LD    DE,61440+15*64
  192.     CALL    PRINT
  193.     INC    DE
  194.     LD    A,(CHER17)
  195.     CALL    CNVRTP
  196.     LD    (DE),A
  197.     LD    (CHER20),DE
  198. GOP2:    CALL    INCHRU
  199.     CP    27
  200.     JP    Z,CHER21
  201.     CP    ' '
  202.     JP    Z,CHER21
  203. ;    CP    'X'
  204. ;    JP    Z,RHEX1
  205.     CP    '0'
  206.     JR    C,GOP2
  207.     CP    '7'+1
  208.     JR    C,DOPEI
  209.  
  210.     CP    'A'
  211.     JR    C,GOP2
  212.     CP    'H'+1
  213.     JR    NC,GOP2
  214.  
  215.     LD    DE,(CHER20)
  216.     LD    (DE),A
  217.     SUB    'A'-8
  218.     LD    (CHER17),A
  219.     JP    RHEX1            ; GOP3
  220.  
  221. DOPEI:    LD    DE,(CHER20)
  222.     LD    (DE),A
  223.     SUB    '0'
  224.     LD    (CHER17),A
  225.     JP    RHEX1            ; GOP3
  226.  
  227.  
  228.  
  229. RHEX1:    LD    A,(CHER17)
  230.     RRCA
  231.     RRCA
  232.     RRCA
  233.     RRCA
  234.     LD    B,128
  235.     LD    HL,COLOUR_SECTOR
  236. BAKLP:    PUSH    BC
  237.     PUSH    AF
  238.     PUSH    AF
  239.     LD    A,(HL)
  240.     AND    15
  241.     LD    B,A
  242.     POP    AF
  243.     OR    B
  244.     LD    (HL),A
  245.     POP    AF
  246.     INC    HL
  247.     POP    BC
  248.     DJNZ    BAKLP
  249.     CALL    CHER2
  250.     CALL    INCHR
  251.     CALL    CHER13
  252.     JP    GOP3
  253.  
  254. CHER6:    LD    A,0
  255.     LD    (CHER16),A
  256.     CALL    CLS
  257.     CALL    CHER2
  258.     CALL    CHER13
  259. CHER18:    LD    HL,61443
  260.     LD    A,(CHER16)
  261.     LD    DE,4
  262.     CP    0
  263.     JR    Z,HERE1
  264. HEREX:    ADD    HL,DE
  265.     DEC    A
  266.     JR    NZ,HEREX
  267. HERE1:    LD    (CHER15),HL
  268.     LD    (HL),13
  269.     LD    HL,CURFOR
  270.     LD    DE,61440+14*64
  271.     CALL    PRINT
  272.     INC    DE
  273.     LD    (CHER20),DE
  274.  
  275.     LD    A,(CHER17)
  276.     RRCA
  277.     RRCA
  278.     RRCA
  279.     RRCA
  280.     LD    HL,CURBAK
  281.     OR    (HL)
  282.     LD    DE,61440+15*64
  283.     CALL    PRINT
  284.     INC    DE
  285.     LD    A,(CHER17)
  286.     CALL    CNVRTP
  287.     LD    (DE),A
  288.  
  289.     LD    A,(CHER16)
  290.     LD    E,A
  291.     LD    D,0
  292.     LD    HL,COLOUR_SECTOR
  293.     ADD    HL,DE
  294.     LD    A,(HL)
  295.     AND    15
  296.     CALL    CNVRTP    
  297.     LD    HL,(CHER20)
  298.     LD    (HL),A
  299.  
  300. CHER19:    CALL    INCHRU
  301.     CP    27
  302.     JP    Z,CHER21
  303.     CP    ' '
  304.     JP    Z,CHER21
  305.     CP    4
  306.     JP    Z,RIGHT69
  307.     CP    5
  308.     JP    Z,UP69
  309.     CP    24
  310.     JP    Z,DOWN69
  311.     CP    19
  312.     JP    Z,LEFT69
  313.  
  314.     CP    10
  315.     JP    Z,RIGHT69
  316.     CP    9
  317.     JP    Z,UP69
  318.     CP    13
  319.     JP    Z,DOWN69
  320.     CP    8
  321.     JP    Z,LEFT69
  322.  
  323.     CP    '0'
  324.     JR    C,CHER19
  325.     CP    '7'+1
  326.     JR    C,DOPEL69
  327.  
  328.     CP    'A'
  329.     JR    C,CHER19
  330.     CP    'H'+1
  331.     JR    NC,CHER19
  332.  
  333.     LD    DE,(CHER20)
  334.     PUSH    AF
  335.     LD    A,(DE)
  336.     AND    240            ; EXTRACT BACKGROUND COLOUR
  337.     LD    B,A
  338.     POP    AF
  339.     OR    B
  340.     LD    (DE),A
  341.     SUB    'A'-8
  342.     JP    CHER23
  343.  
  344. DOPEL69:    LD    DE,(CHER20)
  345.     PUSH    AF
  346.     LD    A,(DE)
  347.     AND    240
  348.     LD    B,A
  349.     POP    AF
  350.     OR    B
  351.     LD    (DE),A
  352.     SUB    '0'
  353.     JP    CHER23
  354.  
  355.  
  356.  
  357. LEFT69:    LD    HL,(CHER15)
  358.     LD    (HL),32
  359.     LD    A,(CHER16)
  360.     DEC    A
  361.     RES    7,A
  362.     LD    (CHER16),A
  363.     JP    CHER18
  364. RIGHT69:    LD    HL,(CHER15)
  365.     LD    (HL),32
  366.     LD    A,(CHER16)
  367.     INC    A
  368.     RES    7,A
  369.     LD    (CHER16),A
  370.     JP    CHER18
  371. UP69:    LD    HL,(CHER15)
  372.     LD    (HL),32
  373.     LD    A,(CHER16)
  374.     SUB    16
  375.     RES    7,A
  376.     LD    (CHER16),A
  377.     JP    CHER18
  378. DOWN69:    LD    HL,(CHER15)
  379.     LD    (HL),32
  380.     LD    A,(CHER16)
  381.     ADD    A,16
  382.     RES    7,A
  383.     LD    (CHER16),A
  384.     JP    CHER18
  385.  
  386. CHER23:    PUSH    AF
  387.     LD    A,(CHER16)
  388.     LD    D,0
  389.     LD    E,A
  390.     LD    HL,COLOUR_SECTOR
  391.     ADD    HL,DE
  392.     POP    BC
  393.     LD    A,(CHER17)
  394.     RRCA
  395.     RRCA
  396.     RRCA
  397.     RRCA
  398.     OR    B
  399.     LD    (HL),A
  400.     CALL    CHER2
  401.     LD    HL,(CHER15)
  402.     LD    (HL),32
  403.     LD    A,(CHER16)
  404.     INC    A
  405.     RES    7,A
  406.     LD    (CHER16),A
  407.     JP    CHER18
  408.  
  409.  
  410.  
  411. CHER2:    LD    DE,61440
  412.     LD    IY,COLOUR_SECTOR
  413.     LD    A,64
  414.     OUT    (8),A
  415.     LD    HL,63488
  416.     XOR    A
  417. PCGL1:    LD    (DE),A
  418.     INC    DE
  419.     INC    DE
  420.     INC    HL
  421.     INC    HL
  422.     PUSH    AF
  423.     SET    7,A
  424.     LD    (DE),A
  425.     LD    A,(COLON)
  426.     CP    0
  427.     JR    Z,ITS_OVER
  428.     LD    A,(IY)
  429.     LD    (HL),A
  430. ITS_OVER:
  431.     POP    AF
  432.     INC    DE
  433.     INC    DE
  434.     INC    HL
  435.     INC    HL
  436.     INC    IY
  437.     INC    A
  438.     CP    128
  439.     JR    NZ,PCGL1
  440.     XOR    A
  441.     OUT    (8),A
  442.     RET
  443.  
  444. INCHRU:    CALL    INCHR
  445.     CP    'a'
  446.     RET    C
  447.     CP    'z'+1
  448.     RET    NC
  449.     RES    5,A
  450.     RET
  451.