SBTL 'C O P Y -- CONVERT FILES' ORG $800 SKP 1 *********************************************************** * * * COPY:THIS PROGRAM DEMONSTRATES THE USE OF THE DOS FILE * * MANAGER BY COPYING A BINARY FILE TO A TEXT FILE. * * * * INPUT: INPUT FILE NAME IS "INPUT" * * OUTPUT FILE NAME IS "OUTPUT" * * * * ENTRY POINT: $800 * * * * PROGRAMMER: DON D WORTH 2/19/81 * * * *********************************************************** SKP 2 BELL EQU $87 BELL CHARACTER SKP 1 * ZPAGE DEFINITIONS SKP 1 PTR EQU $0 WORK POINTER BUFP EQU $2 BUFFER POINTER EBYTE EQU $4 A1L EQU $3C MONITOR POINTER A2L EQU $3E MONITOR POINTER SKP 1 * OTHER ADDRESSES SKP 1 BUFFER EQU $1000 DATA BUFFER DOSWRM EQU $3D0 DOS WARMSTART ADDRESS LOCRPL EQU $3E3 LOCATE RWTS PARMLIST SUBRTN LOCFPL EQU $3DC LOCATE FILE MGR PARMLIST SUB FM EQU $3D6 FILE MANAGER ENTRY POINT COUT EQU $FDED PRINT ONE CHAR SUBROUTINE PRBYTE EQU $FDDA PRINT ONE HEX BYTE SUBRTN SKP 1 * FILE MANAGER PARMLIST DEFINITION SKP 1 DSECT FMOCOD DS 1 OPERATION CODE FMOCOP EQU $01 OPEN FMOCCL EQU $02 CLOSE FMOCRD EQU $03 READ FMOCWR EQU $04 WRITE FMOCDE EQU $05 DELETE FMOCCA EQU $06 CATALOG FMOCLO EQU $07 LOCK FMOCUN EQU $08 UNLOCK FMOCRE EQU $09 RENAME FMOCPO EQU $0A POSITION FMOCIN EQU $0B INIT FMOCVE EQU $0C VERIFY FMSBCD DS 1 SUBCODE FMSBNO EQU $00 NO OPERATION FMSBON EQU $01 READ/WRITE ONE BYTE FMSBRA EQU $02 READ/WRITE RANGE OF BYTES FMSBPO EQU $03 POSITION AND DO ONE BYTE FMSBPR EQU $04 POSITION AND DO RANGE FMPRMS DS 8 SPECIFIC PARAMETERS SKP 1 * OPEN PARMS ORG FMPRMS FMRCLN DS 2 RECORD LENGTH FMVOL DS 1 VOLUME FMDRV DS 1 DRIVE FMSLT DS 1 SLOT FMTYPE DS 1 TYPE FMTYPT EQU 0 TEXT FMTYPI EQU 1 INTEGER FMTYPA EQU 2 APPLESOFT FMTYPB EQU 4 BINARY FMNAME DS 2 ADDRESS OF FILE NAME SKP 1 * READ/WRITE PARMS ORG FMPRMS FMRCNM DS 2 RECORD NUMBER FMOFFS DS 2 BYTE OFFSET FMRALN DS 2 RANGE LENGTH FMRAAD DS 2 RANGE ADDRESS FMDATA EQU FMRAAD DATA BYTE READ/WRITTEN SKP 1 * RENAME PARMS ORG FMPRMS FMNNAM DS 2 ADDRESS OF NEW NAME SKP 1 * INIT PARMS ORG FMPRMS FMPAGE EQU FMSBCD FIRST PAGE OF DOS IMAGE SKP 1 * COMMON PARMS ORG FMPRMS+8 FMRC DS 1 RETURN CODE FMRCOK EQU 0 NO ERRORS FMRCBO EQU 2 BAD OPCODE FMRCBS EQU 3 BAD SUBCODE FMRCWP EQU 4 WRITE PROTECTED FMRCED EQU 5 END OF DATA FMRCNF EQU 6 FILE NOT FOUND FMRCBV EQU 7 BAD VOLUME FMRCIO EQU 8 I/O ERROR FMRCDF EQU 9 DISK FULL FMRCLK EQU 10 FILE LOCKED DS 1 NOT USED FMFMWA DS 2 FILE MANAGER WORKAREA PTR FMTSL DS 2 T/S LIST PTR FMBUFF DS 2 DATA BUFFER PTR DEND PAGE * LOCATE FM PARMLIST SKP 1 COPY JSR LOCFPL FIND PARMLIST STY PTR SET UP POINTER TO IT STA PTR+1 SKP 1 * OPEN INPUT FILE SKP 1 LDY #FMNAME STORE INPUT FILE NAME LDA #>INAME PTR IN LIST STA (PTR),Y INY LDA #ONAME PTR IN LIST STA (PTR),Y INY LDA #BUFFER STA EBYTE LDA BUFFER+3 PHA ADC #BUFFER STA (PTR),Y RANGE ADDRESS=$1000 INY LDA #