
                     * PAG
                     **************************************************
                     *** APPEND - APPEND COMMAND                      *
                     **************************************************
                     * OPT PAG
                     *
                     * 'APPEND' UTILITY COPYRIGHT (C). 1979 BY
                     *
                     * TECHNICAL SYSTEM CONSULTANTS. INC.
                     * BOX 2570
                     * WEST LAFAYETTE. INDIANA 47906
                     * USA
                     
                     * DISSASEMBLY BY DYNAMITE OF APPEND.CMD
                     * BY FLD ON 15-10-2011 FOR VEGAS 6809
                     
                     ** SYMBOL DEFINITIONS.
                     
               CC02  TTYEOL  EQU    $CC02
               CC11  LSTTRM  EQU    $CC11
               CC14  BUFPTR  EQU    $CC14
               CC2B  MEMEND  EQU    $CC2B
               CD03  WARMS   EQU    $CD03
               CD15  GETCHR  EQU    $CD15
               CD1E  PSTRNG  EQU    $CD1E
               CD2D  GETFIL  EQU    $CD2D
               CD33  SETEXT  EQU    $CD33
               CD3F  RPTERR  EQU    $CD3F
               D403  FMSCLS  EQU    $D403
               D406  FMS     EQU    $D406
                     
                     * SCRATCH VARIABLES
                     
  0100                       ORG    $0100
  0100               FCB1    RMB    $0140     SOURCE FILE FCB
  0240               FCB2    RMB    $0140     DEST FILE FCB
               0380  BUFFER  EQU    *
                     
  C100                       ORG    $C100
                     ** MAIN PROGRAM.
                     
  C100 20   11       APPEND  BRA    APPND     SKIP VERSION NUMBER
                     
  C102 01                    FCB    1         VERSION NUMBER
  C103 00            EXT1    FCB    0
  C104 00            EXT2    FCB    0
  C105 00            EXT3    FCB    0
  C106 00 00         STRTB   FCB    0,0
  C108 00 00         ENDPTR  FCB    0,0
  C10A 00            ENDFLG  FCB    0
  C10B 0000          NAMSAV  FDB    0
  C10D 00 00         PTRSAV  FCB    0,0
  C10F 00            FSTFLG  FCB    0
  C110 00            RANDOM  FCB    0
  C111 0000          ENDB    FDB    0
                     
  C113 7F   C10F     APPND   CLR    FSTFLG    CLEAR EXTENTION FLAG
  C116 B6   CC2B             LDA    MEMEND    GET MEMORY END POINTER
  C119 F6   CC2C             LDB    MEMEND+1
  C11C F7   C112             STB    ENDB+1    SAVE IT
  C11F 80   0C               SUBA   #$0C      RESERVE SOME SPACE
  C121 B7   C111             STA    ENDB
  C124 BE   CC14             LDX    BUFPTR    SAVE LINE BUFFER POINTER
  C127 BF   C10D             STX    PTRSAV
  C12A BE   CC14     APPND1  LDX    BUFPTR    SAVE POINTER TO FILE NAME
  C12D BF   C10B             STX    NAMSAV
  C130 8E   0100             LDX    #FCB1     POINT TO FCB
  C133 BD   CD2D             JSR    GETFIL    GET FILE NAME
  C136 25   2D               BCS    ERROUT    BAD NAME?
  C138 BD   C287             JSR    EXTEN     SET FILE EXTENTION
  C13B 8E   0100             LDX    #FCB1
  C13E 86   01               LDA    #$01      OPEN FILE FOR READ
  C140 A7   84               STA    ,X
  C142 B7   C10F             STA    FSTFLG    SET FILE EXTENTION FLAG
  C145 BD   D406             JSR    FMS       OPEN FILE
  C148 26   29               BNE    APPND3    ERROR?
  C14A 6D   88 17            TST    23,X      IS IT A RANDOM FILE?
  C14D 27   03               BEQ    APPND2
  C14F 7C   C110             INC    RANDOM    SET RANDOM FLAG
  C152 8E   0100     APPND2  LDX    #FCB1
  C155 86   04               LDA    #$04      CLOSE FILE
  C157 A7   84               STA    ,X
  C159 BD   D406             JSR    FMS
  C15C 26   07               BNE    ERROUT    CANT CLOSE?
  C15E BD   C2BB             JSR    TSTEOL    TEST FOR END OF LINE
  C161 26   C7               BNE    APPND1    CHECK NEXT FILE IF NOT
  C163 20   78               BRA    ASKDEL    FILE EXISTS CAN WE DELETE IT?
                     
  C165 BD   CD3F     ERROUT  JSR    RPTERR    REPORT ERROR
  C168 BD   D403     CLOSEM  JSR    FMSCLS    CLOSE ALL FILES
  C16B 7E   CD03             JMP    WARMS     BYE!
                     
  C16E BD   CD1E             JSR    PSTRNG    PRINT STRING
  C171 20   F5               BRA    CLOSEM    AND CLOSE FILES
                     
  C173 A6   01       APPND3  LDA    1,X       TEST ERROR TYPE
  C175 81   04               CMPA   #$04      IS IT FILE NOT FOUND?
  C177 26   EC               BNE    ERROUT    CANT HANDLE ANY THING ELSE
  C179 BD   C2BB             JSR    TSTEOL    ARE WE AT END OF NAMES
  C17C 26   E7               BNE    ERROUT    IF NOT THEN ITS FATAL
  C17E BE   C10B     APPND4  LDX    NAMSAV    RESTORE BUFFER POINTER
  C181 BF   CC14             STX    BUFPTR    TO LAST NAME
  C184 8E   0240             LDX    #FCB2     POINT TO WRITE FCB
  C187 BD   CD2D             JSR    GETFIL    GET DEST FILE NAME
  C18A 8E   0240             LDX    #FCB2
  C18D BD   C287             JSR    EXTEN     SET FILE EXTENTION
  C190 86   02               LDA    #$02      OPEN FOR WRITE
  C192 A7   84               STA    ,X
  C194 BD   D406             JSR    FMS
  C197 26   CC               BNE    ERROUT    ERROR?
  C199 86   FF               LDA    #$FF      SET FILE TYPE TO BINARY
  C19B A7   88 3B            STA    59,X
  C19E B6   C110             LDA    RANDOM    SET RANDOM FLAG
  C1A1 A7   88 17            STA    23,X      IN FCB
  C1A4 BE   C10D             LDX    PTRSAV    POINT TO FIRST NAME
  C1A7 BF   CC14             STX    BUFPTR
  C1AA BE   CC14     OPNNXT  LDX    BUFPTR    POINT TO NAME
  C1AD BC   C10B             CMPX   NAMSAV    IS IT LAST FILE NAME?
  C1B0 27   23               BEQ    ALLDON    WRAP IT UP
  C1B2 8E   0100             LDX    #FCB1     POINT TO READ FCB
  C1B5 BD   CD2D             JSR    GETFIL    GET FILE NAME
  C1B8 8E   0100             LDX    #FCB1
  C1BB BD   C287             JSR    EXTEN     SET EXTENTION
  C1BE 86   01               LDA    #$01      OPEN FOR READ
  C1C0 A7   84               STA    ,X
  C1C2 BD   D406             JSR    FMS
  C1C5 26   9E               BNE    ERROUT    EXIT ON ERROR
  C1C7 6D   88 12            TST    18,X      FILE EMPTY?
  C1CA 27   36               BEQ    SETFNF    SET FILE NOT FOUND
  C1CC 86   FF               LDA    #$FF      MAKE BINARY FILE
  C1CE A7   88 3B            STA    59,X
  C1D1 8D   35               BSR    READIT    READ FILE
  C1D3 20   D5               BRA    OPNNXT    OPEN NEXT FILE
                     
  C1D5 8E   C2D1     ALLDON  LDX    #CMPLTE   ISSUE MESSAGE
  C1D8 BD   CD1E             JSR    PSTRNG    PRINT IT
  C1DB 20   8B               BRA    CLOSEM    CLOSE AND EXIT
                     
  C1DD 8E   C2E2     ASKDEL  LDX    #EXISTS   PRINT FILE EXISTS
  C1E0 BD   C2C6             JSR    ASKYN     CAN WE DELETE
  C1E3 26   17               BNE    EXIT      NO THEN ALL DONE
  C1E5 8E   C30E             LDX    #USURE    ASK IF SHURE
  C1E8 BD   C2C6             JSR    ASKYN
  C1EB 26   0F               BNE    EXIT      IF NOT THEN EXIT
  C1ED 8E   0100             LDX    #FCB1
  C1F0 86   0C               LDA    #$0C      DELETE FILE
  C1F2 A7   84               STA    ,X
  C1F4 BD   D406             JSR    FMS
  C1F7 26   06               BNE    DELERR    ERROR ON DELETE?
 >C1F9 7E   C17E             JMP    APPND4    START APPENDING
                     
  C1FC 7E   CD03     EXIT    JMP    WARMS
                     
  C1FF 7E   C165     DELERR  JMP    ERROUT
                     
  C202 C6   04       SETFNF  LDB    #$04      FAKE FILE NOT FOUND
  C204 E7   01               STB    1,X       SET INTO FCB
  C206 20   F7               BRA    DELERR    REPORT AND EXIT
                     
  C208 7F   C10A     READIT  CLR    ENDFLG    CLEAR EOF FLAG
  C20B 8E   0380     READ1   LDX    #BUFFER   POINT TO START
  C20E BF   C106             STX    STRTB     OF BUFFER
  C211 BE   C111             LDX    ENDB      SET END OF BUFFER
  C214 BF   C108             STX    ENDPTR
  C217 8E   0100     READ2   LDX    #FCB1     POINT TO READ FCB
  C21A BD   D406             JSR    FMS       READ BYTE
  C21D 27   13               BEQ    STORIT    SAVE IT IF NO ERROR
  C21F A6   01               LDA    1,X       TEST ERROR TYPE
  C221 81   08               CMPA   #$08      IS IT EOF?
  C223 26   0A               BNE    RDERR     FATAL IF NOT
  C225 BE   C106             LDX    STRTB     CORRECT END POINTER
  C228 30   1F               LEAX   -1,X      LAST BYTE NOT SAVED
  C22A BF   C106             STX    STRTB
  C22D 20   37               BRA    CLOSIT    CLOSE READ FILE
                     
 >C22F 7E   C284     RDERR   JMP    WRERR
                     
  C232 BE   C106     STORIT  LDX    STRTB     GET POINTER
  C235 A7   84               STA    ,X        SAVE BYTE
  C237 BC   C108             CMPX   ENDPTR    END OF BUFFER?
  C23A 27   39               BEQ    PRESET    SET UP FOR WRITE
  C23C 30   01               LEAX   1,X       BUMP POINTER
  C23E BF   C106             STX    STRTB     SAVE IT
  C241 20   D4               BRA    READ2     READ SOME MORE
                     
  C243 BE   C106     WRITIT  LDX    STRTB     POINT TO BUFFER
  C246 A6   84       WRIT1   LDA    ,X        GET BYTE
  C248 BF   C106             STX    STRTB     SAVE POINTER
  C24B 8E   0240             LDX    #FCB2     POINT TO WRITE FCB
  C24E BD   D406             JSR    FMS       WRITE BYTE
  C251 26   31               BNE    WRERR     ERROR?
  C253 BE   C106             LDX    STRTB
  C256 BC   C108             CMPX   ENDPTR    END OF BUFFER?
  C259 27   04               BEQ    ENDTST    CHECK FOR END OF FILE
  C25B 30   01               LEAX   1,X       BUMP POINTER
  C25D 20   E7               BRA    WRIT1     WRITE NEXT BYTE
                     
  C25F 7D   C10A     ENDTST  TST    ENDFLG    EOF ON READ?
  C262 27   A7               BEQ    READ1     THEN READ SOME MORE
  C264 20   1D               BRA    WREXIT    ELSE READ NEXT FILE
                     
  C266 8E   0100     CLOSIT  LDX    #FCB1     CLOSE READ FILE
  C269 86   04               LDA    #$04
  C26B A7   84               STA    ,X
  C26D B7   C10A             STA    ENDFLG    SET EOF FLAG
  C270 BD   D406             JSR    FMS
  C273 26   0F               BNE    WRERR
  C275 BE   C106     PRESET  LDX    STRTB     SET POINTER FOR WRITE
  C278 BF   C108             STX    ENDPTR
  C27B 8E   0380             LDX    #BUFFER   SET BEGIN POINTER
  C27E BF   C106             STX    STRTB
  C281 20   C0               BRA    WRITIT    WRITE BLOCK
                     
  C283 39            WREXIT  RTS
                     
  C284 7E   C165     WRERR   JMP    ERROUT
                     
  C287 7D   C10F     EXTEN   TST    FSTFLG    FIRST EXTENTION?
  C28A 26   1B               BNE    EXTEN1    IF NOT THEN DONT SAVE
  C28C 8E   0100             LDX    #FCB1
  C28F 86   01               LDA    #$01      SET DEFAULT
  C291 BD   CD33             JSR    SETEXT    TO BINARY
  C294 8E   0100             LDX    #FCB1
  C297 A6   0C               LDA    12,X      SAVE EXTENTION
  C299 B7   C103             STA    EXT1
  C29C A6   0D               LDA    13,X
  C29E B7   C104             STA    EXT2
  C2A1 A6   0E               LDA    14,X
  C2A3 B7   C105             STA    EXT3
  C2A6 39                    RTS
                     
  C2A7 6D   0C       EXTEN1  TST    12,X      SET ALLREADY?
  C2A9 26   0F               BNE    EXTENX    EXIT IF SO
  C2AB B6   C103             LDA    EXT1
  C2AE A7   0C               STA    12,X      MOVE TO FCB
  C2B0 B6   C104             LDA    EXT2
  C2B3 A7   0D               STA    13,X
  C2B5 B6   C105             LDA    EXT3
  C2B8 A7   0E               STA    14,X
  C2BA 39            EXTENX  RTS
                     
  C2BB B6   CC11     TSTEOL  LDA    LSTTRM    AT END OF LINE?
  C2BE 81   0D               CMPA   #$0D
  C2C0 27   03               BEQ    TSTEL1
  C2C2 B1   CC02             CMPA   TTYEOL    =TTYSET EOL?
  C2C5 39            TSTEL1  RTS
                     
  C2C6 BD   CD1E     ASKYN   JSR    PSTRNG    PROMPT FOR ANSWER
  C2C9 BD   CD15             JSR    GETCHR    GET RESPONSE
  C2CC 84   5F               ANDA   #$5F      MAP TO LOWER CASE
  C2CE 81   4F               CMPA   #$4F      IS IT "O"
  C2D0 39                    RTS
                     
  C2D1 20 46 55 53   CMPLTE  FCC    / FUSION TERMINEE/
  C2D5 49 4F 4E 20   
  C2D9 54 45 52 4D   
  C2DD 49 4E 45 45   
  C2E1 04                    FCB    4
  C2E2 4C 45 20 46   EXISTS  FCC    /LE FICHIER EXISTANT PEUT /
  C2E6 49 43 48 49   
  C2EA 45 52 20 45   
  C2EE 58 49 53 54   
  C2F2 41 4E 54 20   
  C2F6 50 45 55 54   
  C2FA 20            
  C2FB 2D 49 4C 20           FCC    /-IL ETRE DETRUIT? /
  C2FF 45 54 52 45   
  C303 20 44 45 54   
  C307 52 55 49 54   
  C30B 3F 20         
  C30D 04                    FCB    4
  C30E 45 54 45 53   USURE   FCC    /ETES VOUS SUR ? /
  C312 20 56 4F 55   
  C316 53 20 53 55   
  C31A 52 20 3F 20   
  C31E 04                    FCB    4
                     
                     
                             END    APPEND

