“ ;2/15/85 ; ; ********************************************* ; ** INSTRUCTIONS FOR INSTALLING ** ; ** 1541-FASTLOAD ROUTINE ** ; ********************************************* ; ; ; ; ; ****************************** ; ** FILE DESCRIPTION ** ; ****************************** ; ; 'FLOAD-C64.SRC' ; ; FLOAD64.S IS THE 6502-ASSEMBLER SOURCE CODE FOR THE ; C-64 END OF THE FAST-LOADER. IT IS CURRENTLY ASSEM- ; BLED AT $C000, AND USES ZERO-PAGE MEMORY STARTING AT $0002. ; IT CAN BE RE-ASSEMBLED TO RUN ANYWHERE IN MEMORY. ; ; ; ; 'FLOAD1541.SRC' ; ; FLOAD1541.S IS THE 6502-ASSEMBLER SOURCE CODE FOR THE ; 1541 END OF THE FAST-LOADER. IT IS AND MUST STAY AT ; $0500 IN THE DRIVE. THE ASSEMBLED CODE GETS STUCK ; ONTO THE END OF THE C-64 PROGRAM, AND WHEN THE C-64 ; PROGRAM RUNS, IT TRANSFERS THE DRIVE CODE INTO THE ; DRIVE. ; ; ; ; 'FL64.OBJ' ; ; THIS IS THE ASSEMBLED C-64 CODE FOR THE FAST-LOADER, ; CURRENTLY SITTING AT $C000. ; ; ; ; 'FL15.OBJ' ; ; THIS IS THE ASSEMBLED 1541 CODE, AT $0500. TO COMPLETE ; THE FAST LOADER, THIS CODE IS APPENDED ONTO THE END OF ; THE C-64 CODE. ; ; ; ; ; 'FL.C000' ; ; THIS FILE IS THE C-64 CODE WITH THE ASSEMBLED 1541 CODE ; ALREADY APPENDED TO IT. THIS IS A READY-TO-RUN BINARY ; FILE AT $C000. ; ; ; ; ; *********************************** ; ** USING THE FAST-LOADER ** ; *********************************** ; ; ; THE FAST-LOADER CONSISTS OF TWO SEPARATE PROGRAMS: ; ONE PROGRAM IN THE C-64 CONTROLS THE LOADING PROCESS, ; AND ANOTHER PROGRAM IN THE 1541 SENDS OVER THE FILE ; THAT IS BEING LOADED. ; ; THE 1541 CODE SITS IMMEDIATELY AT THE END OF THE C-64 ; CODE, AND WHEN THE PROGRAM IS RUN, IT TRANSFERS THE 1541 ; CODE INTO THE DISK DRIVE AND EXECUTES IT. ; ; ; TO USE THE FAST LOADER: ; ; FIRST LOAD THE FILE 'FL.C000' WHICH IS BOTH THE C-64 ; CODE AND THE DRIVE CODE. ; ; YOU MUST KNOW THE STARTING TRACK AND SECTOR OF THE ; FILE YOU WISH TO FAST-LOAD. THE STARTING TRACK # GOES INTO ; THE .X REGISTER, AND THE SECTOR # INTO THE .Y REGISTER; ; ; IF YOU DON'T WANT TO USE THE DEFAULT TRACK AND SECTOR ; WHICH ARE SET UP IN THE FIRST TWO LINES OF THE PROGRAM, ; THEN ENTER THE CODE AT $C004 WITH THE .X AND .Y REGISTERS ; CONTAINING THE STARTING TRACK AND SECTOR. ; ; ENTERING THE CODE AT $C004 WILL SET THE DRIVE NUMBER TO 8; ; IF YOU WANT TO USE A DIFFERENT DEVICE, LOAD THE ACCUMULATOR ; WITH THE DEVICE NUMBER (AND .X AND .Y WITH THE STARTING TRACK ; AND SECTOR) AND ENTER THE CODE AT $C006. IN ALL CASES, THE ; ENTRY SHOULD BE VIA A JSR INSTRUCTION. ; ; THE FAST-LOADED FILE WILL ALWAYS LOAD TO THE ADDRESS ; SPECIFIED BY IT'S FIRST TWO BYTES WHEN YOU USE THIS FAST-LOAD ; PROGRAM. ; ; ; ERROR-TRAPPING: ; ; WHEN THE FAST-LOAD IS FINISHED, IT WILL RETURN CONTROL TO THE ; CALLING PROGRAM. IF THERE WERE NO ERRORS DURING THE LOADING ; PROCESS, THE CARRY FLAG WILL BE CLEAR AND THE ACCUMULATOR WILL BE ; ZERO. ; ; IF THE CARRY IS SET (AND .A IS NON-ZERO), THEN AN ERROR OCCURRED. ; THIS COULD BE EITHER A KERNAL ERROR (SUCH AS 'DEVICE NOT PRESENT'), ; OR A DISK READ ERROR. IF A KERNAL ERROR OCCURRED, BIT-7 WILL BE SET ; IN THE ACCUMULATOR. USE THE KERNAL 'READST' ROUTINE TO DETERMINE ; WHAT ERROR OCCURRED. ; ; IF THE ERROR OCCURRED WHILE READING A DISK SECTOR, BIT-7 ; OF THE ACCUMULATOR WILL BE CLEAR, AND THE VALUE CONTAINED IN .A ; WILL BE THE DISK JOB-QUEUE ERROR CODE (SEE TABLE). THE TRACK AND ; SECTOR WHERE THE ERROR WAS DETECTED ARE IN THE VARIABLES 'TRACK' ; AND 'SECTOR', WHICH ARE AT $0002 AND $0003 IN THE CURRENT VERSION ; OF THE FAST-LOADER. THE DRIVE WILL NOT 'KNOCK' IF AN ERROR IS ; DETECTED DURING THE LOAD. ; ; ; ***************************************** ; ** TABLE OF ERROR CODES ** ; ***************************************** ; ; CODE DOS ERROR # MEANING ; ---- ----------- ------- ; 0 0 ( OK - NO ERROR ) ; 2 20 NO HEADER-BLOCK ; 3 21 NO SYNC ; 4 22 NO DATA-BLOCK ; 5 23 DATA-BLOCK CHECKSUM ERROR ; 9 27 HEADER-BLOCK CHECKSUM ERROR ; 11 29 DISK ID MISMATCH ; ; ;* END *