home *** CD-ROM | disk | FTP | other *** search
/ norge.freeshell.org (192.94.73.8) / 192.94.73.8.tar / 192.94.73.8 / pub / computers / cpm / alphatronic / PASCALZ4.ZIP / D3 / RESET.SRC < prev    next >
Text File  |  1999-04-05  |  2KB  |  88 lines

  1. ;ROUTINE TO RESET AN INPUT FILE
  2. ;
  3.     NAME RESET
  4.     ENTRY .RESET,L122
  5.     EXT .CLSOT,.OPNIN,.BYTIN,.ADDRCK,.MOVNAM
  6.     include deflt.src
  7. ;
  8. ;SYSTEM FILE BUFFER STRUCTURE
  9. ;FIRST BYTE IS  FILES FLAG.BITS 0-EOLN,1-EOF,2-WRITTEN,3-PREVIOUS
  10. ;OPERATION A WRITE,4-RANDOMLY ACCESSED FILE.
  11. ;SECOND IS THE READ AHEAD BYTE FOR INPUT FILES
  12.  
  13. ;.RESET REOPENS AN INPUT FILE, SO A USER CAN
  14. ;READ IT FROM THE BEGINNING
  15.  
  16. ;GET BUFFER ADDRESS FROM STACK
  17. L122:
  18. .RESET:    PUSH    B        ;SAVE <FNAM> LENGTH
  19.     PUSH    Y
  20.     CALL    .ADDRCK
  21.     JRNC    SKIP
  22.     PUSH    H
  23.     INX    H    ;ADJUST POINTER  TO K2 BUFFER
  24.     INX    H
  25.     INX    H
  26.     CALL    .CLSOT
  27.     XRA    A    ;REMOVE IT FROM OUTPUT LIST
  28.     STAX    B
  29.     DCX    B
  30.     STAX    B
  31.     POP    H
  32. SKIP:    MOV    M,A    ;RESET ALL FLAGS
  33.     POP    Y
  34.     POP    B    ;GET <FNAM> LENGTH
  35.     POP    D    ;RETURN ADDRESS
  36.     INX    H
  37.     INX    H
  38.     INX    H
  39.     CALL    .MOVNAM
  40.     DCX    H
  41.     DCX    H
  42.     DCX    H    ;FBA
  43.     BIT    7,M    ;TEST FOR 'CON:' INPUT FROM CONSOLE
  44.     INX    H
  45.     INX    H
  46.     INX    H    ;FCB
  47.     JRNZ    YEOF    ;NO READ AHEAD FOR CONSOLE
  48.     JRC    YEOF    ;SET END OF FILE, BAD FILENAME
  49.     CALL    .OPNIN    ;REOPEN FILE
  50.     JRC    YEOF    ;SET END OF FILE, NO SUCH FILE EXISTS
  51. ;READ FIRST BYTE AND SET EOF AND EOLN FLAGS
  52.     CALL    .BYTIN
  53.     MOV    C,A
  54.     JRC    YEOF
  55.     CPI    CR
  56.     JRZ    YEOLN
  57.     CPI    LF
  58.     JRZ    YEOLN
  59.     DCX    H
  60.     DCX    H
  61.     MOV    M,C    ;STORE READ BYTE
  62.     DCX    H
  63.     XRA    A
  64.     XCHG
  65.     PCHL
  66.  
  67. ;SET END OF FILE FLAG
  68. YEOF:    DCX     H
  69.     DCX    H
  70.     DCX    H
  71.     BSET    1,M    ;SET EOF FLAG
  72.     JMPR    YCONT
  73.  
  74. ;SET EOLN INDICATER
  75. YEOLN:    XRA    A
  76.     DCX    H
  77.     DCX    H
  78.     DCX    H
  79.     RES    1,M    ;SET EOF FLAG
  80. YCONT:    BSET    0,M    ;SET EOLN FLAG
  81.     INX    H
  82.     MOV    M,C    ;STORE READ BYTE
  83.     INX    H
  84.     XCHG
  85.     XRA    A    ;CLEAR ACCUMULATOR
  86.     PCHL
  87.  
  88.