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 / SCNTODS.ARC / SCNTODS.Z80 < prev   
Text File  |  1989-09-27  |  4KB  |  334 lines

  1.     ASEG
  2.     .Z80
  3.     .RADIX 10D
  4.  
  5.     MACLIB    MACROS.LIB
  6.  
  7.     ORG    100H
  8.  
  9.     JP    OVER
  10.  
  11. BDOS    EQU    5
  12. CR    EQU    0DH
  13. LF    EQU    0AH
  14. FILEN:    DS    12
  15. INTO:    DB    13,'EPTEMP  $$$'
  16.     DB    6BH
  17.     DB    40H
  18.     DB    51H
  19.     DB    37H
  20.     DB    12H
  21.     DB    09H
  22.     DB    12H
  23.     DB    12H
  24.     DB    48H
  25.     DB    0FH
  26.     DB    2FH
  27.     DB    0FH
  28.     DB    0
  29.     DB    0
  30.     DB    0
  31. CTREND: DB    0
  32.  
  33. SAVEM:    LD    DE,128
  34.     PUSH    BC
  35.     PUSH    HL
  36.     PUSH    DE
  37.     LD    C,26
  38.     EX    DE,HL
  39.     CALL    BDOS
  40.     LD    DE,5CH
  41.     LD    C,21
  42.     CALL    BDOS
  43.     POP    DE
  44.     POP    HL
  45.     POP    BC
  46.     ADD    HL,DE
  47.     DEC    BC
  48.     LD    A,B
  49.     OR    C
  50.     JP    NZ,SAVEM
  51. ;    LD    C,16
  52. ;    LD    DE,5CH
  53. ;    CALL    BDOS
  54.     RET
  55.  
  56. NEWFIL:    CALL    RESFIL
  57.     XOR    A
  58.     LD    (7CH),A
  59.     PUSH    HL
  60.     PUSH    BC
  61.     LD    HL,5CH+12
  62.     LD    DE,5CH+13
  63.     LD    BC,5
  64.     LD    (HL),0
  65.     LDIR
  66.     POP    BC
  67.     POP    HL
  68.     PUSH    HL
  69.     PUSH    BC
  70.     LD    C,19
  71.     LD    DE,5CH
  72.     CALL    BDOS
  73.     LD    C,22
  74.     LD    DE,5CH
  75.     CALL    BDOS
  76.     LD    C,15
  77.     LD    DE,5CH
  78.     CALL    BDOS
  79.     POP    BC
  80.     POP    HL
  81.     RET
  82.  
  83. CLOSE:    LD    C,16
  84.     LD    DE,5CH
  85.     CALL    BDOS
  86.     RET
  87.  
  88. LOADM:    PUSHALL
  89.     PUSH    HL
  90.     LD    A,0
  91.     LD    (7CH),A
  92.     LD    HL,5CH+12
  93.     LD    DE,5CH+13
  94.     LD    BC,6
  95.     LD    (HL),0
  96.     LDIR
  97.     LD    DE,5CH
  98.     LD    C,15
  99.     CALL    BDOS
  100.     CP    0FFH
  101.     JP    Z,LODERR
  102.     POP    HL
  103.     LD    DE,128
  104. LOOP1:  EX    DE,HL
  105.     PUSH    HL
  106.     PUSH    DE
  107.     LD    C,26
  108.     CALL    BDOS        ; FILE LOAD ROUTINE
  109.     POP    DE
  110.     POP    HL
  111.     EX    DE,HL
  112.     ADD    HL,DE
  113.     PUSH    HL
  114.     PUSH    DE
  115.     LD    DE,5CH
  116.     LD    C,20
  117.     CALL    BDOS
  118.     POP    DE
  119.     POP    HL
  120.     OR    A
  121.     JR    Z,LOOP1
  122.     LD    DE,5CH
  123.     LD    C,16
  124.     CALL    BDOS
  125.     POPALL
  126.     LD    A,0
  127.     RET
  128. LODERR:    POP    HL
  129.     POPALL
  130.     LD    A,2
  131.     RET
  132.  
  133. GETKEY:    BIOS    2
  134.     RET
  135.  
  136. STOFIL:    LD    HL,INTO
  137.     LD    DE,FILEN
  138.     LD    BC,12
  139.     LDIR
  140.     LD    HL,FILEN
  141.     LD    (HL),13
  142.     CALL    RESFIL
  143.     RET
  144.  
  145. RESFIL:    PUSHALL
  146.     LD    DE,5CH
  147.     LD    HL,FILEN
  148.     LD    BC,12
  149.     LDIR
  150.     XOR    A
  151.     LD    (7CH),A
  152.     LD    HL,5CH+12
  153.     LD    DE,5CH+13
  154.     LD    BC,6
  155.     LD    (HL),0
  156.     LDIR
  157.     POPALL
  158.     RET
  159.  
  160. PUT4:    PUSH    AF
  161.     LD    A,0
  162.     LD    (DE),A
  163.     INC    DE
  164.     LD    (DE),A
  165.     INC    DE
  166.     LD    (DE),A
  167.     INC    DE
  168.     LD    (DE),A
  169.     INC    DE
  170.     POP    AF
  171.     RET
  172.  
  173. WR16:    PUSHALL
  174.     LD    HL,8000H
  175.     LD    DE,8001H
  176.     LD    BC,0A00H        ; 20 SECTORS!
  177.     LD    (HL),0
  178.     LDIR
  179.     LD    HL,8000H
  180.     LD    BC,18
  181.     CALL    SAVEM
  182.     POPALL
  183.     RET
  184.  
  185. WR16D:    LD    DE,8000H    ; BEFORE FILLING: WRITE XXXX NULLS TO FILE
  186.                 ; THEN WRITE SCREEN, THEN ANOTHER AMOUNT
  187.                 ; OF NULLS! 576*720 OR 72B*720B 405 SECTORS
  188. NOFIN:    CALL    PUT4
  189.     LD    A,128
  190.     PUSH    BC
  191. MOG:    OUT    (28),A
  192.     LD    B,8
  193.     PUSH    AF
  194.     PUSH    HL
  195. MOGGIE:    LD    A,255
  196.     SUB    (HL)
  197.     LD    (DE),A
  198.     INC    DE
  199.     LD    (HL),A
  200.     XOR    A
  201.     PUSH    DE
  202.     LD    DE,16*16
  203.     ADD    HL,DE
  204.     POP    DE
  205.     DJNZ    MOGGIE
  206.     POP    HL
  207.     POP    AF
  208.     INC    A
  209.     CP    136
  210.     JP    NZ,MOG
  211.     POP    BC
  212.     DEC    BC
  213.     INC    HL
  214.     CALL    PUT4
  215.     LD    A,B
  216.     OR    C
  217.     JP    NZ,NOFIN
  218.     LD    HL,8000H
  219.     LD    BC,36
  220.     CALL    SAVEM
  221.     RET
  222.  
  223. PUTCRT:    LD    B,16
  224. CLOOP:    LD    A,B
  225.     DEC    A
  226.     OUT    (12),A
  227.     LD    A,(HL)
  228.     OUT    (13),A
  229.     DEC    HL
  230.     DJNZ    CLOOP
  231.     RET
  232.  
  233. OVER:    LD    (18000),A
  234.     LD    HL,64000
  235.     LD    DE,64001
  236.     LD    BC,16
  237.     LD    (HL),0
  238.     LDIR
  239.     LD    E,1AH
  240.     LD    C,2
  241.     CALL    BDOS
  242.     LD    HL,CTREND
  243.     CALL    PUTCRT
  244.     LD    HL,10000-128
  245.     CALL    LOADM
  246.     CP    2
  247.     JP    Z,0
  248.  
  249. HIRES2:    LD    A,7
  250.     LD    B,8
  251.     LD    HL,10000+1024
  252.     PUSH    HL
  253. LOOPIE:    ADD    A,128
  254.     OUT    (28),A
  255.     SUB    128
  256.     POP    HL
  257.     PUSH    HL
  258.     LD    DE,63488
  259.     PUSH    BC
  260.     LD    BC,2048
  261.     LDIR
  262.     POP    BC
  263.     DEC    A
  264.     LD    DE,2048
  265.     POP    HL
  266.     ADD    HL,DE
  267.     PUSH    HL
  268.     DJNZ    LOOPIE
  269.     LD    HL,10000+1024+8*2048
  270.     LD    DE,61440
  271.     LD    BC,1024
  272.     LDIR
  273.     LD    HL,10000+9*2048
  274.     LD    DE,61440
  275.     LD    A,144
  276.     OUT    (28),A
  277.     LD    BC,1024
  278.     LDIR
  279.     LD    A,128
  280.     OUT    (28),A
  281.     LD    HL,10000
  282.     LD    DE,63488
  283.     LD    A,64
  284.     OUT    (8),A
  285.     LD    BC,1024
  286.     LDIR
  287.     XOR    A
  288.     OUT    (8),A
  289.  
  290.     CALL    STOFIL
  291.     CALL    NEWFIL
  292.  
  293.     CALL    WR16
  294.     CALL    WR16
  295.     CALL    WR16
  296.     CALL    WR16
  297.  
  298.     LD    HL,63488
  299.     LD    BC,16*4
  300.     CALL    WR16D
  301.  
  302.     LD    HL,63488+64
  303.     LD    BC,16*4
  304.     CALL    WR16D
  305.  
  306.     LD    HL,63488+128
  307.     LD    BC,16*4
  308.     CALL    WR16D
  309.  
  310.     LD    HL,63488+128+64
  311.     LD    BC,16*4
  312.     CALL    WR16D
  313.  
  314.     CALL    WR16
  315.     CALL    WR16
  316.     CALL    WR16
  317.     CALL    WR16
  318.     CALL    WR16
  319.     CALL    WR16
  320.     CALL    WR16
  321.     CALL    WR16
  322.     CALL    WR16
  323.     CALL    WR16        ; HOPEFULLY THIS ADDS UP!
  324.  
  325.     CALL    CLOSE
  326.  
  327.     BIOS    2
  328.     CLS    2048
  329.     BIOS    0
  330.  
  331.     RET
  332.     END
  333.  
  334.