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 / ENTERPRS / CPM / UTILS / F / LOTTO50.LBR / LOTOCONV.ZY0 / LOTOCONV.ZY0
Text File  |  2000-06-30  |  2KB  |  125 lines

  1.     MACLIB    DOSCALLS
  2.     MACLIB    MACROS
  3. ;
  4.     INCLUDE    TERMINAL.Z80
  5. ;
  6.     SETSP
  7.     LD    DE,WFCB
  8.     LD    C,OPENF
  9.     CALL    BDOS
  10. ;
  11.     LD    HL,TABLE
  12.     LD    DE,TABLE+1
  13.     LD    (HL),255
  14.     LD    BC,1024*10
  15.     LDIR
  16. ;
  17.     LD    DE,DMA
  18.     LD    C,SETDMA
  19.     CALL    BDOS
  20.     LD    HL,TABLE
  21.     LD    BC,0A80H        ;B=Numbers to read C=pending if any 
  22. READDAT:
  23.     PUSH    BC
  24.     PUSH    HL
  25.     LD    DE,WFCB
  26.     LD    C,RDSEQ
  27.     CALL    BDOS
  28.     INC    A
  29.     POP    HL
  30.     POP    BC
  31.     JP    Z,ENDOFFILE
  32.     LD    DE,DMA
  33. READDMA:
  34.     LD    A,(DE)
  35.     CP    ' '
  36.     JR    Z,SKIPSP
  37.     CP    CR
  38.     JR    Z,SKIPSP
  39.     CP    LF
  40.     JR    Z,SKIPSP
  41.     CP    26
  42.     JP    Z,ENDOFFILE
  43.     SUB    '0'
  44.     PUSH    AF
  45.     LD    A,C
  46.     ADD    A,A
  47.     ADD    A,A
  48.     ADD    A,C
  49.     ADD    A,A
  50.     LD    C,A
  51.     POP    AF
  52.     ADD    A,C
  53.     LD    C,A
  54.     JR    NEXTC
  55. SKIPSP:
  56.     LD    A,C
  57.     OR    A
  58.     JP    M,NEXTC        ;was cleared out before
  59.     PUSHALL
  60.     LD    H,0
  61.     LD    L,C
  62.     CALL    HEXDEC
  63.     POPALL
  64.     LD    (HL),C
  65.     INC    HL
  66.     LD    C,128        ;now it is clear
  67.     DJNZ    NEXTC        ;until a whole row read
  68.     LD    B,10        ;reset to another full line
  69.     LD    (ENDTABLE),HL
  70.     CALL    CRLF
  71. NEXTC:
  72.     INC    DE
  73.     XOR    A
  74.     CP    D
  75.     JR    Z,READDMA
  76.     JR    READDAT        ;next record until EOF
  77. ENDOFFILE:
  78.     LD    B,80H
  79. FILLEOF
  80.     LD    (HL),255
  81.     INC    HL
  82.     DJNZ    FILLEOF
  83.     LD    DE,OUTFCB
  84.     CALL    MAKEFILE
  85.     JP    Z,EXIT
  86.     LD    DE,TABLE
  87. FLUSHIT:
  88.     PUSH    DE
  89.     LD    C,SETDMA
  90.     CALL    BDOS
  91.     LD    DE,OUTFCB
  92.     LD    C,WRTSEQ
  93.     CALL    BDOS
  94.     POP    DE
  95.     LD    HL,80H
  96.     ADD    HL,DE
  97.     EX    DE,HL
  98.     LD    HL,0
  99. ENDTABLE EQU    $-2
  100.     OR    A
  101.     SBC    HL,DE
  102.     JR    NC,FLUSHIT
  103. CLOSEIT:
  104.     LD    DE,OUTFCB
  105.     LD    C,CLOSEF
  106.     CALL    BDOS
  107.     JP    EXIT
  108. MAKEFILE:
  109.     DOMAKEFILE
  110. CRLF:
  111.     DOCRLF
  112. HEXDEC:
  113.     DOHEXDEC
  114. ;
  115.     DS    100
  116. STACK:
  117. WFCB:    DB    0,'LOTTO   DAT',0,0,0,0
  118.     DB    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  119.     DB    0,0,0,0
  120. OUTFCB:    DB    0,'LOTTO   BIN',0,0,0,0
  121.     DB    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  122.     DB    0,0,0,0
  123. TABLE:
  124.     END
  125.