0 ERROR(S) DETECTED

SYMBOL TABLE:

ALLDON C1D5   APPEND C100   APPND  C113   APPND1 C12A   APPND2 C152   
APPND3 C173   APPND4 C17E   ASKDEL C1DD   ASKYN  C2C6   BUFFER 0380   
BUFPTR CC14   CLOSEM C168   CLOSIT C266   CMPLTE C2D1   DELERR C1FF   
ENDB   C111   ENDFLG C10A   ENDPTR C108   ENDTST C25F   ERROUT C165   
EXISTS C2E2   EXIT   C1FC   EXT1   C103   EXT2   C104   EXT3   C105   
EXTEN  C287   EXTEN1 C2A7   EXTENX C2BA   FCB1   0100   FCB2   0240   
FMS    D406   FMSCLS D403   FSTFLG C10F   GETCHR CD15   GETFIL CD2D   
LSTTRM CC11   MEMEND CC2B   NAMSAV C10B   OPNNXT C1AA   PRESET C275   
PSTRNG CD1E   PTRSAV C10D   RANDOM C110   RDERR  C22F   READ1  C20B   
READ2  C217   READIT C208   RPTERR CD3F   SETEXT CD33   SETFNF C202   
STORIT C232   STRTB  C106   TSTEL1 C2C5   TSTEOL C2BB   TTYEOL CC02   
USURE  C30E   WARMS  CD03   WRERR  C284   WREXIT C283   WRIT1  C246   
WRITIT C243   




