
                     * PAG
                     ******************************************************
                     *** EXEC - EXECUTE BINARY PROGRAM COMMAND            *
                     ******************************************************
                     * OPT PAG
                     *
                     * 'EXEC' UTILITY COPYRIGHT (C). 1979 BY
                     *
                     * TECHNICAL SYSTEM CONSULTANTS. INC.
                     * BOX 2570
                     * WEST LAFAYETTE. INDIANA 47906
                     * USA
                     
                     * BY FLD ON 15-10-2011 FOR VEGAS 6809
                     
                     **    SYMBOL DEFINITIONS.
                     
               CC14  LNBUFP  EQU    $CC14
               CC2B  MEMEND  EQU    $CC2B
               CD03  WARMST  EQU    $CD03
               CD1E  PSTRNG  EQU    $CD1E
               CD2D  GETFIL  EQU    $CD2D
               CD33  SETEXT  EQU    $CD33
               CD3F  RPTERR  EQU    $CD3F
               CD4B  DOCMND  EQU    $CD4B
               D403  FMSCLS  EQU    $D403
               D406  FMSCAL  EQU    $D406
                     
               C080  LNBUFF  EQU    $C080
                     
  C100                       ORG    $C100
                     ** MAIN PROGRAM;
                     
  C100 20   01       STARTR  BRA    ENTRY     SKIP VERSION NUMBER
  C102 01                    FCB    $01
  C103 FC   CC2B     ENTRY   LDD    >MEMEND   POINT TO MEMORY END
  C106 34   06               PSHS   B,A       SAVE IT
  C108 83   01F4             SUBD   #$01F4    RESERVE SPACE AT END
  C10B FD   CC2B             STD    >MEMEND   SAVE NEW POINTER
  C10E 1F   01               TFR    D,X
  C110 30   01               LEAX   $01,X     POINT TO FIRST FREE BYTE
  C112 31   8D 00DB          LEAY   EXFCB,PCR POINT TO LAST OF PROGRAM
  C116 34   20               PSHS   Y         SAVE IT
  C118 31   8D 0015          LEAY   EXEC1,PCR POINT TO FIRST TO MOVE
  C11C A6   A0       MOVE    LDA    ,Y+       MOVE IT TO RESERVED AREA
  C11E A7   80               STA    ,X+
  C120 10AC E4               CMPY   ,S        ARE WE DONE
  C123 25   F7               BCS    MOVE      LOOP IF NOT
  C125 35   30               PULS   Y,X       CLEAN UP STACK
  C127 BE   CC2B             LDX    >MEMEND   POINT TO PROGRAM-1
  C12A AF   06               STX    $0006,X   SAVE MEMEND POINTER
  C12C 10AF 04               STY    $0004,X   SAVE OLD MEMEND
  C12F 6E   01               JMP    $01,X     RUN IT
                     
                     *THE FOLLOWING CODE IS POSITION
                     *INDEPENDENT ITS BLOCK MOVED
                     *TO A RESERVED AREA ABOVE MEMEND
                     *
  C131 20   05       EXEC1   BRA    EXEC2
  C133 00            EOFFLG  FCB    $00
  C134 00 00         OLDMND  FCB    $00,$00
  C136 00 00         MEMND   FCB    $00,$00
                     
  C138 30   8D 00B5  EXEC2   LEAX   EXFCB,PCR POINT TO EXEC FCB
  C13C BD   CD2D             JSR    >GETFIL   GET FILE NAME
  C13F 25   47               BCS    ERROR     BAD NAME?
  C141 86   01               LDA    #$01
  C143 BD   CD33             JSR    >SETEXT   SET DEFAULT EXTENTION
  C146 86   01               LDA    #$01
  C148 A7   84               STA    ,X        OPEN FOR READ
  C14A BD   D406             JSR    >FMSCAL
  C14D 26   39               BNE    ERROR     CANT OPEN?
  C14F 86   04               LDA    #$04      NOW CLOSE IT
  C151 A7   84               STA    ,X
  C153 BD   D406             JSR    >FMSCAL
  C156 26   30               BNE    ERROR     CANT CLOSE?
  C158 86   01               LDA    #$01
  C15A A7   02               STA    $02,X     FAKE OPEN FILE
  C15C 6F   84               CLR    ,X        SET TO READ SEQ BYTE
                     
  C15E 8D   32       EXLOOP  BSR    FILBUF    GET A LINE FROM FILE
  C160 25   26               BCS    ERROR     CANT DO IT?
  C162 6D   8C CE            TST    EOFFLG,PCR EOF?
  C165 26   0C               BNE    ITSEND    NOT END.
  C167 BD   CD4B             JSR    >DOCMND   SEND LINE TO FLEX
  C16A 27   F2               BEQ    EXLOOP    TRY SOME MORE
  C16C 30   8D 0058          LEAX   ABTMSG,PCR BAD NEWS
  C170 BD   CD1E             JSR    >PSTRNG   PRINT IT
  C173 BD   D403     ITSEND  JSR    >FMSCLS   CLOSE ANY OPEN FILES
  C176 FC   CC2B             LDD    >MEMEND   CHECK IF ANY ONE CHANGED
  C179 10A3 8C B9            CMPD   MEMND,PCR THE MEMEND POINTER
  C17D 26   06               BNE    EXIT      CANT DELETE IF ITS CHANGED
  C17F EC   8C B2            LDD    OLDMND,PCR RECOVER OLD MEMEND
  C182 FD   CC2B             STD    >MEMEND   PUT IT BACK
  C185 7E   CD03     EXIT    JMP    >WARMST   AND EXIT
                     
  C188 BD   CD3F     ERROR   JSR    >RPTERR   PRINT ERROR MESSAGE
  C18B 20   E6               BRA    ITSEND    EXIT
                     
  C18D BD   CD1E     PMSG    JSR    >PSTRNG   PRINT MESSAGE
  C190 20   E1               BRA    ITSEND    AND EXIT
                     
  C192 108E C080     FILBUF  LDY    #LNBUFF   POINT TO BUFFER
  C196 10BF CC14             STY    >LNBUFP   SAVE POINTER
  C19A 30   8D 0053          LEAX   EXFCB,PCR
  C19E BD   D406     NEXT    JSR    >FMSCAL   READ BYTE
  C1A1 26   10               BNE    CHKERR    ERROR?
  C1A3 81   02               CMPA   #$02      IS IT BINARY FILE?
  C1A5 27   1B               BEQ    WRONG     EXIT IF SO
  C1A7 A7   A0               STA    ,Y+       SAVE IN BUFFER
  C1A9 81   0D               CMPA   #$0D      IS IT END OF LINE?
  C1AB 26   F1               BNE    NEXT      LOOP FOR NEXT BYTE
  C1AD 8E   0000     FULL    LDX    #$0000
  C1B0 1C   FE               ANDCC  #$FE
  C1B2 39                    RTS
                     
  C1B3 A6   01       CHKERR  LDA    $01,X     GET ERROR NUMB.
  C1B5 81   08               CMPA   #$08      IS IT EOF?
  C1B7 26   06               BNE    FATAL     IF NOT ITS FATAL
  C1B9 A7   8D FF76          STA    EOFFLG,PCR SET EOF FLAG
  C1BD 20   EE               BRA    FULL      MARK BUFFER AS FULL
  C1BF 1A   01       FATAL   ORCC   #$01      SET ERROR FLAG
  C1C1 39                    RTS
                     
  C1C2 30   8D 0012  WRONG   LEAX   ILLMSG,PCR
  C1C6 20   C5               BRA    PMSG      PRINT MESSAGE AND EXIT
                     
  C1C8 45 58 45 43   ABTMSG  FCC    "EXEC INTERROMPU"
  C1CC 20 49 4E 54   
  C1D0 45 52 52 4F   
  C1D4 4D 50 55      
  C1D7 04                    FCB    $04
  C1D8 54 59 50 45   ILLMSG  FCC    "TYPE DE FICHIER INTERDIT"
  C1DC 20 44 45 20   
  C1E0 46 49 43 48   
  C1E4 49 45 52 20   
  C1E8 49 4E 54 45   
  C1EC 52 44 49 54   
  C1F0 04                    FCB    $04
                     
  C1F1               EXFCB   RMB    320
               C331  EXEND   EQU    *
                     
                             END    STARTR

0 ERROR(S) DETECTED

SYMBOL TABLE:

ABTMSG C1C8   CHKERR C1B3   DOCMND CD4B   ENTRY  C103   EOFFLG C133   
ERROR  C188   EXEC1  C131   EXEC2  C138   EXEND  C331   EXFCB  C1F1   
EXIT   C185   EXLOOP C15E   FATAL  C1BF   FILBUF C192   FMSCAL D406   
FMSCLS D403   FULL   C1AD   GETFIL CD2D   ILLMSG C1D8   ITSEND C173   
LNBUFF C080   LNBUFP CC14   MEMEND CC2B   MEMND  C136   MOVE   C11C   
NEXT   C19E   OLDMND C134   PMSG   C18D   PSTRNG CD1E   RPTERR CD3F   
SETEXT CD33   STARTR C100   WARMST CD03   WRONG  C1C2   




