_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

ZAPL64

FILE INFORMATION

FILENAME(S): ZAPL64

FILE TYPE(S): SEQ

FILE SIZE: 20.8K

FIRST SEEN: 2025-12-01 19:06:08

APPEARS ON: 1 disk(s)

FILE HASH

25a9b7f1fa248d28d6e5021201350d0f7b9fdd4049f35ecf5d3e6c19812d30d1

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
ICE ZAPL64 SEQ Icebreaker 19 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 7A 61 70 6C 36 34 0D 0D  6F 52 49 47 49 4E 41 4C  |zapl64..oRIGINAL|
00000010: 4C 59 20 57 52 49 54 54  45 4E 20 42 59 20 64 4F  |LY WRITTEN BY dO|
00000020: 4E 20 6C 45 57 49 53 20  41 4E 44 20 41 50 50 45  |N lEWIS AND APPE|
00000030: 41 52 45 44 20 49 4E 20  61 50 52 49 4C 20 31 39  |ARED IN aPRIL 19|
00000040: 38 35 20 63 4F 4D 50 55  54 45 21 20 41 53 20 54  |85 cOMPUTE! AS T|
00000050: 48 45 0D 50 52 4F 54 52  41 4D 20 74 55 52 42 4F  |HE.PROTRAM tURBO|
00000060: 64 49 53 4B 2E 20 75 50  4C 4F 41 44 45 44 20 57  |dISK. uPLOADED W|
00000070: 49 54 48 20 54 48 45 20  41 55 54 48 4F 52 53 20  |ITH THE AUTHORS |
00000080: 50 45 52 4D 49 53 53 49  4F 4E 20 42 59 20 71 2D  |PERMISSION BY q-|
00000090: 6C 49 4E 4B 20 55 53 45  52 20 62 49 53 4F 4E 2C  |lINK USER bISON,|
000000A0: 0D 41 4E 44 20 49 53 20  43 55 52 52 45 4E 54 4C  |.AND IS CURRENTL|
000000B0: 59 20 49 4E 20 54 48 45  20 4F 52 49 47 49 4E 41  |Y IN THE ORIGINA|
000000C0: 4C 20 46 4F 52 4D 20 41  53 20 32 20 46 49 4C 45  |L FORM AS 2 FILE|
000000D0: 53 20 49 4E 20 54 48 45  20 70 52 4F 47 52 41 4D  |S IN THE pROGRAM|
000000E0: 4D 45 52 27 53 20 77 4F  52 4B 53 48 4F 50 0D 6C  |MER'S wORKSHOP.l|
000000F0: 49 42 52 41 52 59 2C 20  36 35 78 78 2C 20 75 54  |IBRARY, 65xx, uT|
00000100: 49 4C 49 54 49 45 53 20  73 4F 55 52 43 45 20 41  |ILITIES sOURCE A|
00000110: 53 3A 0D 0D 7A 41 50 2D  4C 44 45 52 32 2E 41 31  |S:..zAP-LDER2.A1|
00000120: 35 34 31 0D 7A 41 50 2D  4C 44 45 52 32 2E 41 36  |541.zAP-LDER2.A6|
00000130: 34 0D 0D 65 58 54 45 4E  53 49 56 45 20 43 4F 4D  |4..eXTENSIVE COM|
00000140: 4D 45 4E 54 49 4E 47 20  41 4E 44 20 54 55 54 4F  |MENTING AND TUTO|
00000150: 52 49 41 4C 20 42 59 20  6A 4F 48 4E 20 67 41 47  |RIAL BY jOHN gAG|
00000160: 45 52 0D 28 71 2D 6C 49  4E 4B 20 69 64 3A 20 73  |ER.(q-lINK id: s|
00000170: 55 50 45 52 64 49 53 4B  29 0D 28 63 4F 4D 50 55  |UPERdISK).(cOMPU|
00000180: 53 45 52 56 45 20 69 64  3A 20 37 31 33 33 36 2C  |SERVE id: 71336,|
00000190: 36 32 34 29 0D 0D 73 55  50 45 52 64 49 53 4B 20  |624)..sUPERdISK |
000001A0: 63 4F 4D 4D 45 4E 54 53  3A 20 73 4F 4D 45 54 49  |cOMMENTS: sOMETI|
000001B0: 4D 45 53 20 69 27 4D 20  4E 4F 54 20 43 4F 4E 54  |MES i'M NOT CONT|
000001C0: 45 4E 54 20 57 49 54 48  20 4B 4E 4F 57 49 4E 47  |ENT WITH KNOWING|
000001D0: 20 4F 4E 4C 59 20 54 48  41 54 20 41 20 50 52 4F  | ONLY THAT A PRO|
000001E0: 47 52 41 4D 0D 57 4F 52  4B 53 2E 20 74 48 45 52  |GRAM.WORKS. tHER|
000001F0: 45 20 41 52 45 20 43 45  52 54 41 49 4E 20 54 49  |E ARE CERTAIN TI|
00000200: 4D 45 53 20 69 20 57 41  4E 54 20 54 4F 20 4B 4E  |MES i WANT TO KN|
00000210: 4F 57 20 77 48 59 20 41  4E 44 20 68 4F 57 3F 20  |OW wHY AND hOW? |
00000220: 74 48 49 53 20 48 41 53  20 42 45 45 4E 20 54 48  |tHIS HAS BEEN TH|
00000230: 45 0D 43 41 53 45 20 57  49 54 48 20 54 48 4F 53  |E.CASE WITH THOS|
00000240: 45 20 66 41 53 54 20 6C  4F 41 44 20 50 52 4F 47  |E fAST lOAD PROG|
00000250: 52 41 4D 53 20 54 48 41  54 20 48 41 56 45 20 42  |RAMS THAT HAVE B|
00000260: 45 45 4E 20 46 4C 4F 41  54 49 4E 47 20 41 52 4F  |EEN FLOATING ARO|
00000270: 55 4E 44 2E 20 73 4F 20  57 48 45 4E 20 69 0D 53  |UND. sO WHEN i.S|
00000280: 41 57 20 54 48 45 20 32  20 53 4F 55 52 43 45 20  |AW THE 2 SOURCE |
00000290: 46 49 4C 45 53 20 62 49  53 4F 4E 20 55 50 4C 4F  |FILES bISON UPLO|
000002A0: 41 44 45 44 2C 20 69 20  54 48 4F 55 47 48 54 20  |ADED, i THOUGHT |
000002B0: 22 67 52 45 41 54 21 20  6E 4F 57 20 69 20 43 41  |"gREAT! nOW i CA|
000002C0: 4E 20 46 49 4E 44 20 4F  55 54 0D 48 4F 57 20 54  |N FIND OUT.HOW T|
000002D0: 48 4F 53 45 20 44 41 52  4E 20 52 4F 55 54 49 4E  |HOSE DARN ROUTIN|
000002E0: 45 53 20 57 4F 52 4B 22  2E 20 79 4F 55 20 43 41  |ES WORK". yOU CA|
000002F0: 4E 20 49 4D 41 47 49 4E  45 20 4D 59 20 44 49 53  |N IMAGINE MY DIS|
00000300: 41 50 50 4F 49 4E 54 4D  45 4E 54 20 57 48 45 4E  |APPOINTMENT WHEN|
00000310: 20 69 20 4C 4F 4F 4B 45  44 0D 41 54 20 54 48 45  | i LOOKED.AT THE|
00000320: 20 32 20 46 49 4C 45 53  20 41 4E 44 20 46 4F 55  | 2 FILES AND FOU|
00000330: 4E 44 20 41 20 54 4F 54  41 4C 20 4F 46 20 41 42  |ND A TOTAL OF AB|
00000340: 4F 55 54 20 31 30 20 43  4F 4D 4D 45 4E 54 53 20  |OUT 10 COMMENTS |
00000350: 49 4E 20 54 48 45 20 53  4F 55 52 43 45 2E 20 61  |IN THE SOURCE. a|
00000360: 52 47 48 21 20 57 45 4C  4C 0D 69 20 47 55 45 53  |RGH! WELL.i GUES|
00000370: 53 20 59 4F 55 20 43 41  4E 27 54 20 48 41 56 45  |S YOU CAN'T HAVE|
00000380: 20 45 56 45 52 59 54 48  49 4E 47 2C 20 53 4F 20  | EVERYTHING, SO |
00000390: 44 45 43 49 44 45 44 20  54 4F 20 47 4F 20 54 48  |DECIDED TO GO TH|
000003A0: 52 4F 55 47 48 20 41 4E  44 20 46 49 47 55 52 45  |ROUGH AND FIGURE|
000003B0: 20 49 54 20 4F 55 54 0D  4D 59 53 45 4C 46 2E 20  | IT OUT.MYSELF. |
000003C0: 69 27 4D 20 47 4C 41 44  20 69 20 44 49 44 20 54  |i'M GLAD i DID T|
000003D0: 48 4F 55 47 48 2E 20 69  20 48 41 56 45 20 41 20  |HOUGH. i HAVE A |
000003E0: 4D 55 43 48 20 42 45 54  54 45 52 20 55 4E 44 45  |MUCH BETTER UNDE|
000003F0: 52 53 54 41 4E 44 49 4E  47 20 4F 46 20 48 4F 57  |RSTANDING OF HOW|
00000400: 20 54 48 4F 53 45 0D 66  41 53 54 20 6C 4F 41 44  | THOSE.fAST lOAD|
00000410: 20 50 52 4F 47 52 41 4D  53 20 57 4F 52 4B 20 49  | PROGRAMS WORK I|
00000420: 4E 20 47 45 4E 45 52 41  4C 2C 20 41 4E 44 20 73  |N GENERAL, AND s|
00000430: 45 52 49 41 4C 20 69 2F  6F 20 45 53 50 45 43 49  |ERIAL i/o ESPECI|
00000440: 41 4C 4C 59 2E 20 62 55  54 20 69 20 43 4F 55 4C  |ALLY. bUT i COUL|
00000450: 44 4E 27 54 0D 48 41 56  45 20 44 4F 4E 45 20 49  |DN'T.HAVE DONE I|
00000460: 54 20 57 49 54 48 4F 55  54 20 4D 59 20 47 4F 4F  |T WITHOUT MY GOO|
00000470: 44 20 4C 49 42 52 41 52  59 20 4F 46 20 52 45 46  |D LIBRARY OF REF|
00000480: 45 52 45 4E 43 45 20 42  4F 4F 4B 53 3A 0D 0D 31  |ERENCE BOOKS:..1|
00000490: 35 37 31 20 69 4E 54 45  52 4E 41 4C 53 20 28 61  |571 iNTERNALS (a|
000004A0: 42 41 43 55 53 29 0D 69  4E 53 49 44 45 20 63 4F  |BACUS).iNSIDE cO|
000004B0: 4D 4D 4F 44 4F 52 45 20  64 4F 53 20 28 64 41 54  |MMODORE dOS (dAT|
000004C0: 41 4D 4F 53 54 29 0D 63  31 32 38 20 70 52 4F 47  |AMOST).c128 pROG|
000004D0: 52 41 4D 4D 45 52 27 53  20 72 45 46 45 52 45 4E  |RAMMER'S rEFEREN|
000004E0: 43 45 20 67 55 49 44 45  20 28 62 41 4E 54 41 4D  |CE gUIDE (bANTAM|
000004F0: 29 0D 0D 61 53 20 59 4F  55 20 4E 4F 54 49 43 45  |)..aS YOU NOTICE|
00000500: 2C 20 53 4F 4D 45 20 4F  46 20 54 48 45 20 42 4F  |, SOME OF THE BO|
00000510: 4F 4B 53 20 69 20 55 53  45 44 20 41 52 45 20 46  |OKS i USED ARE F|
00000520: 4F 52 20 54 48 45 20 31  35 37 31 20 41 4E 44 20  |OR THE 1571 AND |
00000530: 63 31 32 38 2E 20 74 48  45 20 42 4F 4F 4B 0D 22  |c128. tHE BOOK."|
00000540: 31 35 37 31 20 69 4E 54  45 52 4E 41 4C 53 22 20  |1571 iNTERNALS" |
00000550: 48 41 53 20 41 20 56 45  52 59 20 47 4F 4F 44 20  |HAS A VERY GOOD |
00000560: 45 58 50 4C 41 4E 41 54  49 4F 4E 20 4F 46 20 48  |EXPLANATION OF H|
00000570: 4F 57 20 73 45 52 49 41  4C 20 69 2F 6F 20 57 4F  |OW sERIAL i/o WO|
00000580: 52 4B 53 2C 20 57 48 49  4C 45 0D 54 48 45 49 52  |RKS, WHILE.THEIR|
00000590: 20 4D 41 4E 55 41 4C 20  22 61 4E 41 54 4F 4D 59  | MANUAL "aNATOMY|
000005A0: 20 4F 46 20 54 48 45 20  31 35 34 31 20 64 49 53  | OF THE 1541 dIS|
000005B0: 4B 20 64 52 49 56 45 22  20 42 41 52 45 4C 59 20  |K dRIVE" BARELY |
000005C0: 4D 45 4E 54 49 4F 4E 53  20 54 48 49 53 20 53 55  |MENTIONS THIS SU|
000005D0: 42 4A 45 43 54 2E 0D 77  48 59 20 54 48 45 59 20  |BJECT..wHY THEY |
000005E0: 44 49 44 4E 27 54 20 49  4E 43 4C 55 44 45 20 54  |DIDN'T INCLUDE T|
000005F0: 48 45 20 53 45 52 49 41  4C 20 69 2F 6F 20 49 4E  |HE SERIAL i/o IN|
00000600: 46 4F 20 49 4E 20 54 48  45 20 31 35 34 31 20 4D  |FO IN THE 1541 M|
00000610: 41 4E 55 41 4C 20 49 53  20 42 45 59 4F 4E 44 20  |ANUAL IS BEYOND |
00000620: 4D 45 2E 0D 61 4E 59 57  41 59 2C 20 69 20 48 4F  |ME..aNYWAY, i HO|
00000630: 50 45 20 59 4F 55 20 43  41 4E 20 4C 45 41 52 4E  |PE YOU CAN LEARN|
00000640: 20 46 52 4F 4D 20 54 48  45 20 52 45 53 55 4C 54  | FROM THE RESULT|
00000650: 20 4F 46 20 4D 59 20 45  46 46 4F 52 54 53 2C 20  | OF MY EFFORTS, |
00000660: 41 4E 44 20 50 4C 45 41  53 45 20 4C 45 54 20 4D  |AND PLEASE LET M|
00000670: 45 0D 4B 4E 4F 57 20 57  48 41 54 20 59 4F 55 20  |E.KNOW WHAT YOU |
00000680: 54 48 49 4E 4B 2E 20 61  4C 53 4F 20 69 20 41 44  |THINK. aLSO i AD|
00000690: 4D 49 54 20 69 27 6D 20  4E 4F 54 20 41 4E 20 45  |MIT i'm NOT AN E|
000006A0: 58 50 45 52 49 45 4E 43  45 44 20 64 6F 73 20 48  |XPERIENCED dos H|
000006B0: 41 43 4B 45 52 20 4F 52  20 6D 6C 0D 50 52 4F 47  |ACKER OR ml.PROG|
000006C0: 52 41 4D 4D 45 52 2C 20  53 4F 20 49 46 20 59 4F  |RAMMER, SO IF YO|
000006D0: 55 20 4E 4F 54 49 43 45  20 41 4E 59 20 43 4F 52  |U NOTICE ANY COR|
000006E0: 52 45 43 54 49 4F 4E 53  20 4F 52 20 41 44 44 49  |RECTIONS OR ADDI|
000006F0: 54 49 4F 4E 53 20 54 48  41 54 20 4E 45 45 44 20  |TIONS THAT NEED |
00000700: 54 4F 20 42 45 20 4D 41  44 45 2C 0D 50 4C 45 41  |TO BE MADE,.PLEA|
00000710: 53 45 20 54 45 4C 4C 20  4D 45 21 0D 0D 7A 41 50  |SE TELL ME!..zAP|
00000720: 2F 6C 4F 41 44 45 52 20  36 34 20 52 45 53 49 44  |/lOADER 64 RESID|
00000730: 45 4E 54 20 43 4F 44 45  0D 0D 20 20 20 20 20 20  |ENT CODE..      |
00000740: 20 20 20 20 20 20 20 20  20 20 36 34 20 52 4F 55  |          64 ROU|
00000750: 54 49 4E 45 53 20 26 20  52 41 4D 0D 0D 20 20 20  |TINES & RAM..   |
00000760: 20 20 20 20 20 20 20 20  20 20 20 20 20 70 6F 72  |             por|
00000770: 74 61 20 20 20 20 3D 20  20 20 20 20 24 64 64 30  |ta    =     $dd0|
00000780: 30 20 20 20 20 20 20 3B  36 35 32 36 20 63 49 41  |0      ;6526 cIA|
00000790: 20 23 32 2D 70 4F 52 54  20 61 0D 20 20 20 20 20  | #2-pORT a.     |
000007A0: 20 20 20 20 20 20 20 20  20 20 20 76 69 63 63 74  |           vicct|
000007B0: 72 20 20 20 3D 20 20 20  20 20 24 64 30 31 31 20  |r   =     $d011 |
000007C0: 20 20 20 20 20 3B 76 69  63 20 63 4F 4E 54 52 4F  |     ;vic cONTRO|
000007D0: 4C 20 72 45 47 49 53 54  45 52 20 31 0D 20 20 20  |L rEGISTER 1.   |
000007E0: 20 20 20 20 20 20 20 20  20 20 20 20 20 62 75 66  |             buf|
000007F0: 66 65 72 20 20 20 3D 20  20 20 20 20 24 63 34 30  |fer   =     $c40|
00000800: 30 20 20 20 20 20 20 3B  74 45 4D 50 20 42 55 46  |0      ;tEMP BUF|
00000810: 46 45 52 20 46 4F 52 20  53 45 43 54 4F 52 20 54  |FER FOR SECTOR T|
00000820: 52 41 4E 53 46 45 52 0D  20 20 20 20 20 20 20 20  |RANSFER.        |
00000830: 20 20 20 20 20 20 20 20  69 6C 6F 61 64 20 20 20  |        iload   |
00000840: 20 3D 20 20 20 20 20 24  30 33 33 30 20 20 20 20  | =     $0330    |
00000850: 20 20 3B 63 36 34 20 6B  45 52 4E 41 4C 20 6C 6F  |  ;c64 kERNAL lo|
00000860: 61 64 20 52 4F 55 54 49  4E 45 20 56 45 43 54 4F  |ad ROUTINE VECTO|
00000870: 52 0D 0D 20 20 20 20 20  20 20 20 20 20 20 20 20  |R..             |
00000880: 20 20 20 6B 45 52 4E 41  4C 20 4A 55 4D 50 53 0D  |   kERNAL JUMPS.|
00000890: 0D 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000008A0: 20 74 61 6C 6B 20 20 20  20 20 3D 20 20 20 20 20  | talk     =     |
000008B0: 24 66 66 62 34 20 20 20  20 20 20 3B 63 4F 4D 4D  |$ffb4      ;cOMM|
000008C0: 41 4E 44 20 44 45 56 49  43 45 20 54 4F 20 74 61  |AND DEVICE TO ta|
000008D0: 6C 6B 0D 20 20 20 20 20  20 20 20 20 20 20 20 20  |lk.             |
000008E0: 20 20 20 6C 69 73 74 65  6E 20 20 20 3D 20 20 20  |   listen   =   |
000008F0: 20 20 24 66 66 62 31 20  20 20 20 20 20 3B 63 4F  |  $ffb1      ;cO|
00000900: 4D 4D 41 4E 44 20 44 45  56 49 43 45 20 54 4F 20  |MMAND DEVICE TO |
00000910: 6C 69 73 74 65 6E 0D 20  20 20 20 20 20 20 20 20  |listen.         |
00000920: 20 20 20 20 20 20 20 75  6E 6C 73 6E 20 20 20 20  |       unlsn    |
00000930: 3D 20 20 20 20 20 24 66  66 61 65 20 20 20 20 20  |=     $ffae     |
00000940: 20 3B 63 4F 4D 4D 41 4E  44 20 44 45 56 49 43 45  | ;cOMMAND DEVICE|
00000950: 20 54 4F 20 75 6E 6C 69  73 74 65 6E 0D 20 20 20  | TO unlisten.   |
00000960: 20 20 20 20 20 20 20 20  20 20 20 20 20 75 6E 74  |             unt|
00000970: 61 6C 6B 20 20 20 3D 20  20 20 20 20 24 66 66 61  |alk   =     $ffa|
00000980: 62 20 20 20 20 20 20 3B  63 4F 4D 4D 41 4E 44 20  |b      ;cOMMAND |
00000990: 44 45 56 49 43 45 20 54  4F 20 75 6E 74 61 6C 6B  |DEVICE TO untalk|
000009A0: 0D 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000009B0: 20 63 69 6F 75 74 20 20  20 20 3D 20 20 20 20 20  | ciout    =     |
000009C0: 24 66 66 61 38 20 20 20  20 20 20 3B 6F 55 54 50  |$ffa8      ;oUTP|
000009D0: 55 54 20 42 59 54 45 20  4F 56 45 52 20 53 45 52  |UT BYTE OVER SER|
000009E0: 49 41 4C 20 42 55 53 0D  20 20 20 20 20 20 20 20  |IAL BUS.        |
000009F0: 20 20 20 20 20 20 20 20  73 65 63 6F 6E 64 20 20  |        second  |
00000A00: 20 3D 20 20 20 20 20 24  66 66 39 33 20 20 20 20  | =     $ff93    |
00000A10: 20 20 3B 73 45 4E 44 20  73 45 43 4F 4E 44 41 52  |  ;sEND sECONDAR|
00000A20: 59 20 41 44 44 52 45 53  53 0D 20 20 20 20 20 20  |Y ADDRESS.      |
00000A30: 20 20 20 20 20 20 20 20  20 20 6C 6F 61 64 36 34  |          load64|
00000A40: 20 20 20 3D 20 20 20 20  20 24 66 34 61 35 20 20  |   =     $f4a5  |
00000A50: 20 20 20 20 3B 63 36 34  20 4E 4F 52 4D 41 4C 20  |    ;c64 NORMAL |
00000A60: 6C 6F 61 64 20 52 4F 55  54 49 4E 45 0D 20 20 20  |load ROUTINE.   |
00000A70: 20 20 20 20 20 20 20 20  20 20 20 20 20 6F 75 74  |             out|
00000A80: 73 63 6E 20 20 20 3D 20  20 20 20 20 24 65 37 31  |scn   =     $e71|
00000A90: 36 20 20 20 20 20 20 3B  70 52 49 4E 54 20 43 48  |6      ;pRINT CH|
00000AA0: 41 52 20 49 4E 20 61 20  41 54 20 4E 45 58 54 0D  |AR IN a AT NEXT.|
00000AB0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000AC0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000AD0: 20 20 20 20 20 20 20 20  20 20 3B 43 55 52 53 4F  |          ;CURSO|
00000AE0: 52 20 50 4F 53 49 54 49  4F 4E 2E 0D 0D 20 20 20  |R POSITION...   |
00000AF0: 20 20 20 20 20 20 20 20  20 20 20 20 20 63 36 34  |             c64|
00000B00: 20 7A 45 52 4F 20 50 41  47 45 20 55 53 41 47 45  | zERO PAGE USAGE|
00000B10: 0D 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00000B20: 20 20 62 73 6F 75 72 20  20 20 20 3D 20 20 20 20  |  bsour    =    |
00000B30: 20 24 39 35 20 20 20 20  20 20 20 20 3B 74 45 4D  | $95        ;tEM|
00000B40: 50 20 42 55 46 46 45 52  20 46 4F 52 20 53 45 52  |P BUFFER FOR SER|
00000B50: 49 41 4C 20 44 41 54 41  0D 20 20 20 20 20 20 20  |IAL DATA.       |
00000B60: 20 20 20 20 20 20 20 20  20 65 61 6C 20 20 20 20  |         eal    |
00000B70: 20 20 3D 20 20 20 20 20  24 61 65 20 20 20 20 20  |  =     $ae     |
00000B80: 20 20 20 3B 70 4F 49 4E  54 45 52 20 54 4F 20 50  |   ;pOINTER TO P|
00000B90: 52 4F 47 52 41 4D 20 53  54 41 52 54 20 41 44 44  |ROGRAM START ADD|
00000BA0: 52 45 53 53 0D 20 20 20  20 20 20 20 20 20 20 20  |RESS.           |
00000BB0: 20 20 20 20 20 74 65 6D  70 20 20 20 20 20 3D 20  |     temp     = |
00000BC0: 20 20 20 20 24 66 62 20  20 20 20 20 20 20 20 3B  |    $fb        ;|
00000BD0: 70 4F 49 4E 54 45 52 20  46 4F 52 20 31 35 34 31  |pOINTER FOR 1541|
00000BE0: 20 44 52 49 56 45 20 50  52 4F 47 52 41 4D 0D 20  | DRIVE PROGRAM. |
00000BF0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000C00: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000C10: 20 20 20 20 20 20 20 20  20 3B 54 48 41 54 20 49  |         ;THAT I|
00000C20: 53 20 4C 4F 43 41 54 45  44 20 41 54 20 24 63 32  |S LOCATED AT $c2|
00000C30: 30 30 0D 20 20 20 20 20  20 20 20 20 20 20 20 20  |00.             |
00000C40: 20 20 20 74 65 6D 70 31  20 20 20 20 3D 20 20 20  |   temp1    =   |
00000C50: 20 20 24 66 64 20 20 20  20 20 20 20 20 3B 70 4F  |  $fd        ;pO|
00000C60: 49 4E 54 45 52 20 46 4F  52 20 31 35 34 31 20 52  |INTER FOR 1541 R|
00000C70: 41 4D 20 28 24 30 35 30  30 29 0D 20 20 20 20 20  |AM ($0500).     |
00000C80: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000C90: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000CA0: 20 20 20 20 20 3B 54 48  41 54 20 54 48 45 20 50  |     ;THAT THE P|
00000CB0: 52 4F 47 52 41 4D 20 49  53 20 54 4F 20 42 45 0D  |ROGRAM IS TO BE.|
00000CC0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000CD0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000CE0: 20 20 20 20 20 20 20 20  20 20 3B 44 4F 57 4E 4C  |          ;DOWNL|
00000CF0: 4F 41 44 45 44 20 54 4F  2E 0D 20 20 20 20 20 20  |OADED TO..      |
00000D00: 20 20 20 20 20 20 20 20  20 20 70 61 67 65 20 20  |          page  |
00000D10: 20 20 20 3D 20 20 20 20  20 24 66 66 20 20 20 20  |   =     $ff    |
00000D20: 20 20 20 20 3B 6E 55 4D  42 45 52 20 4F 46 20 33  |    ;nUMBER OF 3|
00000D30: 32 20 42 59 54 45 20 50  41 47 45 53 20 54 4F 0D  |2 BYTE PAGES TO.|
00000D40: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000D50: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000D60: 20 20 20 20 20 20 20 20  20 20 3B 42 45 20 44 4F  |          ;BE DO|
00000D70: 57 4E 4C 4F 41 44 45 44  20 54 4F 20 54 48 45 20  |WNLOADED TO THE |
00000D80: 31 35 34 31 20 28 31 36  29 2E 0D 20 20 20 20 20  |1541 (16)..     |
00000D90: 20 20 20 20 20 20 20 20  20 20 20 66 61 20 20 20  |           fa   |
00000DA0: 20 20 20 20 3D 20 20 20  20 20 24 62 61 20 20 20  |    =     $ba   |
00000DB0: 20 20 20 20 20 3B 63 55  52 52 45 4E 54 20 44 45  |     ;cURRENT DE|
00000DC0: 56 49 43 45 20 28 46 4F  52 20 44 52 49 56 45 20  |VICE (FOR DRIVE |
00000DD0: 3D 20 38 29 0D 20 20 20  20 20 20 20 20 20 20 20  |= 8).           |
00000DE0: 20 20 20 20 20 66 6E 6C  65 6E 20 20 20 20 3D 20  |     fnlen    = |
00000DF0: 20 20 20 20 24 62 37 20  20 20 20 20 20 20 20 3B  |    $b7        ;|
00000E00: 6C 45 4E 47 54 48 20 4F  46 20 46 49 4C 45 4E 41  |lENGTH OF FILENA|
00000E10: 4D 45 0D 20 20 20 20 20  20 20 20 20 20 20 20 20  |ME.             |
00000E20: 20 20 20 66 6E 61 64 72  20 20 20 20 3D 20 20 20  |   fnadr    =   |
00000E30: 20 20 24 62 62 20 20 20  20 20 20 20 20 3B 70 4F  |  $bb        ;pO|
00000E40: 49 4E 54 45 52 20 57 48  45 52 45 20 46 49 4C 45  |INTER WHERE FILE|
00000E50: 4E 41 4D 45 20 49 53 20  4C 4F 43 41 54 45 44 0D  |NAME IS LOCATED.|
00000E60: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000E70: 73 61 20 20 20 20 20 20  20 3D 20 20 20 20 20 24  |sa       =     $|
00000E80: 62 39 20 20 20 20 20 20  20 20 3B 73 45 43 4F 4E  |b9        ;sECON|
00000E90: 44 41 52 59 20 41 44 44  52 45 53 53 0D 20 20 20  |DARY ADDRESS.   |
00000EA0: 20 20 20 20 20 20 20 20  20 20 20 20 20 6D 65 6D  |             mem|
00000EB0: 75 73 73 20 20 20 3D 20  20 20 20 20 24 63 33 20  |uss   =     $c3 |
00000EC0: 20 20 20 20 20 20 20 3B  6E 4F 52 4D 41 4C 20 62  |       ;nORMAL b|
00000ED0: 41 53 49 43 20 6C 6F 61  64 20 50 4F 49 4E 54 45  |ASIC load POINTE|
00000EE0: 52 20 28 24 30 38 30 31  29 0D 20 20 20 20 20 20  |R ($0801).      |
00000EF0: 20 20 20 20 20 20 20 20  20 20 76 65 72 63 6B 20  |          verck |
00000F00: 20 20 20 3D 20 20 20 20  20 24 39 33 20 20 20 20  |   =     $93    |
00000F10: 20 20 20 20 3B 66 4C 41  47 3A 20 30 3D 6C 4F 41  |    ;fLAG: 0=lOA|
00000F20: 44 20 31 3D 76 45 52 49  46 59 0D 0D 20 20 20 20  |D 1=vERIFY..    |
00000F30: 20 20 20 20 20 20 20 20  20 20 20 20 73 45 45 20  |            sEE |
00000F40: 7A 41 50 20 4C 4F 41 44  45 52 20 31 35 34 31 20  |zAP LOADER 1541 |
00000F50: 52 45 53 49 44 45 4E 54  20 43 4F 44 45 0D 0D 20  |RESIDENT CODE.. |
00000F60: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 66  |               f|
00000F70: 69 6C 65 20 20 20 20 20  3D 20 20 20 20 20 24 30  |ile     =     $0|
00000F80: 36 61 63 2B 24 62 64 30  30 3B 73 45 43 4F 4E 44  |6ac+$bd00;sECOND|
00000F90: 41 52 59 20 66 49 4C 45  4E 41 4D 45 20 41 52 45  |ARY fILENAME ARE|
00000FA0: 41 20 55 53 45 44 0D 20  20 20 20 20 20 20 20 20  |A USED.         |
00000FB0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000FC0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000FD0: 20 3B 42 59 20 54 48 49  53 20 50 52 4F 47 52 41  | ;BY THIS PROGRA|
00000FE0: 4D 2E 20 74 48 45 20 4D  41 49 4E 0D 20 20 20 20  |M. tHE MAIN.    |
00000FF0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001000: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001010: 20 20 20 20 20 20 3B 46  49 4C 45 4E 41 4D 45 20  |      ;FILENAME |
00001020: 49 53 20 50 4F 49 4E 54  45 44 20 54 4F 20 42 59  |IS POINTED TO BY|
00001030: 20 24 62 62 2E 0D 0D 70  52 4F 47 52 41 4D 20 53  | $bb...pROGRAM S|
00001040: 54 41 52 54 53 20 48 45  52 45 0D 0D 20 20 20 20  |TARTS HERE..    |
00001050: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001060: 20 20 20 20 20 6F 72 67  20 20 20 24 63 30 30 30  |     org   $c000|
00001070: 0D 0D 63 30 30 30 3A 20  34 63 20 31 62 20 63 30  |..c000: 4c 1b c0|
00001080: 20 20 7A 61 70 6F 6E 20  20 20 20 6A 6D 70 20 20  |  zapon    jmp  |
00001090: 20 7A 61 70 6F 6E 30 20  20 20 20 20 3B 6A 55 4D  | zapon0     ;jUM|
000010A0: 50 20 54 4F 20 45 4E 41  42 4C 45 20 66 41 53 54  |P TO ENABLE fAST|
000010B0: 20 4C 4F 41 44 45 52 0D  0D 64 49 53 41 42 4C 45  | LOADER..dISABLE|
000010C0: 20 66 41 53 54 20 4C 4F  41 44 20 52 4F 55 54 49  | fAST LOAD ROUTI|
000010D0: 4E 45 0D 0D 63 30 30 33  3A 20 61 39 20 61 35 20  |NE..c003: a9 a5 |
000010E0: 20 20 20 20 7A 61 70 6F  66 66 20 20 20 6C 64 61  |    zapoff   lda|
000010F0: 20 20 20 23 3C 6C 6F 61  64 36 34 20 20 20 3B 72  |   #<load64   ;r|
00001100: 45 53 54 4F 52 45 20 69  6C 6F 61 64 20 56 45 43  |ESTORE iload VEC|
00001110: 54 4F 52 20 54 4F 20 4E  4F 52 4D 41 4C 0D 63 30  |TOR TO NORMAL.c0|
00001120: 30 35 3A 20 38 64 20 33  30 20 30 33 20 20 20 20  |05: 8d 30 03    |
00001130: 20 20 20 20 20 20 20 73  74 61 20 20 20 69 6C 6F  |       sta   ilo|
00001140: 61 64 20 20 20 20 20 20  3B 63 36 34 20 4C 4F 41  |ad      ;c64 LOA|
00001150: 44 20 52 4F 55 54 49 4E  45 20 28 66 34 61 35 29  |D ROUTINE (f4a5)|
00001160: 0D 63 30 30 38 3A 20 61  39 20 66 34 20 20 20 20  |.c008: a9 f4    |
00001170: 20 20 20 20 20 20 20 20  20 20 6C 64 61 20 20 20  |          lda   |
00001180: 23 3E 6C 6F 61 64 36 34  0D 63 30 30 61 3A 20 38  |#>load64.c00a: 8|
00001190: 64 20 33 31 20 30 33 20  20 20 20 20 20 20 20 20  |d 31 03         |
000011A0: 20 20 73 74 61 20 20 20  69 6C 6F 61 64 2B 31 0D  |  sta   iload+1.|
000011B0: 63 30 30 64 3A 20 61 30  20 30 30 20 20 20 20 20  |c00d: a0 00     |
000011C0: 20 20 20 20 20 20 20 20  20 6C 64 79 20 20 20 23  |         ldy   #|
000011D0: 30 30 0D 63 30 30 66 3A  20 62 39 20 32 39 20 63  |00.c00f: b9 29 c|
000011E0: 30 20 20 7A 61 70 6F 66  30 20 20 20 6C 64 61 20  |0  zapof0   lda |
000011F0: 20 20 6D 73 67 31 2C 79  20 20 20 20 20 3B 70 52  |  msg1,y     ;pR|
00001200: 49 4E 54 20 64 69 73 61  62 6C 65 64 20 4D 45 53  |INT disabled MES|
00001210: 53 41 47 45 0D 63 30 31  32 3A 20 66 30 20 30 36  |SAGE.c012: f0 06|
00001220: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 62 65  |              be|
00001230: 71 20 20 20 7A 61 70 6F  66 78 0D 63 30 31 34 3A  |q   zapofx.c014:|
00001240: 20 32 30 20 31 36 20 65  37 20 20 20 20 20 20 20  | 20 16 e7       |
00001250: 20 20 20 20 6A 73 72 20  20 20 6F 75 74 73 63 6E  |    jsr   outscn|
00001260: 0D 63 30 31 37 3A 20 63  38 20 20 20 20 20 20 20  |.c017: c8       |
00001270: 20 20 20 20 20 20 20 20  20 20 69 6E 79 0D 63 30  |          iny.c0|
00001280: 31 38 3A 20 64 30 20 66  35 20 20 20 20 20 20 20  |18: d0 f5       |
00001290: 20 20 20 20 20 20 20 62  6E 65 20 20 20 7A 61 70  |       bne   zap|
000012A0: 6F 66 30 0D 63 30 31 61  3A 20 36 30 20 20 20 20  |of0.c01a: 60    |
000012B0: 20 20 20 20 7A 61 70 6F  66 78 20 20 20 72 74 73  |    zapofx   rts|
000012C0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 3B 41  |              ;A|
000012D0: 4E 44 20 52 45 54 55 52  4E 0D 0D 65 4E 41 42 4C  |ND RETURN..eNABL|
000012E0: 45 20 66 41 53 54 20 4C  4F 41 44 20 52 4F 55 54  |E fAST LOAD ROUT|
000012F0: 49 4E 45 0D 0D 63 30 31  62 3A 20 61 39 20 34 66  |INE..c01b: a9 4f|
00001300: 20 20 20 20 20 7A 61 70  6F 6E 30 20 20 20 6C 64  |     zapon0   ld|
00001310: 61 20 20 20 23 3C 7A 61  70 20 20 20 20 20 20 3B  |a   #<zap      ;|
00001320: 73 45 54 20 69 6C 6F 61  64 20 56 45 43 54 4F 52  |sET iload VECTOR|
00001330: 20 54 4F 20 50 4F 49 4E  54 20 54 4F 0D 63 30 31  | TO POINT TO.c01|
00001340: 64 3A 20 38 64 20 33 30  20 30 33 20 20 20 20 20  |d: 8d 30 03     |
00001350: 20 20 20 20 20 20 73 74  61 20 20 20 69 6C 6F 61  |      sta   iloa|
00001360: 64 20 20 20 20 20 20 3B  54 48 45 20 66 41 53 54  |d      ;THE fAST|
00001370: 20 4C 4F 41 44 20 52 4F  55 54 49 4E 45 2E 0D 63  | LOAD ROUTINE..c|
00001380: 30 32 30 3A 20 61 39 20  63 30 20 20 20 20 20 20  |020: a9 c0      |
00001390: 20 20 20 20 20 20 20 20  6C 64 61 20 20 20 23 3E  |        lda   #>|
000013A0: 7A 61 70 0D 63 30 32 32  3A 20 38 64 20 33 31 20  |zap.c022: 8d 31 |
000013B0: 30 33 20 20 20 20 20 20  20 20 20 20 20 73 74 61  |03           sta|
000013C0: 20 20 20 69 6C 6F 61 64  2B 31 0D 63 30 32 35 3A  |   iload+1.c025:|
000013D0: 20 61 30 20 30 66 20 20  20 20 20 20 20 20 20 20  | a0 0f          |
000013E0: 20 20 20 20 6C 64 79 20  20 20 23 6D 73 67 32 2D  |    ldy   #msg2-|
000013F0: 6C 69 74 73 20 3B 70 52  49 4E 54 20 22 65 6E 61  |lits ;pRINT "ena|
00001400: 62 6C 65 64 22 20 4D 45  53 53 41 47 45 0D 63 30  |bled" MESSAGE.c0|
00001410: 32 37 3A 20 64 30 20 65  36 20 20 20 20 20 20 20  |27: d0 e6       |
00001420: 20 20 20 20 20 20 20 62  6E 65 20 20 20 7A 61 70  |       bne   zap|
00001430: 6F 66 30 0D 0D 20 20 20  20 20 20 20 20 20 20 20  |of0..           |
00001440: 20 20 20 20 20 6C 69 74  73 20 20 20 20 20 3D 20  |     lits     = |
00001450: 20 20 20 20 2A 0D 63 30  32 39 3A 20 30 64 20 20  |    *.c029: 0d  |
00001460: 20 20 20 20 20 20 6D 73  67 31 20 20 20 20 20 64  |      msg1     d|
00001470: 66 62 20 20 20 24 30 64  0D 63 30 32 61 3A 20 35  |fb   $0d.c02a: 5|
00001480: 61 20 34 31 20 35 30 20  20 20 20 20 20 20 20 20  |a 41 50         |
00001490: 20 20 61 73 63 20 20 20  27 7A 61 70 20 64 69 73  |  asc   'zap dis|
000014A0: 61 62 6C 65 64 27 2C 30  64 2C 30 30 0D 63 30 32  |abled',0d,00.c02|
000014B0: 64 3A 20 32 30 20 34 34  20 34 39 20 35 33 20 34  |d: 20 44 49 53 4|
000014C0: 31 20 34 32 20 34 63 20  34 35 0D 63 30 33 35 3A  |1 42 4c 45.c035:|
000014D0: 20 34 34 20 30 64 20 30  30 0D 63 30 33 38 3A 20  | 44 0d 00.c038: |
000014E0: 30 64 20 20 20 20 20 20  20 20 6D 73 67 32 20 20  |0d        msg2  |
000014F0: 20 20 20 64 66 62 20 20  20 24 30 64 0D 63 30 33  |   dfb   $0d.c03|
00001500: 39 3A 20 35 61 20 34 31  20 35 30 20 20 20 20 20  |9: 5a 41 50     |
00001510: 20 20 20 20 20 20 61 73  63 20 20 20 27 7A 61 70  |      asc   'zap|
00001520: 20 76 30 32 32 33 2F 38  35 20 65 6E 61 62 6C 65  | v0223/85 enable|
00001530: 64 27 2C 30 64 2C 30 30  0D 63 30 33 63 3A 20 32  |d',0d,00.c03c: 2|
00001540: 30 20 35 36 20 33 30 20  33 32 20 33 32 20 33 33  |0 56 30 32 32 33|
00001550: 20 32 66 20 33 38 0D 63  30 34 34 3A 20 33 35 20  | 2f 38.c044: 35 |
00001560: 32 30 20 34 35 20 34 65  20 34 31 20 34 32 20 34  |20 45 4e 41 42 4|
00001570: 63 20 34 35 0D 63 30 34  63 3A 20 34 34 20 30 64  |c 45.c04c: 44 0d|
00001580: 20 30 30 0D 0D 66 41 53  54 20 4C 4F 41 44 20 52  | 00..fAST LOAD R|
00001590: 4F 55 54 49 4E 45 20 53  54 41 52 54 53 20 48 45  |OUTINE STARTS HE|
000015A0: 52 45 2E 20 61 54 20 54  48 49 53 20 50 4F 49 4E  |RE. aT THIS POIN|
000015B0: 54 2C 20 57 48 45 4E 20  54 48 45 20 69 6C 6F 61  |T, WHEN THE iloa|
000015C0: 64 20 56 45 43 54 4F 52  20 4A 55 4D 50 53 20 48  |d VECTOR JUMPS H|
000015D0: 45 52 45 2C 0D 54 48 45  20 61 20 52 45 47 49 53  |ERE,.THE a REGIS|
000015E0: 54 45 52 20 57 49 4C 4C  20 43 4F 4E 54 41 49 4E  |TER WILL CONTAIN|
000015F0: 20 54 48 45 20 46 4C 41  47 20 46 4F 52 20 41 20  | THE FLAG FOR A |
00001600: 6C 6F 61 64 20 4F 52 20  76 65 72 69 66 79 2E 20  |load OR verify. |
00001610: 28 30 2D 6C 4F 41 44 20  31 2D 76 45 52 49 46 59  |(0-lOAD 1-vERIFY|
00001620: 29 0D 0D 63 30 34 66 3A  20 38 35 20 39 33 20 20  |)..c04f: 85 93  |
00001630: 20 20 20 7A 61 70 20 20  20 20 20 20 73 74 61 20  |   zap      sta |
00001640: 20 20 76 65 72 63 6B 20  20 20 20 20 20 3B 73 41  |  verck      ;sA|
00001650: 56 45 20 56 45 52 49 46  59 20 46 4C 41 47 0D 63  |VE VERIFY FLAG.c|
00001660: 30 35 31 3A 20 61 35 20  39 33 20 20 20 20 20 20  |051: a5 93      |
00001670: 20 20 20 20 20 20 20 20  6C 64 61 20 20 20 76 65  |        lda   ve|
00001680: 72 63 6B 20 20 20 20 20  20 3B 67 45 54 20 56 45  |rck      ;gET VE|
00001690: 52 49 46 59 20 46 4C 41  47 0D 63 30 35 33 3A 20  |RIFY FLAG.c053: |
000016A0: 64 30 20 31 65 20 20 20  20 20 20 20 20 20 20 20  |d0 1e           |
000016B0: 20 20 20 62 6E 65 20 20  20 64 69 72 63 74 20 20  |   bne   dirct  |
000016C0: 20 20 20 20 3B 69 53 20  49 54 20 41 20 76 65 72  |    ;iS IT A ver|
000016D0: 69 66 79 3F 20 79 45 53  20 54 48 45 4E 20 4A 55  |ify? yES THEN JU|
000016E0: 4D 50 0D 20 20 20 20 20  20 20 20 20 20 20 20 20  |MP.             |
000016F0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001700: 20 20 20 20 20 20 20 20  20 20 20 20 20 3B 54 4F  |             ;TO|
00001710: 20 4E 4F 52 4D 41 4C 20  63 36 34 20 6C 6F 61 64  | NORMAL c64 load|
00001720: 20 52 4F 55 54 49 4E 45  2E 0D 20 20 20 20 20 20  | ROUTINE..      |
00001730: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001740: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001750: 20 20 20 20 3B 6E 4F 2D  54 48 45 4E 20 49 54 53  |    ;nO-THEN ITS|
00001760: 20 41 20 6C 6F 61 64 20  43 4F 4D 4D 41 4E 44 0D  | A load COMMAND.|
00001770: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001780: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001790: 20 20 20 20 20 20 20 20  20 20 3B 53 4F 20 43 4F  |          ;SO CO|
000017A0: 4E 54 49 4E 55 45 20 48  45 52 45 2E 0D 0D 63 4C  |NTINUE HERE...cL|
000017B0: 45 41 52 20 66 49 4C 45  20 6E 41 4D 45 20 41 52  |EAR fILE nAME AR|
000017C0: 45 41 0D 0D 63 30 35 35  3A 20 61 32 20 31 30 20  |EA..c055: a2 10 |
000017D0: 20 20 20 20 20 20 20 20  20 20 20 20 20 6C 64 78  |             ldx|
000017E0: 20 20 20 23 31 36 20 20  20 20 20 20 20 20 3B 74  |   #16        ;t|
000017F0: 48 49 53 20 43 4C 45 41  52 53 20 54 48 45 20 53  |HIS CLEARS THE S|
00001800: 45 43 4F 4E 44 41 52 59  0D 63 30 35 37 3A 20 61  |ECONDARY.c057: a|
00001810: 39 20 61 30 20 20 20 20  20 20 20 20 20 20 20 20  |9 a0            |
00001820: 20 20 6C 64 61 20 20 20  23 24 61 30 20 20 20 20  |  lda   #$a0    |
00001830: 20 20 20 3B 66 49 4C 45  4E 41 4D 45 20 41 52 45  |   ;fILENAME ARE|
00001840: 41 20 55 53 45 44 20 42  59 20 54 48 49 53 0D 63  |A USED BY THIS.c|
00001850: 30 35 39 3A 20 39 64 20  61 63 20 63 33 20 20 63  |059: 9d ac c3  c|
00001860: 6C 72 66 69 6C 20 20 20  73 74 61 20 20 20 66 69  |lrfil   sta   fi|
00001870: 6C 65 2C 78 20 20 20 20  20 3B 50 52 4F 47 52 41  |le,x     ;PROGRA|
00001880: 4D 2E 20 74 48 45 20 4D  41 49 4E 20 46 49 4C 45  |M. tHE MAIN FILE|
00001890: 4E 41 4D 45 0D 63 30 35  63 3A 20 63 61 20 20 20  |NAME.c05c: ca   |
000018A0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 64 65  |              de|
000018B0: 78 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  |x              ;|
000018C0: 41 52 45 41 20 49 53 20  50 4F 49 4E 54 45 44 20  |AREA IS POINTED |
000018D0: 54 4F 20 42 59 20 41 0D  63 30 35 64 3A 20 31 30  |TO BY A.c05d: 10|
000018E0: 20 66 61 20 20 20 20 20  20 20 20 20 20 20 20 20  | fa             |
000018F0: 20 62 70 6C 20 20 20 63  6C 72 66 69 6C 20 20 20  | bpl   clrfil   |
00001900: 20 20 3B 50 4F 49 4E 54  45 52 20 41 54 20 24 62  |  ;POINTER AT $b|
00001910: 62 2E 0D 0D 63 48 45 43  4B 20 49 46 20 64 49 52  |b...cHECK IF dIR|
00001920: 45 43 54 4F 52 59 20 4C  4F 41 44 0D 0D 63 30 35  |ECTORY LOAD..c05|
00001930: 66 3A 20 61 30 20 30 30  20 20 20 20 20 20 20 20  |f: a0 00        |
00001940: 20 20 20 20 20 20 6C 64  79 20 20 20 23 30 20 20  |      ldy   #0  |
00001950: 20 20 20 20 20 20 20 3B  63 48 45 43 4B 20 54 48  |       ;cHECK TH|
00001960: 45 20 4D 41 49 4E 20 46  49 4C 45 4E 41 4D 45 20  |E MAIN FILENAME |
00001970: 41 52 45 41 0D 63 30 36  31 3A 20 62 31 20 62 62  |AREA.c061: b1 bb|
00001980: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 6C 64  |              ld|
00001990: 61 20 20 20 28 66 6E 61  64 72 29 2C 79 20 20 3B  |a   (fnadr),y  ;|
000019A0: 46 4F 52 20 54 48 45 20  61 73 63 69 69 20 43 48  |FOR THE ascii CH|
000019B0: 41 52 41 43 54 45 52 20  24 0D 63 30 36 33 3A 20  |ARACTER $.c063: |
000019C0: 63 39 20 32 34 20 20 20  20 20 20 20 20 20 20 20  |c9 24           |
000019D0: 20 20 20 63 6D 70 20 20  20 23 27 24 27 20 20 20  |   cmp   #'$'   |
000019E0: 20 20 20 20 3B 57 48 49  43 48 20 49 4E 44 49 43  |    ;WHICH INDIC|
000019F0: 41 54 45 53 20 44 49 52  45 43 54 4F 52 59 20 4C  |ATES DIRECTORY L|
00001A00: 4F 41 44 2E 0D 63 30 36  35 3A 20 66 30 20 30 63  |OAD..c065: f0 0c|
00001A10: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 62 65  |              be|
00001A20: 71 20 20 20 64 69 72 63  74 20 20 20 20 20 20 3B  |q   dirct      ;|
00001A30: 69 46 20 53 4F 2C 20 54  48 45 4E 20 4A 55 4D 50  |iF SO, THEN JUMP|
00001A40: 20 54 4F 20 64 69 72 63  74 20 54 4F 0D 20 20 20  | TO dirct TO.   |
00001A50: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001A60: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001A70: 20 20 20 20 20 20 20 3B  44 4F 20 41 20 4E 4F 52  |       ;DO A NOR|
00001A80: 4D 41 4C 20 63 36 34 20  6C 6F 61 64 2E 0D 0D 6D  |MAL c64 load...m|
00001A90: 4F 56 45 20 66 49 4C 45  20 6E 41 4D 45 20 54 4F  |OVE fILE nAME TO|
00001AA0: 20 46 49 4C 45 20 41 52  45 41 0D 0D 63 30 36 37  | FILE AREA..c067|
00001AB0: 3A 20 62 31 20 62 62 20  20 20 20 20 73 74 66 69  |: b1 bb     stfi|
00001AC0: 6C 20 20 20 20 6C 64 61  20 20 20 28 66 6E 61 64  |l    lda   (fnad|
00001AD0: 72 29 2C 79 20 20 3B 69  46 20 49 54 53 20 4E 4F  |r),y  ;iF ITS NO|
00001AE0: 54 20 41 20 44 49 52 45  43 54 4F 52 59 20 4C 4F  |T A DIRECTORY LO|
00001AF0: 41 44 2C 0D 63 30 36 39  3A 20 39 39 20 61 63 20  |AD,.c069: 99 ac |
00001B00: 63 33 20 20 20 20 20 20  20 20 20 20 20 73 74 61  |c3           sta|
00001B10: 20 20 20 66 69 6C 65 2C  79 20 20 20 20 20 3B 54  |   file,y     ;T|
00001B20: 48 45 4E 20 49 54 53 20  41 20 4E 4F 52 4D 41 4C  |HEN ITS A NORMAL|
00001B30: 20 46 49 4C 45 4E 41 4D  45 0D 63 30 36 63 3A 20  | FILENAME.c06c: |
00001B40: 63 38 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |c8              |
00001B50: 20 20 20 69 6E 79 20 20  20 20 20 20 20 20 20 20  |   iny          |
00001B60: 20 20 20 20 3B 53 4F 20  4D 4F 56 45 20 49 54 20  |    ;SO MOVE IT |
00001B70: 54 4F 20 4F 55 52 20 53  45 43 4F 4E 44 41 52 59  |TO OUR SECONDARY|
00001B80: 0D 63 30 36 64 3A 20 63  34 20 62 37 20 20 20 20  |.c06d: c4 b7    |
00001B90: 20 20 20 20 20 20 20 20  20 20 63 70 79 20 20 20  |          cpy   |
00001BA0: 66 6E 6C 65 6E 20 20 20  20 20 20 3B 46 49 4C 45  |fnlen      ;FILE|
00001BB0: 4E 41 4D 45 20 41 52 45  41 2E 0D 63 30 36 66 3A  |NAME AREA..c06f:|
00001BC0: 20 39 30 20 66 36 20 20  20 20 20 20 20 20 20 20  | 90 f6          |
00001BD0: 20 20 20 20 62 63 63 20  20 20 73 74 66 69 6C 0D  |    bcc   stfil.|
00001BE0: 63 30 37 31 3A 20 62 30  20 30 35 20 20 20 20 20  |c071: b0 05     |
00001BF0: 20 20 20 20 20 20 20 20  20 62 63 73 20 20 20 7A  |         bcs   z|
00001C00: 61 70 36 34 20 20 20 20  20 20 3B 61 4E 44 20 42  |ap64      ;aND B|
00001C10: 52 41 4E 43 48 20 54 4F  20 46 41 53 54 4C 4F 41  |RANCH TO FASTLOA|
00001C20: 44 20 52 4F 55 54 49 4E  45 0D 0D 64 49 52 45 43  |D ROUTINE..dIREC|
00001C30: 54 4F 52 59 20 6C 4F 41  44 20 4F 52 20 76 45 52  |TORY lOAD OR vER|
00001C40: 49 46 59 0D 0D 63 30 37  33 3A 20 61 35 20 39 33  |IFY..c073: a5 93|
00001C50: 20 20 20 20 20 64 69 72  63 74 20 20 20 20 6C 64  |     dirct    ld|
00001C60: 61 20 20 20 76 65 72 63  6B 20 20 20 20 20 20 3B  |a   verck      ;|
00001C70: 67 45 54 20 6C 4F 41 44  20 28 24 30 30 29 20 4F  |gET lOAD ($00) O|
00001C80: 52 20 76 45 52 49 46 59  20 28 24 30 31 29 0D 63  |R vERIFY ($01).c|
00001C90: 30 37 35 3A 20 34 63 20  61 35 20 66 34 20 20 20  |075: 4c a5 f4   |
00001CA0: 20 20 20 20 20 20 20 20  6A 6D 70 20 20 20 6C 6F  |        jmp   lo|
00001CB0: 61 64 36 34 20 20 20 20  20 3B 66 4C 41 47 20 41  |ad64     ;fLAG A|
00001CC0: 4E 44 20 4A 55 4D 50 20  54 4F 20 4E 4F 52 4D 41  |ND JUMP TO NORMA|
00001CD0: 4C 20 63 36 34 0D 20 20  20 20 20 20 20 20 20 20  |L c64.          |
00001CE0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001CF0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001D00: 3B 6C 6F 61 64 20 52 4F  55 54 49 4E 45 2E 0D 7A  |;load ROUTINE..z|
00001D10: 41 50 20 6C 4F 41 44 45  52 20 36 34 0D 0D 63 30  |AP lOADER 64..c0|
00001D20: 37 38 3A 20 32 30 20 34  63 20 63 31 20 20 7A 61  |78: 20 4c c1  za|
00001D30: 70 36 34 20 20 20 20 6A  73 72 20 20 20 64 6F 77  |p64    jsr   dow|
00001D40: 6E 6C 20 20 20 20 20 20  3B 64 4F 57 4E 4C 4F 41  |nl      ;dOWNLOA|
00001D50: 44 20 44 52 49 56 45 20  50 52 4F 47 52 41 4D 20  |D DRIVE PROGRAM |
00001D60: 54 4F 20 54 48 45 20 31  35 34 31 0D 63 30 37 62  |TO THE 1541.c07b|
00001D70: 3A 20 61 35 20 62 61 20  20 20 20 20 20 20 20 20  |: a5 ba         |
00001D80: 20 20 20 20 20 6C 64 61  20 20 20 66 61 20 20 20  |     lda   fa   |
00001D90: 20 20 20 20 20 20 3B 67  45 54 20 43 55 52 52 45  |      ;gET CURRE|
00001DA0: 4E 54 20 44 45 56 49 43  45 20 28 44 52 49 56 45  |NT DEVICE (DRIVE|
00001DB0: 20 3D 20 38 29 0D 63 30  37 64 3A 20 32 30 20 62  | = 8).c07d: 20 b|
00001DC0: 31 20 66 66 20 20 20 20  20 20 20 20 20 20 20 6A  |1 ff           j|
00001DD0: 73 72 20 20 20 6C 69 73  74 65 6E 20 20 20 20 20  |sr   listen     |
00001DE0: 3B 61 4E 44 20 43 4F 4D  4D 41 4E 44 20 49 54 20  |;aND COMMAND IT |
00001DF0: 54 4F 20 6C 69 73 74 65  6E 0D 63 30 38 30 3A 20  |TO listen.c080: |
00001E00: 61 39 20 36 66 20 20 20  20 20 20 20 20 20 20 20  |a9 6f           |
00001E10: 20 20 20 6C 64 61 20 20  20 23 24 36 66 20 20 20  |   lda   #$6f   |
00001E20: 20 20 20 20 3B 67 45 54  20 54 48 45 20 53 45 43  |    ;gET THE SEC|
00001E30: 4F 4E 44 41 52 59 20 41  44 44 52 45 53 53 0D 63  |ONDARY ADDRESS.c|
00001E40: 30 38 32 3A 20 32 30 20  39 33 20 66 66 20 20 20  |082: 20 93 ff   |
00001E50: 20 20 20 20 20 20 20 20  6A 73 72 20 20 20 73 65  |        jsr   se|
00001E60: 63 6F 6E 64 20 20 20 20  20 3B 61 4E 44 20 43 4F  |cond     ;aND CO|
00001E70: 4D 4D 41 4E 44 20 44 52  49 56 45 20 54 4F 20 6F  |MMAND DRIVE TO o|
00001E80: 70 65 6E 0D 20 20 20 20  20 20 20 20 20 20 20 20  |pen.            |
00001E90: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001EA0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 3B 54  |              ;T|
00001EB0: 48 45 20 43 4F 4D 4D 41  4E 44 20 43 48 41 4E 4E  |HE COMMAND CHANN|
00001EC0: 45 4C 2E 20 73 49 4D 49  4C 41 52 20 49 4E 0D 20  |EL. sIMILAR IN. |
00001ED0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001EE0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001EF0: 20 20 20 20 20 20 20 20  20 3B 62 41 53 49 43 20  |         ;bASIC |
00001F00: 4F 46 20 6F 70 65 6E 20  31 35 2C 38 2C 31 35 2E  |OF open 15,8,15.|
00001F10: 0D 63 30 38 35 3A 20 61  39 20 35 35 20 20 20 20  |.c085: a9 55    |
00001F20: 20 20 20 20 20 20 20 20  20 20 6C 64 61 20 20 20  |          lda   |
00001F30: 23 27 55 27 20 20 20 20  20 20 20 3B 74 45 4C 4C  |#'U'       ;tELL|
00001F40: 20 44 52 49 56 45 20 54  4F 20 44 4F 20 41 20 75  | DRIVE TO DO A u|
00001F50: 63 20 43 4F 4D 4D 41 4E  44 0D 63 30 38 37 3A 20  |c COMMAND.c087: |
00001F60: 32 30 20 61 38 20 66 66  20 20 20 20 20 20 20 20  |20 a8 ff        |
00001F70: 20 20 20 6A 73 72 20 20  20 63 69 6F 75 74 20 20  |   jsr   ciout  |
00001F80: 20 20 20 20 3B 57 48 49  43 48 20 49 53 20 54 48  |    ;WHICH IS TH|
00001F90: 45 20 43 4F 4D 4D 41 4E  44 20 46 4F 52 20 54 48  |E COMMAND FOR TH|
00001FA0: 45 20 44 52 49 56 45 0D  63 30 38 61 3A 20 61 39  |E DRIVE.c08a: a9|
00001FB0: 20 34 33 20 20 20 20 20  20 20 20 20 20 20 20 20  | 43             |
00001FC0: 20 6C 64 61 20 20 20 23  27 43 27 20 20 20 20 20  | lda   #'C'     |
00001FD0: 20 20 3B 54 4F 20 4A 55  4D 50 20 54 4F 20 54 48  |  ;TO JUMP TO TH|
00001FE0: 45 20 50 52 4F 47 52 41  4D 20 41 54 20 24 30 35  |E PROGRAM AT $05|
00001FF0: 30 30 2E 0D 63 30 38 63  3A 20 32 30 20 61 38 20  |00..c08c: 20 a8 |
00002000: 66 66 20 20 20 20 20 20  20 20 20 20 20 6A 73 72  |ff           jsr|
00002010: 20 20 20 63 69 6F 75 74  0D 63 30 38 66 3A 20 32  |   ciout.c08f: 2|
00002020: 30 20 61 65 20 66 66 20  20 20 20 20 20 20 20 20  |0 ae ff         |
00002030: 20 20 6A 73 72 20 20 20  75 6E 6C 73 6E 20 20 20  |  jsr   unlsn   |
00002040: 20 20 20 3B 63 4F 4D 4D  41 4E 44 20 44 52 49 56  |   ;cOMMAND DRIV|
00002050: 45 20 54 4F 20 75 6E 6C  69 73 74 65 6E 0D 0D 70  |E TO unlisten..p|
00002060: 52 4F 43 45 53 53 20 54  48 45 20 44 41 54 41 0D  |ROCESS THE DATA.|
00002070: 0D 63 30 39 32 3A 20 37  38 20 20 20 20 20 20 20  |.c092: 78       |
00002080: 20 62 65 67 69 6E 20 20  20 20 73 65 69 20 20 20  | begin    sei   |
00002090: 20 20 20 20 20 20 20 20  20 20 20 3B 64 49 53 41  |           ;dISA|
000020A0: 42 4C 45 20 69 4E 54 45  52 52 55 50 54 53 0D 63  |BLE iNTERRUPTS.c|
000020B0: 30 39 33 3A 20 61 39 20  30 62 20 20 20 20 20 20  |093: a9 0b      |
000020C0: 20 20 20 20 20 20 20 20  6C 64 61 20 20 20 23 24  |        lda   #$|
000020D0: 30 62 20 20 20 20 20 20  20 3B 74 48 49 53 20 42  |0b       ;tHIS B|
000020E0: 4C 41 4E 4B 53 20 54 48  45 20 53 43 52 45 45 4E  |LANKS THE SCREEN|
000020F0: 20 46 4F 52 0D 63 30 39  35 3A 20 38 64 20 31 31  | FOR.c095: 8d 11|
00002100: 20 64 30 20 20 20 20 20  20 20 20 20 20 20 73 74  | d0           st|
00002110: 61 20 20 20 76 69 63 63  74 72 20 20 20 20 20 3B  |a   vicctr     ;|
00002120: 46 41 53 54 45 52 20 50  52 4F 43 45 53 53 49 4E  |FASTER PROCESSIN|
00002130: 47 2E 0D 63 30 39 38 3A  20 32 30 20 31 35 20 63  |G..c098: 20 15 c|
00002140: 31 20 20 70 72 6F 63 65  73 20 20 20 6A 73 72 20  |1  proces   jsr |
00002150: 20 20 67 74 73 65 63 74  20 20 20 20 20 3B 67 45  |  gtsect     ;gE|
00002160: 54 20 41 20 53 45 43 54  4F 52 20 4F 46 20 54 48  |T A SECTOR OF TH|
00002170: 45 20 46 49 4C 45 0D 63  30 39 62 3A 20 32 63 20  |E FILE.c09b: 2c |
00002180: 30 30 20 63 34 20 20 20  20 20 20 20 20 20 20 20  |00 c4           |
00002190: 62 69 74 20 20 20 62 75  66 66 65 72 20 20 20 20  |bit   buffer    |
000021A0: 20 3B 63 48 45 43 4B 20  46 4F 52 20 41 4E 20 45  | ;cHECK FOR AN E|
000021B0: 52 52 4F 52 20 46 4C 41  47 0D 20 20 20 20 20 20  |RROR FLAG.      |
000021C0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000021D0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000021E0: 20 20 20 20 3B 53 45 4E  54 20 42 59 20 54 48 45  |    ;SENT BY THE|
000021F0: 20 44 52 49 56 45 20 54  4F 20 49 4E 46 4F 52 4D  | DRIVE TO INFORM|
00002200: 0D 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00002210: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002220: 20 20 20 20 20 20 20 20  20 20 20 3B 54 48 45 20  |           ;THE |
00002230: 63 36 34 20 54 48 45 52  45 20 57 41 53 20 41 4E  |c64 THERE WAS AN|
00002240: 20 45 52 52 4F 52 2E 0D  63 30 39 65 3A 20 33 30  | ERROR..c09e: 30|
00002250: 20 35 33 20 20 20 20 20  20 20 20 20 20 20 20 20  | 53             |
00002260: 20 62 6D 69 20 20 20 65  72 72 6F 72 31 20 20 20  | bmi   error1   |
00002270: 20 20 3B 65 52 52 4F 52  20 44 45 54 45 43 54 45  |  ;eRROR DETECTE|
00002280: 44 20 53 4F 20 42 52 41  4E 43 48 2E 0D 0D 6F 4E  |D SO BRANCH...oN|
00002290: 20 41 20 62 61 73 69 63  20 6C 6F 61 64 20 43 4F  | A basic load CO|
000022A0: 4D 4D 41 4E 44 2C 20 54  48 45 20 53 54 41 52 54  |MMAND, THE START|
000022B0: 20 4F 46 20 62 61 73 69  63 20 41 44 44 52 45 53  | OF basic ADDRES|
000022C0: 53 20 28 24 30 38 30 31  29 20 49 53 20 53 54 4F  |S ($0801) IS STO|
000022D0: 52 45 44 20 49 4E 0D 24  63 33 2D 24 63 34 20 46  |RED IN.$c3-$c4 F|
000022E0: 4F 52 20 55 53 45 20 42  59 20 54 48 45 20 4B 45  |OR USE BY THE KE|
000022F0: 52 4E 45 4C 20 4C 4F 41  44 20 52 4F 55 54 49 4E  |RNEL LOAD ROUTIN|
00002300: 45 2E 0D 0D 63 30 61 30  3A 20 61 34 20 63 33 20  |E...c0a0: a4 c3 |
00002310: 20 20 20 20 20 20 20 20  20 20 20 20 20 6C 64 79  |             ldy|
00002320: 20 20 20 6D 65 6D 75 73  73 20 20 20 20 20 3B 67  |   memuss     ;g|
00002330: 45 54 20 54 48 45 20 4E  4F 52 4D 41 4C 20 42 41  |ET THE NORMAL BA|
00002340: 53 49 43 20 4C 4F 41 44  20 41 44 44 52 0D 63 30  |SIC LOAD ADDR.c0|
00002350: 61 32 3A 20 61 36 20 63  34 20 20 20 20 20 20 20  |a2: a6 c4       |
00002360: 20 20 20 20 20 20 20 6C  64 78 20 20 20 6D 65 6D  |       ldx   mem|
00002370: 75 73 73 2B 31 20 20 20  3B 46 4F 52 20 41 20 50  |uss+1   ;FOR A P|
00002380: 52 4F 47 52 41 4D 20 4C  4F 41 44 20 28 24 30 38  |ROGRAM LOAD ($08|
00002390: 30 31 29 0D 0D 74 48 49  53 20 43 48 45 43 4B 53  |01)..tHIS CHECKS|
000023A0: 20 57 48 45 54 48 45 52  20 4F 52 20 4E 4F 54 20  | WHETHER OR NOT |
000023B0: 54 48 45 20 50 52 4F 47  52 41 4D 20 53 48 4F 55  |THE PROGRAM SHOU|
000023C0: 4C 44 20 42 45 20 4C 4F  41 44 45 44 20 41 54 20  |LD BE LOADED AT |
000023D0: 54 48 45 20 4E 4F 52 4D  41 4C 20 4C 4F 41 44 0D  |THE NORMAL LOAD.|
000023E0: 41 52 45 41 2C 20 57 48  49 43 48 20 57 4F 55 4C  |AREA, WHICH WOUL|
000023F0: 44 20 42 45 20 45 51 55  49 56 41 4C 45 4E 54 20  |D BE EQUIVALENT |
00002400: 54 4F 20 54 48 45 20 43  4F 4D 4D 41 4E 44 20 6C  |TO THE COMMAND l|
00002410: 6F 61 64 22 66 69 6C 65  6E 61 6D 65 22 2C 38 20  |oad"filename",8 |
00002420: 4F 52 20 54 4F 20 54 48  45 20 4C 4F 41 44 0D 41  |OR TO THE LOAD.A|
00002430: 52 45 41 20 53 50 45 43  49 46 49 45 44 20 49 4E  |REA SPECIFIED IN|
00002440: 20 54 48 45 20 50 52 4F  47 52 41 4D 20 57 48 45  | THE PROGRAM WHE|
00002450: 4E 20 49 54 20 57 41 53  20 53 41 56 45 44 2C 20  |N IT WAS SAVED, |
00002460: 57 48 49 43 48 20 57 4F  55 4C 44 20 42 45 20 45  |WHICH WOULD BE E|
00002470: 51 55 49 56 41 4C 45 4E  54 20 54 4F 0D 54 48 45  |QUIVALENT TO.THE|
00002480: 20 43 4F 4D 4D 41 4E 44  20 6C 6F 61 64 22 66 69  | COMMAND load"fi|
00002490: 6C 65 6E 61 6D 65 22 2C  38 2C 31 2E 0D 0D 63 30  |lename",8,1...c0|
000024A0: 61 34 3A 20 61 35 20 62  39 20 20 20 20 20 20 20  |a4: a5 b9       |
000024B0: 20 20 20 20 20 20 20 6C  64 61 20 20 20 73 61 20  |       lda   sa |
000024C0: 20 20 20 20 20 20 20 20  3B 67 45 54 20 54 48 45  |        ;gET THE|
000024D0: 20 53 45 43 4F 4E 44 41  52 59 20 41 44 44 52 45  | SECONDARY ADDRE|
000024E0: 53 53 0D 63 30 61 36 3A  20 66 30 20 30 36 20 20  |SS.c0a6: f0 06  |
000024F0: 20 20 20 20 20 20 20 20  20 20 20 20 62 65 71 20  |            beq |
00002500: 20 20 70 72 6F 63 73 31  20 20 20 20 20 3B 69 46  |  procs1     ;iF|
00002510: 20 41 20 5A 45 52 4F 2C  20 54 48 45 4E 20 4A 55  | A ZERO, THEN JU|
00002520: 4D 50 20 41 4E 44 20 4C  4F 41 44 0D 20 20 20 20  |MP AND LOAD.    |
00002530: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002540: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002550: 20 20 20 20 20 20 3B 54  4F 20 62 41 53 49 43 20  |      ;TO bASIC |
00002560: 41 52 45 41 2E 0D 63 30  61 38 3A 20 61 63 20 30  |AREA..c0a8: ac 0|
00002570: 32 20 63 34 20 20 20 20  20 20 20 20 20 20 20 6C  |2 c4           l|
00002580: 64 79 20 20 20 62 75 66  66 65 72 2B 32 20 20 20  |dy   buffer+2   |
00002590: 3B 69 46 20 4E 4F 54 2C  20 54 48 45 4E 20 4C 4F  |;iF NOT, THEN LO|
000025A0: 41 44 20 41 54 20 41 44  44 52 45 53 53 0D 20 20  |AD AT ADDRESS.  |
000025B0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000025C0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000025D0: 20 20 20 20 20 20 20 20  3B 53 50 45 43 49 46 49  |        ;SPECIFI|
000025E0: 45 44 20 49 4E 20 54 48  45 20 46 49 52 53 54 20  |ED IN THE FIRST |
000025F0: 53 45 43 54 4F 52 0D 63  30 61 62 3A 20 61 65 20  |SECTOR.c0ab: ae |
00002600: 30 33 20 63 34 20 20 20  20 20 20 20 20 20 20 20  |03 c4           |
00002610: 6C 64 78 20 20 20 62 75  66 66 65 72 2B 33 20 20  |ldx   buffer+3  |
00002620: 20 3B 4F 46 20 54 48 45  20 50 52 4F 47 52 41 4D  | ;OF THE PROGRAM|
00002630: 2E 0D 63 30 61 65 3A 20  38 34 20 61 65 20 20 20  |..c0ae: 84 ae   |
00002640: 20 20 70 72 6F 63 73 31  20 20 20 73 74 79 20 20  |  procs1   sty  |
00002650: 20 65 61 6C 20 20 20 20  20 20 20 20 3B 73 54 4F  | eal        ;sTO|
00002660: 52 45 20 54 48 45 20 50  52 4F 47 52 41 4D 20 4C  |RE THE PROGRAM L|
00002670: 4F 41 44 20 41 44 44 52  45 53 53 0D 63 30 62 30  |OAD ADDRESS.c0b0|
00002680: 3A 20 38 36 20 61 66 20  20 20 20 20 20 20 20 20  |: 86 af         |
00002690: 20 20 20 20 20 73 74 78  20 20 20 65 61 6C 2B 31  |     stx   eal+1|
000026A0: 20 20 20 20 20 20 3B 49  4E 54 4F 20 65 61 6C 2E  |      ;INTO eal.|
000026B0: 0D 63 30 62 32 3A 20 61  32 20 30 34 20 20 20 20  |.c0b2: a2 04    |
000026C0: 20 20 20 20 20 20 20 20  20 20 6C 64 78 20 20 20  |          ldx   |
000026D0: 23 34 20 20 20 20 20 20  20 20 20 3B 73 49 4E 43  |#4         ;sINC|
000026E0: 45 20 54 48 49 53 20 49  53 20 54 48 45 20 46 49  |E THIS IS THE FI|
000026F0: 52 53 54 20 53 45 43 54  4F 52 0D 20 20 20 20 20  |RST SECTOR.     |
00002700: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002710: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002720: 20 20 20 20 20 3B 4F 46  20 54 48 45 20 50 52 4F  |     ;OF THE PRO|
00002730: 47 52 41 4D 2C 20 53 4B  49 50 20 54 48 45 20 74  |GRAM, SKIP THE t|
00002740: 52 41 43 4B 0D 20 20 20  20 20 20 20 20 20 20 20  |RACK.           |
00002750: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002760: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  |               ;|
00002770: 26 20 73 45 43 54 4F 52  20 4C 49 4E 4B 53 2C 20  |& sECTOR LINKS, |
00002780: 41 4E 44 20 54 48 45 20  50 52 4F 47 52 41 4D 0D  |AND THE PROGRAM.|
00002790: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000027A0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000027B0: 20 20 20 20 20 20 20 20  20 20 3B 4C 4F 41 44 20  |          ;LOAD |
000027C0: 41 44 44 52 45 53 53 2E  0D 63 30 62 34 3A 20 61  |ADDRESS..c0b4: a|
000027D0: 64 20 30 30 20 63 34 20  20 20 20 20 20 20 20 20  |d 00 c4         |
000027E0: 20 20 6C 64 61 20 20 20  62 75 66 66 65 72 20 20  |  lda   buffer  |
000027F0: 20 20 20 3B 6D 4F 52 45  20 53 45 43 54 4F 52 53  |   ;mORE SECTORS|
00002800: 20 54 4F 20 4C 4F 41 44  3F 0D 63 30 62 37 3A 20  | TO LOAD?.c0b7: |
00002810: 66 30 20 31 35 20 20 20  20 20 20 20 20 20 20 20  |f0 15           |
00002820: 20 20 20 62 65 71 20 20  20 63 6C 6F 73 65 30 20  |   beq   close0 |
00002830: 20 20 20 20 3B 6E 4F 2D  54 48 45 4E 20 54 52 41  |    ;nO-THEN TRA|
00002840: 4E 53 46 45 52 20 54 48  45 20 31 53 54 20 53 45  |NSFER THE 1ST SE|
00002850: 43 54 4F 52 0D 20 20 20  20 20 20 20 20 20 20 20  |CTOR.           |
00002860: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002870: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  |               ;|
00002880: 49 4E 20 54 48 45 20 62  75 66 66 65 72 20 54 4F  |IN THE buffer TO|
00002890: 20 54 48 45 20 50 52 4F  47 52 41 4D 0D 20 20 20  | THE PROGRAM.   |
000028A0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000028B0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000028C0: 20 20 20 20 20 20 20 3B  53 54 4F 52 41 47 45 20  |       ;STORAGE |
000028D0: 41 52 45 41 20 41 4E 44  20 45 4E 44 2E 0D 63 30  |AREA AND END..c0|
000028E0: 62 39 3A 20 32 30 20 66  64 20 63 30 20 20 20 20  |b9: 20 fd c0    |
000028F0: 20 20 20 20 20 20 20 6A  73 72 20 20 20 78 66 65  |       jsr   xfe|
00002900: 72 31 20 20 20 20 20 20  3B 79 45 53 2D 54 52 41  |r1      ;yES-TRA|
00002910: 4E 53 46 45 52 20 54 48  45 20 31 53 54 20 53 45  |NSFER THE 1ST SE|
00002920: 43 54 4F 52 2C 0D 20 20  20 20 20 20 20 20 20 20  |CTOR,.          |
00002930: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002940: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002950: 3B 41 4E 44 20 47 45 54  20 41 4E 4F 54 48 45 52  |;AND GET ANOTHER|
00002960: 2E 0D 0D 63 30 62 63 3A  20 32 30 20 31 35 20 63  |...c0bc: 20 15 c|
00002970: 31 20 20 70 72 6F 63 73  32 20 20 20 6A 73 72 20  |1  procs2   jsr |
00002980: 20 20 67 74 73 65 63 74  20 20 20 20 20 3B 67 45  |  gtsect     ;gE|
00002990: 54 20 41 4E 4F 54 48 45  52 20 53 45 43 54 4F 52  |T ANOTHER SECTOR|
000029A0: 20 4F 46 20 54 48 45 20  50 52 4F 47 52 41 4D 0D  | OF THE PROGRAM.|
000029B0: 63 30 62 66 3A 20 61 64  20 30 30 20 63 34 20 20  |c0bf: ad 00 c4  |
000029C0: 20 20 20 20 20 20 20 20  20 6C 64 61 20 20 20 62  |         lda   b|
000029D0: 75 66 66 65 72 20 20 20  20 20 3B 77 41 53 20 41  |uffer     ;wAS A|
000029E0: 4E 20 45 52 52 4F 52 20  45 4E 43 4F 55 4E 54 45  |N ERROR ENCOUNTE|
000029F0: 52 45 44 3F 0D 63 30 63  32 3A 20 33 30 20 33 32  |RED?.c0c2: 30 32|
00002A00: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 62 6D  |              bm|
00002A10: 69 20 20 20 65 72 72 6F  72 32 20 20 20 20 20 3B  |i   error2     ;|
00002A20: 79 45 53 2D 54 48 45 4E  20 42 52 41 4E 43 48 0D  |yES-THEN BRANCH.|
00002A30: 63 30 63 34 3A 20 66 30  20 30 36 20 20 20 20 20  |c0c4: f0 06     |
00002A40: 20 20 20 20 20 20 20 20  20 62 65 71 20 20 20 63  |         beq   c|
00002A50: 6C 6F 73 65 20 20 20 20  20 20 3B 77 41 53 20 49  |lose      ;wAS I|
00002A60: 54 20 54 48 45 20 4C 41  53 54 20 53 45 43 54 4F  |T THE LAST SECTO|
00002A70: 52 3F 20 79 45 53 0D 63  30 63 36 3A 20 32 30 20  |R? yES.c0c6: 20 |
00002A80: 66 62 20 63 30 20 20 20  20 20 20 20 20 20 20 20  |fb c0           |
00002A90: 6A 73 72 20 20 20 78 66  65 72 20 20 20 20 20 20  |jsr   xfer      |
00002AA0: 20 3B 6E 4F 2D 54 48 45  4E 20 54 52 41 4E 53 46  | ;nO-THEN TRANSF|
00002AB0: 45 52 20 54 48 45 20 42  55 46 46 45 52 20 54 4F  |ER THE BUFFER TO|
00002AC0: 0D 63 30 63 39 3A 20 34  63 20 62 63 20 63 30 20  |.c0c9: 4c bc c0 |
00002AD0: 20 20 20 20 20 20 20 20  20 20 6A 6D 70 20 20 20  |          jmp   |
00002AE0: 70 72 6F 63 73 32 20 20  20 20 20 3B 50 52 4F 47  |procs2     ;PROG|
00002AF0: 52 41 4D 20 53 54 4F 52  41 47 45 20 26 20 47 45  |RAM STORAGE & GE|
00002B00: 54 20 4D 4F 52 45 20 53  45 43 54 4F 52 53 2E 0D  |T MORE SECTORS..|
00002B10: 0D 63 30 63 63 3A 20 61  32 20 30 32 20 20 20 20  |.c0cc: a2 02    |
00002B20: 20 63 6C 6F 73 65 20 20  20 20 6C 64 78 20 20 20  | close    ldx   |
00002B30: 23 32 20 20 20 20 20 20  20 20 20 3B 73 4B 49 50  |#2         ;sKIP|
00002B40: 20 54 48 45 20 74 52 41  43 4B 20 26 20 53 45 43  | THE tRACK & SEC|
00002B50: 54 4F 52 20 4E 55 4D 42  45 52 20 4F 46 0D 20 20  |TOR NUMBER OF.  |
00002B60: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002B70: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002B80: 20 20 20 20 20 20 20 20  3B 54 48 45 20 4C 41 53  |        ;THE LAS|
00002B90: 54 20 53 45 43 54 4F 52  2E 0D 63 30 63 65 3A 20  |T SECTOR..c0ce: |
00002BA0: 61 30 20 30 30 20 20 20  20 20 63 6C 6F 73 65 30  |a0 00     close0|
00002BB0: 20 20 20 6C 64 79 20 20  20 23 30 0D 63 30 64 30  |   ldy   #0.c0d0|
00002BC0: 3A 20 62 64 20 30 30 20  63 34 20 20 63 6C 6F 73  |: bd 00 c4  clos|
00002BD0: 65 31 20 20 20 6C 64 61  20 20 20 62 75 66 66 65  |e1   lda   buffe|
00002BE0: 72 2C 78 20 20 20 3B 67  45 54 20 41 20 44 41 54  |r,x   ;gET A DAT|
00002BF0: 41 20 42 59 54 45 20 46  52 4F 4D 20 54 48 45 20  |A BYTE FROM THE |
00002C00: 42 55 46 46 45 52 0D 63  30 64 33 3A 20 39 31 20  |BUFFER.c0d3: 91 |
00002C10: 61 65 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |ae              |
00002C20: 73 74 61 20 20 20 28 65  61 6C 29 2C 79 20 20 20  |sta   (eal),y   |
00002C30: 20 3B 50 55 54 20 49 54  20 49 4E 20 54 48 45 20  | ;PUT IT IN THE |
00002C40: 50 52 4F 47 52 41 4D 20  53 54 4F 52 41 47 45 20  |PROGRAM STORAGE |
00002C50: 41 52 45 41 2E 0D 63 30  64 35 3A 20 63 38 20 20  |AREA..c0d5: c8  |
00002C60: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 69  |               i|
00002C70: 6E 79 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |ny              |
00002C80: 3B 69 4E 43 52 45 4D 45  4E 54 20 50 52 4F 47 52  |;iNCREMENT PROGR|
00002C90: 41 4D 20 41 52 45 41 20  50 4F 49 4E 54 45 52 0D  |AM AREA POINTER.|
00002CA0: 63 30 64 36 3A 20 65 38  20 20 20 20 20 20 20 20  |c0d6: e8        |
00002CB0: 20 20 20 20 20 20 20 20  20 69 6E 78 20 20 20 20  |         inx    |
00002CC0: 20 20 20 20 20 20 20 20  20 20 3B 69 4E 43 52 45  |          ;iNCRE|
00002CD0: 4D 45 4E 54 20 42 59 54  45 20 43 4F 55 4E 54 45  |MENT BYTE COUNTE|
00002CE0: 52 20 26 20 62 55 46 46  20 50 4E 54 52 0D 63 30  |R & bUFF PNTR.c0|
00002CF0: 64 37 3A 20 65 63 20 30  31 20 63 34 20 20 20 20  |d7: ec 01 c4    |
00002D00: 20 20 20 20 20 20 20 63  70 78 20 20 20 62 75 66  |       cpx   buf|
00002D10: 66 65 72 2B 31 20 20 20  3B 69 53 20 49 54 20 3C  |fer+1   ;iS IT <|
00002D20: 20 4E 55 4D 42 45 52 20  4F 46 20 42 59 54 45 53  | NUMBER OF BYTES|
00002D30: 20 54 4F 20 52 45 41 44  0D 20 20 20 20 20 20 20  | TO READ.       |
00002D40: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002D50: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002D60: 20 20 20 3B 46 52 4F 4D  20 54 48 49 53 20 53 45  |   ;FROM THIS SE|
00002D70: 43 54 4F 52 2E 20 69 4E  20 54 48 45 20 4C 41 53  |CTOR. iN THE LAS|
00002D80: 54 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |T.              |
00002D90: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002DA0: 20 20 20 20 20 20 20 20  20 20 20 20 3B 53 45 43  |            ;SEC|
00002DB0: 54 4F 52 2C 20 54 48 45  20 53 45 43 4F 4E 44 20  |TOR, THE SECOND |
00002DC0: 42 59 54 45 20 54 45 4C  4C 53 20 59 4F 55 0D 20  |BYTE TELLS YOU. |
00002DD0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002DE0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002DF0: 20 20 20 20 20 20 20 20  20 3B 48 4F 57 20 4D 41  |         ;HOW MA|
00002E00: 4E 59 20 42 59 54 45 53  20 41 52 45 20 49 4E 20  |NY BYTES ARE IN |
00002E10: 54 48 49 53 20 53 45 43  54 4F 52 2E 0D 63 30 64  |THIS SECTOR..c0d|
00002E20: 61 3A 20 39 30 20 66 34  20 20 20 20 20 20 20 20  |a: 90 f4        |
00002E30: 20 20 20 20 20 20 62 63  63 20 20 20 63 6C 6F 73  |      bcc   clos|
00002E40: 65 31 20 20 20 20 20 3B  69 46 20 3C 20 4E 55 4D  |e1     ;iF < NUM|
00002E50: 42 45 52 20 4F 46 20 42  59 54 45 53 2C 20 54 48  |BER OF BYTES, TH|
00002E60: 45 4E 20 47 45 54 20 4D  4F 52 45 0D 63 30 64 63  |EN GET MORE.c0dc|
00002E70: 3A 20 62 64 20 30 30 20  63 34 20 20 20 20 20 20  |: bd 00 c4      |
00002E80: 20 20 20 20 20 6C 64 61  20 20 20 62 75 66 66 65  |     lda   buffe|
00002E90: 72 2C 78 20 20 20 3B 67  45 54 20 54 48 45 20 4C  |r,x   ;gET THE L|
00002EA0: 41 53 54 20 42 59 54 45  0D 63 30 64 66 3A 20 39  |AST BYTE.c0df: 9|
00002EB0: 31 20 61 65 20 20 20 20  20 20 20 20 20 20 20 20  |1 ae            |
00002EC0: 20 20 73 74 61 20 20 20  28 65 61 6C 29 2C 79 20  |  sta   (eal),y |
00002ED0: 20 20 20 3B 61 4E 44 20  50 55 54 20 49 54 20 54  |   ;aND PUT IT T|
00002EE0: 48 45 20 50 52 4F 47 52  41 4D 20 53 54 4F 52 41  |HE PROGRAM STORA|
00002EF0: 47 45 0D 63 30 65 31 3A  20 63 38 20 20 20 20 20  |GE.c0e1: c8     |
00002F00: 20 20 20 20 20 20 20 20  20 20 20 20 69 6E 79 20  |            iny |
00002F10: 20 20 20 20 20 20 20 20  20 20 20 20 20 3B 69 6E  |             ;in|
00002F20: 79 20 53 4F 20 49 54 20  50 4F 49 4E 54 53 20 54  |y SO IT POINTS T|
00002F30: 4F 20 54 48 45 20 4C 41  53 54 20 42 59 54 45 2B  |O THE LAST BYTE+|
00002F40: 31 0D 63 30 65 32 3A 20  32 30 20 30 38 20 63 31  |1.c0e2: 20 08 c1|
00002F50: 20 20 20 20 20 20 20 20  20 20 20 6A 73 72 20 20  |           jsr  |
00002F60: 20 78 66 65 72 33 20 20  20 20 20 20 3B 69 4E 43  | xfer3      ;iNC|
00002F70: 52 45 4D 45 4E 54 20 50  52 4F 47 52 41 4D 20 50  |REMENT PROGRAM P|
00002F80: 4F 49 4E 54 45 52 53 0D  63 30 65 35 20 20 31 38  |OINTERS.c0e5  18|
00002F90: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002FA0: 20 63 6C 63 20 20 20 20  20 20 20 20 20 20 20 20  | clc            |
00002FB0: 20 20 3B 63 4C 45 41 52  20 63 41 52 52 59 20 54  |  ;cLEAR cARRY T|
00002FC0: 4F 20 49 4E 44 49 43 41  54 45 20 4E 4F 20 45 52  |O INDICATE NO ER|
00002FD0: 52 4F 52 0D 20 20 20 20  20 20 20 20 20 20 20 20  |ROR.            |
00002FE0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002FF0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 3B 4F  |              ;O|
00003000: 43 43 55 52 52 45 44 20  57 48 45 4E 20 49 54 20  |CCURRED WHEN IT |
00003010: 52 45 54 55 52 4E 53 20  54 4F 20 54 48 45 0D 20  |RETURNS TO THE. |
00003020: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003030: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003040: 20 20 20 20 20 20 20 20  20 3B 62 41 53 49 43 20  |         ;bASIC |
00003050: 6C 6F 61 64 20 43 4F 4E  54 49 4E 55 41 54 49 4F  |load CONTINUATIO|
00003060: 4E 20 41 54 20 24 65 31  37 38 2E 0D 63 30 65 36  |N AT $e178..c0e6|
00003070: 3A 20 34 38 20 20 20 20  20 20 20 20 63 6C 6F 73  |: 48        clos|
00003080: 65 78 20 20 20 70 68 61  20 20 20 20 20 20 20 20  |ex   pha        |
00003090: 20 20 20 20 20 20 3B 73  41 56 45 20 45 52 52 4F  |      ;sAVE ERRO|
000030A0: 52 20 4E 55 4D 42 45 52  2D 49 46 20 45 52 52 4F  |R NUMBER-IF ERRO|
000030B0: 52 20 4F 43 43 55 52 52  45 44 0D 63 30 65 37 3A  |R OCCURRED.c0e7:|
000030C0: 20 61 39 20 31 62 20 20  20 20 20 20 20 20 20 20  | a9 1b          |
000030D0: 20 20 20 20 6C 64 61 20  20 20 23 24 31 62 20 20  |    lda   #$1b  |
000030E0: 20 20 20 20 20 3B 72 45  53 54 4F 52 45 20 53 43  |     ;rESTORE SC|
000030F0: 52 45 45 4E 20 54 4F 20  4E 4F 52 4D 41 4C 0D 63  |REEN TO NORMAL.c|
00003100: 30 65 39 3A 20 38 64 20  31 31 20 64 30 20 20 20  |0e9: 8d 11 d0   |
00003110: 20 20 20 20 20 20 20 20  73 74 61 20 20 20 76 69  |        sta   vi|
00003120: 63 63 74 72 0D 63 30 65  63 3A 20 36 38 20 20 20  |cctr.c0ec: 68   |
00003130: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 70 6C  |              pl|
00003140: 61 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  |a              ;|
00003150: 72 45 54 52 49 45 56 45  20 45 52 52 4F 52 20 4E  |rETRIEVE ERROR N|
00003160: 55 4D 42 45 52 0D 63 30  65 64 3A 20 61 36 20 61  |UMBER.c0ed: a6 a|
00003170: 65 20 20 20 20 20 20 20  20 20 20 20 20 20 20 6C  |e              l|
00003180: 64 78 20 20 20 65 61 6C  20 20 20 20 20 20 20 20  |dx   eal        |
00003190: 3B 74 48 49 53 20 57 49  4C 4C 20 53 45 54 20 54  |;tHIS WILL SET T|
000031A0: 48 45 20 62 41 53 49 43  20 52 41 4D 20 45 4E 44  |HE bASIC RAM END|
000031B0: 20 41 54 0D 63 30 65 66  3A 20 61 34 20 61 66 20  | AT.c0ef: a4 af |
000031C0: 20 20 20 20 20 20 20 20  20 20 20 20 20 6C 64 79  |             ldy|
000031D0: 20 20 20 65 61 6C 2B 31  20 20 20 20 20 20 3B 24  |   eal+1      ;$|
000031E0: 33 37 2D 33 38 20 46 4F  52 20 54 48 45 20 45 4E  |37-38 FOR THE EN|
000031F0: 44 20 4F 46 20 4F 55 52  20 50 52 4F 47 52 41 4D  |D OF OUR PROGRAM|
00003200: 2E 0D 63 30 66 31 3A 20  35 38 20 20 20 20 20 20  |..c0f1: 58      |
00003210: 20 20 20 20 20 20 20 20  20 20 20 63 6C 69 20 20  |           cli  |
00003220: 20 20 20 20 20 20 20 20  20 20 20 20 3B 65 4E 41  |            ;eNA|
00003230: 42 4C 45 20 49 4E 54 45  52 52 55 50 54 53 0D 63  |BLE INTERRUPTS.c|
00003240: 30 66 32 3A 20 36 30 20  20 20 20 20 20 20 20 20  |0f2: 60         |
00003250: 20 20 20 20 20 20 20 20  72 74 73 20 20 20 20 20  |        rts     |
00003260: 20 20 20 20 20 20 20 20  20 3B 61 4E 44 20 52 45  |         ;aND RE|
00003270: 54 55 52 4E 20 54 4F 20  62 41 53 49 43 20 6C 6F  |TURN TO bASIC lo|
00003280: 61 64 0D 20 20 20 20 20  20 20 20 20 20 20 20 20  |ad.             |
00003290: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000032A0: 20 20 20 20 20 20 20 20  20 20 20 20 20 3B 43 4F  |             ;CO|
000032B0: 4E 54 49 4E 55 41 54 49  4F 4E 20 41 54 20 24 65  |NTINUATION AT $e|
000032C0: 31 37 38 2E 0D 0D 63 30  66 33 3A 20 61 39 20 30  |178...c0f3: a9 0|
000032D0: 34 20 20 20 20 20 65 72  72 6F 72 31 20 20 20 6C  |4     error1   l|
000032E0: 64 61 20 20 20 23 34 20  20 20 20 20 20 20 20 20  |da   #4         |
000032F0: 3B 73 45 54 55 50 20 46  4F 52 20 27 3F 66 49 4C  |;sETUP FOR '?fIL|
00003300: 45 20 6E 4F 54 20 66 4F  55 4E 44 20 65 52 52 4F  |E nOT fOUND eRRO|
00003310: 52 27 0D 63 30 66 35 3A  20 32 63 20 20 20 20 20  |R'.c0f5: 2c     |
00003320: 20 20 20 20 20 20 20 20  20 20 20 20 64 66 62 20  |            dfb |
00003330: 20 20 24 32 63 0D 63 30  66 36 3A 20 61 39 20 30  |  $2c.c0f6: a9 0|
00003340: 30 20 20 20 20 20 65 72  72 6F 72 32 20 20 20 6C  |0     error2   l|
00003350: 64 61 20 20 20 23 30 20  20 20 20 20 20 20 20 20  |da   #0         |
00003360: 3B 73 45 54 55 50 20 46  4F 52 20 27 3F 62 52 45  |;sETUP FOR '?bRE|
00003370: 41 4B 20 65 52 52 4F 52  27 0D 63 30 66 38 3A 20  |AK eRROR'.c0f8: |
00003380: 33 38 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |38              |
00003390: 20 20 20 73 65 63 20 20  20 20 20 20 20 20 20 20  |   sec          |
000033A0: 20 20 20 20 3B 66 4C 41  47 20 46 4F 52 20 45 52  |    ;fLAG FOR ER|
000033B0: 52 4F 52 20 4F 43 43 55  52 52 45 44 0D 63 30 66  |ROR OCCURRED.c0f|
000033C0: 39 3A 20 62 30 20 65 62  20 20 20 20 20 20 20 20  |9: b0 eb        |
000033D0: 20 20 20 20 20 20 62 63  73 20 20 20 63 6C 6F 73  |      bcs   clos|
000033E0: 65 78 20 20 20 20 20 3B  61 4E 44 20 4A 55 4D 50  |ex     ;aND JUMP|
000033F0: 20 54 4F 20 45 4E 44 20  50 52 4F 47 52 41 4D 0D  | TO END PROGRAM.|
00003400: 0D 63 30 66 62 3A 20 61  32 20 30 32 20 20 20 20  |.c0fb: a2 02    |
00003410: 20 78 66 65 72 20 20 20  20 20 6C 64 78 20 20 20  | xfer     ldx   |
00003420: 23 32 20 20 20 20 20 20  20 20 20 3B 73 4B 49 50  |#2         ;sKIP|
00003430: 20 74 52 41 43 4B 20 26  20 73 45 43 54 4F 52 20  | tRACK & sECTOR |
00003440: 4C 49 4E 4B 53 0D 63 30  66 64 3A 20 61 30 20 30  |LINKS.c0fd: a0 0|
00003450: 30 20 20 20 20 20 78 66  65 72 31 20 20 20 20 6C  |0     xfer1    l|
00003460: 64 79 20 20 20 23 30 0D  63 30 66 66 3A 20 62 64  |dy   #0.c0ff: bd|
00003470: 20 30 30 20 63 34 20 20  78 66 65 72 32 20 20 20  | 00 c4  xfer2   |
00003480: 20 6C 64 61 20 20 20 62  75 66 66 65 72 2C 78 20  | lda   buffer,x |
00003490: 20 20 3B 74 52 41 4E 53  46 45 52 20 53 45 43 54  |  ;tRANSFER SECT|
000034A0: 4F 52 20 49 4E 20 42 55  46 46 45 52 20 41 52 45  |OR IN BUFFER ARE|
000034B0: 41 0D 63 31 30 32 3A 20  39 31 20 61 65 20 20 20  |A.c102: 91 ae   |
000034C0: 20 20 20 20 20 20 20 20  20 20 20 73 74 61 20 20  |           sta  |
000034D0: 20 28 65 61 6C 29 2C 79  20 20 20 20 3B 54 4F 20  | (eal),y    ;TO |
000034E0: 50 52 4F 47 52 41 4D 20  53 54 4F 52 41 47 45 20  |PROGRAM STORAGE |
000034F0: 41 52 45 41 2E 0D 63 31  30 34 3A 20 63 38 20 20  |AREA..c104: c8  |
00003500: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 69  |               i|
00003510: 6E 79 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |ny              |
00003520: 3B 69 6E 63 20 50 52 4F  47 52 41 4D 20 41 52 45  |;inc PROGRAM ARE|
00003530: 41 20 50 4F 49 4E 54 45  52 0D 63 31 30 35 3A 20  |A POINTER.c105: |
00003540: 65 38 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e8              |
00003550: 20 20 20 69 6E 78 20 20  20 20 20 20 20 20 20 20  |   inx          |
00003560: 20 20 20 20 3B 69 6E 63  20 73 45 43 54 4F 52 20  |    ;inc sECTOR |
00003570: 42 55 46 46 45 52 20 50  4F 49 4E 54 45 52 0D 63  |BUFFER POINTER.c|
00003580: 31 30 36 3A 20 64 30 20  66 37 20 20 20 20 20 20  |106: d0 f7      |
00003590: 20 20 20 20 20 20 20 20  62 6E 65 20 20 20 78 66  |        bne   xf|
000035A0: 65 72 32 20 20 20 20 20  20 3B 69 46 20 4D 4F 52  |er2      ;iF MOR|
000035B0: 45 20 42 59 54 45 53 20  49 4E 20 54 48 45 20 53  |E BYTES IN THE S|
000035C0: 45 43 54 4F 52 2C 20 54  48 45 4E 0D 20 20 20 20  |ECTOR, THEN.    |
000035D0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000035E0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000035F0: 20 20 20 20 20 20 3B 47  45 54 20 4D 4F 52 45 2E  |      ;GET MORE.|
00003600: 0D 63 31 30 38 3A 20 31  38 20 20 20 20 20 20 20  |.c108: 18       |
00003610: 20 78 66 65 72 33 20 20  20 20 63 6C 63 20 20 20  | xfer3    clc   |
00003620: 20 20 20 20 20 20 20 20  20 20 20 3B 69 46 20 4E  |           ;iF N|
00003630: 4F 54 2C 20 54 48 45 4E  20 49 4E 43 52 45 4D 45  |OT, THEN INCREME|
00003640: 4E 54 20 50 52 4F 47 52  41 4D 0D 63 31 30 39 3A  |NT PROGRAM.c109:|
00003650: 20 39 38 20 20 20 20 20  20 20 20 20 20 20 20 20  | 98             |
00003660: 20 20 20 20 74 79 61 20  20 20 20 20 20 20 20 20  |    tya         |
00003670: 20 20 20 20 20 3B 50 4F  49 4E 54 45 52 20 46 4F  |     ;POINTER FO|
00003680: 52 20 41 4E 4F 54 48 45  52 20 53 45 43 54 4F 52  |R ANOTHER SECTOR|
00003690: 2E 0D 63 31 30 61 3A 20  36 35 20 61 65 20 20 20  |..c10a: 65 ae   |
000036A0: 20 20 20 20 20 20 20 20  20 20 20 61 64 63 20 20  |           adc  |
000036B0: 20 65 61 6C 0D 63 31 30  63 3A 20 38 35 20 61 65  | eal.c10c: 85 ae|
000036C0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 73 74  |              st|
000036D0: 61 20 20 20 65 61 6C 0D  63 31 30 65 3A 20 61 35  |a   eal.c10e: a5|
000036E0: 20 61 66 20 20 20 20 20  20 20 20 20 20 20 20 20  | af             |
000036F0: 20 6C 64 61 20 20 20 65  61 6C 2B 31 0D 63 31 31  | lda   eal+1.c11|
00003700: 30 3A 20 36 39 20 30 30  20 20 20 20 20 20 20 20  |0: 69 00        |
00003710: 20 20 20 20 20 20 61 64  63 20 20 20 23 30 0D 63  |      adc   #0.c|
00003720: 31 31 32 3A 20 38 35 20  61 66 20 20 20 20 20 20  |112: 85 af      |
00003730: 20 20 20 20 20 20 20 20  73 74 61 20 20 20 65 61  |        sta   ea|
00003740: 6C 2B 31 0D 63 31 31 34  3A 20 36 30 20 20 20 20  |l+1.c114: 60    |
00003750: 20 20 20 20 20 20 20 20  20 20 20 20 20 72 74 73  |             rts|
00003760: 0D 0D 67 45 54 20 41 20  73 45 43 54 4F 52 0D 0D  |..gET A sECTOR..|
00003770: 63 31 31 35 3A 20 61 30  20 30 30 20 20 20 20 20  |c115: a0 00     |
00003780: 67 74 73 65 63 74 20 20  20 6C 64 79 20 20 20 23  |gtsect   ldy   #|
00003790: 24 30 30 0D 0D 72 45 43  45 49 56 45 20 41 20 42  |$00..rECEIVE A B|
000037A0: 59 54 45 20 46 52 4F 4D  20 54 48 45 20 44 52 49  |YTE FROM THE DRI|
000037B0: 56 45 0D 0D 77 41 49 54  20 46 4F 52 20 64 61 74  |VE..wAIT FOR dat|
000037C0: 61 20 69 6E 70 75 74 20  4C 49 4E 45 20 54 4F 20  |a input LINE TO |
000037D0: 47 4F 20 4C 4F 57 2E 20  74 48 45 20 7A 61 70 20  |GO LOW. tHE zap |
000037E0: 52 4F 55 54 49 4E 45 20  49 4E 20 54 48 45 20 31  |ROUTINE IN THE 1|
000037F0: 35 34 31 20 43 4F 44 45  20 57 49 4C 4C 0D 53 45  |541 CODE WILL.SE|
00003800: 54 20 54 48 45 20 64 61  74 61 20 6F 75 74 70 75  |T THE data outpu|
00003810: 74 20 42 49 54 20 54 4F  20 41 20 31 2C 20 41 4E  |t BIT TO A 1, AN|
00003820: 44 20 54 48 52 4F 55 47  48 20 54 48 45 20 49 4E  |D THROUGH THE IN|
00003830: 56 45 52 53 49 4F 4E 20  57 49 4C 4C 20 42 45 20  |VERSION WILL BE |
00003840: 44 45 54 45 43 54 45 44  0D 48 45 52 45 20 41 53  |DETECTED.HERE AS|
00003850: 20 41 20 4C 4F 57 2E 0D  0D 63 31 31 37 3A 20 61  | A LOW...c117: a|
00003860: 64 20 30 30 20 64 64 20  20 67 74 73 63 74 31 20  |d 00 dd  gtsct1 |
00003870: 20 20 6C 64 61 20 20 20  70 6F 72 74 61 20 20 20  |  lda   porta   |
00003880: 20 20 20 3B 77 41 49 54  20 46 4F 52 20 42 49 54  |   ;wAIT FOR BIT|
00003890: 20 37 20 4F 46 20 70 72  61 20 54 4F 20 47 4F 20  | 7 OF pra TO GO |
000038A0: 4C 4F 57 0D 63 31 31 61  3A 20 33 30 20 66 62 20  |LOW.c11a: 30 fb |
000038B0: 20 20 20 20 20 20 20 20  20 20 20 20 20 62 6D 69  |             bmi|
000038C0: 20 20 20 67 74 73 63 74  31 20 20 20 20 20 3B 46  |   gtsct1     ;F|
000038D0: 52 4F 4D 20 44 52 49 56  45 20 49 4E 44 49 43 41  |ROM DRIVE INDICA|
000038E0: 54 49 4E 47 20 44 41 54  41 20 49 4E 50 55 54 0D  |TING DATA INPUT.|
000038F0: 0D 70 55 4C 4C 20 63 6C  6F 63 6B 20 6F 75 74 70  |.pULL clock outp|
00003900: 75 74 20 4C 49 4E 45 20  4C 4F 57 2E 20 6E 4F 54  |ut LINE LOW. nOT|
00003910: 49 43 45 20 54 48 41 54  20 42 49 54 20 34 20 4F  |ICE THAT BIT 4 O|
00003920: 46 20 54 48 45 20 46 4F  4C 4C 4F 57 49 4E 47 20  |F THE FOLLOWING |
00003930: 42 59 54 45 20 49 53 20  48 49 47 48 2C 0D 42 55  |BYTE IS HIGH,.BU|
00003940: 54 20 57 49 54 48 20 54  48 45 20 49 4E 56 45 52  |T WITH THE INVER|
00003950: 53 49 4F 4E 20 50 55 4C  4C 53 20 54 48 45 20 4C  |SION PULLS THE L|
00003960: 49 4E 45 20 4C 4F 57 2E  20 74 48 45 20 7A 61 70  |INE LOW. tHE zap|
00003970: 30 31 20 52 4F 55 54 49  4E 45 20 49 4E 20 54 48  |01 ROUTINE IN TH|
00003980: 45 20 31 35 34 31 20 49  53 0D 57 41 49 54 49 4E  |E 1541 IS.WAITIN|
00003990: 47 20 46 4F 52 20 54 48  45 20 63 6C 6F 63 6B 20  |G FOR THE clock |
000039A0: 4C 49 4E 45 20 54 4F 20  47 4F 20 4C 4F 57 2E 0D  |LINE TO GO LOW..|
000039B0: 0D 63 31 31 63 3A 20 61  39 20 31 37 20 20 20 20  |.c11c: a9 17    |
000039C0: 20 72 65 63 76 30 32 20  20 20 6C 64 61 20 20 20  | recv02   lda   |
000039D0: 23 25 30 30 30 31 30 31  31 31 0D 63 31 31 65 3A  |#%00010111.c11e:|
000039E0: 20 38 64 20 30 30 20 64  64 20 20 20 20 20 20 20  | 8d 00 dd       |
000039F0: 20 20 20 20 73 74 61 20  20 20 70 6F 72 74 61 0D  |    sta   porta.|
00003A00: 0D 77 41 49 54 20 46 4F  52 20 54 48 45 20 64 61  |.wAIT FOR THE da|
00003A10: 74 61 20 69 6E 70 75 74  20 4C 49 4E 45 20 54 4F  |ta input LINE TO|
00003A20: 20 47 4F 20 48 49 47 48  2E 20 74 48 45 20 43 4F  | GO HIGH. tHE CO|
00003A30: 44 45 20 49 4E 20 54 48  45 20 31 35 34 31 20 41  |DE IN THE 1541 A|
00003A40: 54 20 54 48 45 20 32 4E  44 20 50 41 52 54 0D 4F  |T THE 2ND PART.O|
00003A50: 46 20 7A 61 70 30 31 20  53 54 4F 52 45 53 20 30  |F zap01 STORES 0|
00003A60: 20 49 4E 20 70 62 2C 20  41 4E 44 20 54 48 52 4F  | IN pb, AND THRO|
00003A70: 55 47 48 20 54 48 45 20  49 4E 56 45 52 53 49 4F  |UGH THE INVERSIO|
00003A80: 4E 20 43 41 55 53 45 53  20 42 4F 54 48 20 54 48  |N CAUSES BOTH TH|
00003A90: 45 20 64 61 74 61 20 41  4E 44 0D 63 6C 6F 63 6B  |E data AND.clock|
00003AA0: 20 69 6E 70 75 74 20 4C  49 4E 45 53 20 4F 46 20  | input LINES OF |
00003AB0: 54 48 45 20 63 36 34 20  54 4F 20 47 4F 20 48 49  |THE c64 TO GO HI|
00003AC0: 47 48 2E 0D 0D 63 31 32  31 3A 20 61 64 20 30 30  |GH...c121: ad 00|
00003AD0: 20 64 64 20 20 72 65 63  76 30 31 20 20 20 6C 64  | dd  recv01   ld|
00003AE0: 61 20 20 20 70 6F 72 74  61 20 20 20 20 20 20 3B  |a   porta      ;|
00003AF0: 77 41 49 54 20 46 4F 52  20 64 41 54 41 20 48 49  |wAIT FOR dATA HI|
00003B00: 47 48 0D 63 31 32 34 3A  20 31 30 20 66 62 20 20  |GH.c124: 10 fb  |
00003B10: 20 20 20 20 20 20 20 20  20 20 20 20 62 70 6C 20  |            bpl |
00003B20: 20 20 72 65 63 76 30 31  0D 0D 74 48 45 20 46 4F  |  recv01..tHE FO|
00003B30: 4C 4C 4F 57 49 4E 47 20  43 4F 44 45 20 53 45 54  |LLOWING CODE SET|
00003B40: 53 20 54 48 45 20 64 61  74 61 20 41 4E 44 20 63  |S THE data AND c|
00003B50: 6C 6F 63 6B 20 4C 49 4E  45 53 20 48 49 47 48 2C  |lock LINES HIGH,|
00003B60: 20 53 4F 20 54 48 41 54  20 54 48 45 59 20 41 52  | SO THAT THEY AR|
00003B70: 45 20 50 52 45 53 45 54  0D 42 45 46 4F 52 45 20  |E PRESET.BEFORE |
00003B80: 54 48 45 20 41 43 54 55  41 4C 20 44 41 54 41 20  |THE ACTUAL DATA |
00003B90: 54 52 41 4E 53 46 45 52  2C 20 41 4E 44 20 54 4F  |TRANSFER, AND TO|
00003BA0: 20 41 44 44 20 41 42 4F  55 54 20 41 20 36 55 53  | ADD ABOUT A 6US|
00003BB0: 20 44 45 4C 41 59 2E 0D  0D 63 31 32 36 3A 20 61  | DELAY...c126: a|
00003BC0: 39 20 30 37 20 20 20 20  20 20 20 20 20 20 20 20  |9 07            |
00003BD0: 20 20 6C 64 61 20 20 20  23 24 30 37 0D 63 31 32  |  lda   #$07.c12|
00003BE0: 38 3A 20 38 64 20 30 30  20 64 64 20 20 20 20 20  |8: 8d 00 dd     |
00003BF0: 20 20 20 20 20 20 73 74  61 20 20 20 70 6F 72 74  |      sta   port|
00003C00: 61 0D 0D 6F 4B 2C 20 4E  4F 57 20 57 45 20 47 45  |a..oK, NOW WE GE|
00003C10: 54 20 49 4E 54 4F 20 53  4F 4D 45 20 48 45 41 56  |T INTO SOME HEAV|
00003C20: 59 20 53 54 55 46 46 20  41 47 41 49 4E 2E 20 69  |Y STUFF AGAIN. i|
00003C30: 4E 20 41 20 4E 4F 52 4D  41 4C 20 63 36 34 20 53  |N A NORMAL c64 S|
00003C40: 45 52 49 41 4C 20 54 52  41 4E 53 46 45 52 2C 0D  |ERIAL TRANSFER,.|
00003C50: 54 48 45 20 43 4C 4F 43  4B 20 4C 49 4E 45 20 49  |THE CLOCK LINE I|
00003C60: 53 20 55 53 45 44 20 54  4F 20 54 45 4C 4C 20 54  |S USED TO TELL T|
00003C70: 48 45 20 6C 69 73 74 65  6E 65 72 20 28 63 36 34  |HE listener (c64|
00003C80: 29 20 54 48 41 54 20 41  20 42 49 54 20 49 53 20  |) THAT A BIT IS |
00003C90: 52 45 41 44 59 20 54 4F  20 42 45 0D 53 45 4E 54  |READY TO BE.SENT|
00003CA0: 2C 20 41 4E 44 20 41 46  54 45 52 20 54 48 45 20  |, AND AFTER THE |
00003CB0: 42 49 54 20 48 41 53 20  42 45 45 4E 20 53 45 4E  |BIT HAS BEEN SEN|
00003CC0: 54 2C 20 54 45 4C 4C 53  20 54 48 45 20 63 36 34  |T, TELLS THE c64|
00003CD0: 20 54 4F 20 47 45 54 20  52 45 41 44 59 20 46 4F  | TO GET READY FO|
00003CE0: 52 20 41 4E 4F 54 48 45  52 0D 42 49 54 2E 20 69  |R ANOTHER.BIT. i|
00003CF0: 20 57 4F 4E 27 54 20 47  4F 20 49 4E 54 4F 20 45  | WON'T GO INTO E|
00003D00: 58 41 43 54 20 44 45 54  41 49 4C 53 20 4F 4E 20  |XACT DETAILS ON |
00003D10: 53 45 52 49 41 4C 20 69  2F 6F 20 54 52 41 4E 53  |SERIAL i/o TRANS|
00003D20: 46 45 52 53 20 42 45 43  41 55 53 45 20 54 48 41  |FERS BECAUSE THA|
00003D30: 54 20 43 4F 55 4C 44 0D  54 41 4B 45 20 55 50 20  |T COULD.TAKE UP |
00003D40: 41 4C 4D 4F 53 54 20 41  20 46 55 4C 4C 20 42 4F  |ALMOST A FULL BO|
00003D50: 4F 4B 20 42 59 20 49 54  53 45 4C 46 2E 20 62 55  |OK BY ITSELF. bU|
00003D60: 54 20 49 46 20 59 4F 55  20 49 4E 54 45 52 45 53  |T IF YOU INTERES|
00003D70: 54 45 44 20 49 4E 20 4C  45 41 52 4E 49 4E 47 20  |TED IN LEARNING |
00003D80: 4D 4F 52 45 0D 41 42 4F  55 54 20 73 45 52 49 41  |MORE.ABOUT sERIA|
00003D90: 4C 20 69 2F 6F 2C 20 69  20 48 49 47 48 4C 59 20  |L i/o, i HIGHLY |
00003DA0: 52 45 43 4F 4D 4D 45 4E  44 20 52 45 41 44 49 4E  |RECOMMEND READIN|
00003DB0: 47 20 41 4E 20 41 52 54  49 43 4C 45 20 42 59 20  |G AN ARTICLE BY |
00003DC0: 54 48 45 20 67 55 52 55  20 48 49 4D 53 45 4C 46  |THE gURU HIMSELF|
00003DD0: 2C 0D 6A 49 4D 20 62 55  54 54 45 52 46 49 45 4C  |,.jIM bUTTERFIEL|
00003DE0: 44 2E 20 74 48 45 20 4E  41 4D 45 20 4F 46 20 54  |D. tHE NAME OF T|
00003DF0: 48 45 20 41 52 54 49 43  4C 45 20 49 53 20 22 68  |HE ARTICLE IS "h|
00003E00: 4F 57 20 54 48 45 20 76  69 63 2F 36 34 20 73 45  |OW THE vic/64 sE|
00003E10: 52 49 41 4C 20 62 55 53  20 77 4F 52 4B 53 22 2C  |RIAL bUS wORKS",|
00003E20: 0D 41 4E 44 20 41 50 50  45 41 52 45 44 20 49 4E  |.AND APPEARED IN|
00003E30: 20 54 48 45 20 6A 55 4C  59 20 31 39 38 33 20 49  | THE jULY 1983 I|
00003E40: 53 53 55 45 20 4F 46 20  63 4F 4D 50 55 54 45 21  |SSUE OF cOMPUTE!|
00003E50: 20 4D 41 47 41 5A 49 4E  45 2E 20 73 4F 20 48 4F  | MAGAZINE. sO HO|
00003E60: 57 20 44 4F 20 57 45 20  4B 45 45 50 0D 54 48 45  |W DO WE KEEP.THE|
00003E70: 20 44 52 49 56 45 20 41  4E 44 20 43 4F 4D 50 55  | DRIVE AND COMPU|
00003E80: 54 45 52 20 53 59 4E 43  52 4F 4E 49 5A 45 44 20  |TER SYNCRONIZED |
00003E90: 53 4F 20 54 48 45 20 63  36 34 20 49 53 20 52 45  |SO THE c64 IS RE|
00003EA0: 41 44 59 20 54 4F 20 52  45 43 45 49 56 45 20 41  |ADY TO RECEIVE A|
00003EB0: 20 42 59 54 45 20 41 54  0D 54 48 45 20 54 49 4D  | BYTE AT.THE TIM|
00003EC0: 45 20 54 48 45 20 31 35  34 31 20 49 53 20 53 45  |E THE 1541 IS SE|
00003ED0: 4E 44 49 4E 47 20 49 54  3F 20 62 59 20 56 45 52  |NDING IT? bY VER|
00003EE0: 59 20 43 4C 4F 53 45 20  54 49 4D 49 4E 47 2C 20  |Y CLOSE TIMING, |
00003EF0: 54 48 41 54 53 20 48 4F  57 21 20 74 48 45 20 44  |THATS HOW! tHE D|
00003F00: 52 49 56 45 0D 53 45 4E  44 53 20 49 54 53 20 32  |RIVE.SENDS ITS 2|
00003F10: 20 42 49 54 53 20 41 50  50 52 4F 58 49 4D 41 54  | BITS APPROXIMAT|
00003F20: 45 4C 59 20 45 56 45 52  59 20 33 30 55 53 2C 20  |ELY EVERY 30US, |
00003F30: 57 48 49 4C 45 20 54 48  45 20 63 36 34 20 52 45  |WHILE THE c64 RE|
00003F40: 43 45 49 56 45 53 20 41  4E 44 20 50 52 4F 43 45  |CEIVES AND PROCE|
00003F50: 53 53 45 53 0D 54 48 45  20 32 20 42 49 54 53 20  |SSES.THE 2 BITS |
00003F60: 45 56 45 52 59 20 33 30  55 53 2E 20 73 4F 20 41  |EVERY 30US. sO A|
00003F70: 53 20 44 52 49 56 45 20  53 45 4E 44 53 20 54 48  |S DRIVE SENDS TH|
00003F80: 45 20 42 49 54 53 2C 20  54 48 45 20 63 36 34 20  |E BITS, THE c64 |
00003F90: 49 53 20 52 45 41 44 59  20 54 4F 20 47 45 54 0D  |IS READY TO GET.|
00003FA0: 54 48 45 4D 2E 20 73 49  4E 43 45 20 59 4F 55 20  |THEM. sINCE YOU |
00003FB0: 57 41 4E 54 20 54 4F 20  4D 41 4B 45 20 53 55 52  |WANT TO MAKE SUR|
00003FC0: 45 20 54 48 41 54 20 54  48 45 20 31 35 34 31 20  |E THAT THE 1541 |
00003FD0: 48 41 53 20 54 49 4D 45  20 54 4F 20 53 45 54 20  |HAS TIME TO SET |
00003FE0: 54 48 45 20 63 6C 6F 63  6B 20 41 4E 44 0D 64 61  |THE clock AND.da|
00003FF0: 74 61 20 4C 49 4E 45 53  20 50 52 4F 50 45 52 4C  |ta LINES PROPERL|
00004000: 59 20 42 45 46 4F 52 45  20 54 48 45 20 63 36 34  |Y BEFORE THE c64|
00004010: 20 54 52 59 53 20 54 4F  20 52 45 41 44 20 49 54  | TRYS TO READ IT|
00004020: 2C 20 57 45 20 48 41 56  45 20 54 4F 20 47 49 56  |, WE HAVE TO GIV|
00004030: 45 20 54 48 45 20 63 36  34 20 41 0D 53 4C 49 47  |E THE c64 A.SLIG|
00004040: 48 54 20 44 45 4C 41 59  2E 20 73 49 4E 43 45 20  |HT DELAY. sINCE |
00004050: 49 54 20 54 41 4B 45 53  20 54 48 45 20 31 35 34  |IT TAKES THE 154|
00004060: 31 20 41 42 4F 55 54 20  32 36 20 55 53 20 42 45  |1 ABOUT 26 US BE|
00004070: 46 4F 52 45 20 49 54 53  20 31 53 54 20 32 20 42  |FORE ITS 1ST 2 B|
00004080: 49 54 53 20 41 52 45 0D  53 45 4E 54 2C 20 41 4E  |ITS ARE.SENT, AN|
00004090: 44 20 49 46 20 57 45 20  44 49 44 4E 27 54 20 48  |D IF WE DIDN'T H|
000040A0: 41 56 45 20 4F 55 52 20  36 55 53 20 50 52 45 53  |AVE OUR 6US PRES|
000040B0: 45 54 20 44 45 4C 41 59  20 41 42 4F 56 45 20 41  |ET DELAY ABOVE A|
000040C0: 4E 44 20 54 48 45 20 32  39 55 53 20 44 45 4C 41  |ND THE 29US DELA|
000040D0: 59 20 4C 4F 4F 50 0D 42  45 4C 4F 57 2C 20 54 48  |Y LOOP.BELOW, TH|
000040E0: 45 20 63 36 34 20 57 4F  55 4C 44 20 54 52 59 20  |E c64 WOULD TRY |
000040F0: 54 4F 20 52 45 41 44 20  54 48 45 20 50 4F 52 54  |TO READ THE PORT|
00004100: 20 57 49 54 48 49 4E 20  36 55 53 2C 20 53 4F 20  | WITHIN 6US, SO |
00004110: 49 54 20 57 4F 55 4C 44  20 47 45 54 20 49 4E 56  |IT WOULD GET INV|
00004120: 41 4C 49 44 0D 44 41 54  41 2E 20 73 4F 20 57 45  |ALID.DATA. sO WE|
00004130: 20 47 49 56 45 20 49 54  20 41 20 4C 49 54 54 4C  | GIVE IT A LITTL|
00004140: 45 20 54 49 4D 45 20 42  45 46 4F 52 45 20 57 45  |E TIME BEFORE WE|
00004150: 20 52 45 41 44 20 54 48  45 20 50 4F 52 54 2C 20  | READ THE PORT, |
00004160: 55 53 49 4E 47 20 4F 55  52 20 50 52 45 53 45 54  |USING OUR PRESET|
00004170: 0D 44 45 4C 41 59 2C 20  54 48 45 20 44 45 4C 41  |.DELAY, THE DELA|
00004180: 59 20 4C 4F 4F 50 20 42  45 4C 4F 57 2C 20 41 4E  |Y LOOP BELOW, AN|
00004190: 44 20 54 48 45 20 43 59  43 4C 45 20 44 45 4C 41  |D THE CYCLE DELA|
000041A0: 59 20 46 4F 52 20 54 48  45 20 6C 64 78 20 23 34  |Y FOR THE ldx #4|
000041B0: 20 41 4E 44 20 6C 64 61  20 70 6F 72 74 61 2C 0D  | AND lda porta,.|
000041C0: 54 4F 20 43 4F 4D 45 20  55 50 20 57 49 54 48 20  |TO COME UP WITH |
000041D0: 41 50 50 52 4F 58 49 4D  41 54 45 4C 59 20 41 20  |APPROXIMATELY A |
000041E0: 34 31 55 53 20 44 45 4C  41 59 20 42 45 46 4F 52  |41US DELAY BEFOR|
000041F0: 45 20 54 48 45 20 61 20  52 45 47 49 53 54 45 52  |E THE a REGISTER|
00004200: 20 43 4F 4E 54 41 49 4E  53 20 4F 55 52 0D 31 53  | CONTAINS OUR.1S|
00004210: 54 20 32 20 42 49 54 53  2E 20 61 46 54 45 52 20  |T 2 BITS. aFTER |
00004220: 54 48 45 20 31 53 54 20  70 41 53 53 2C 20 54 48  |THE 1ST pASS, TH|
00004230: 45 20 31 35 34 31 20 57  52 49 54 45 20 41 4E 44  |E 1541 WRITE AND|
00004240: 20 54 48 45 20 63 36 34  20 52 45 41 44 20 52 4F  | THE c64 READ RO|
00004250: 55 54 49 4E 45 20 54 41  4B 45 53 0D 41 42 4F 55  |UTINE TAKES.ABOU|
00004260: 54 20 33 30 55 53 20 45  41 43 48 20 53 4F 20 54  |T 30US EACH SO T|
00004270: 48 45 20 63 36 34 20 57  49 4C 4C 20 43 4F 4E 54  |HE c64 WILL CONT|
00004280: 49 4E 55 45 20 54 4F 20  54 52 59 20 41 4E 44 20  |INUE TO TRY AND |
00004290: 52 45 41 44 20 54 48 45  20 50 4F 52 54 20 41 42  |READ THE PORT AB|
000042A0: 4F 55 54 20 31 35 55 53  0D 41 46 54 45 52 20 54  |OUT 15US.AFTER T|
000042B0: 48 45 20 31 35 34 31 20  48 41 53 20 57 52 49 54  |HE 1541 HAS WRIT|
000042C0: 54 45 4E 20 54 48 45 20  32 20 42 49 54 53 20 54  |TEN THE 2 BITS T|
000042D0: 4F 20 54 48 45 20 50 4F  52 54 2E 20 74 4F 20 54  |O THE PORT. tO T|
000042E0: 52 59 20 41 4E 44 20 4D  41 4B 45 20 49 54 20 41  |RY AND MAKE IT A|
000042F0: 20 4C 49 54 54 4C 45 0D  45 41 53 49 45 52 2C 20  | LITTLE.EASIER, |
00004300: 42 45 4C 4F 57 20 49 53  20 41 20 47 52 41 50 48  |BELOW IS A GRAPH|
00004310: 20 53 48 4F 57 49 4E 47  20 54 48 45 20 31 53 54  | SHOWING THE 1ST|
00004320: 20 32 20 50 41 53 53 45  53 2E 0D 0D 63 31 32 62  | 2 PASSES...c12b|
00004330: 3A 20 61 32 20 30 34 20  20 20 20 20 20 20 20 20  |: a2 04         |
00004340: 20 20 20 20 20 6C 64 78  20 20 20 23 24 30 34 20  |     ldx   #$04 |
00004350: 20 20 20 20 20 20 3B 32  39 55 53 20 44 45 4C 41  |      ;29US DELA|
00004360: 59 20 4C 4F 4F 50 0D 63  31 32 64 3A 20 63 61 20  |Y LOOP.c12d: ca |
00004370: 20 20 20 20 20 20 20 72  65 63 76 30 33 20 20 20  |       recv03   |
00004380: 64 65 78 0D 63 31 32 65  3A 20 65 61 20 20 20 20  |dex.c12e: ea    |
00004390: 20 20 20 20 20 20 20 20  20 20 20 20 20 6E 6F 70  |             nop|
000043A0: 0D 63 31 32 66 3A 20 64  30 20 66 63 20 20 20 20  |.c12f: d0 fc    |
000043B0: 20 20 20 20 20 20 20 20  20 20 62 6E 65 20 20 20  |          bne   |
000043C0: 72 65 63 76 30 33 0D 0D  74 48 49 53 20 49 53 20  |recv03..tHIS IS |
000043D0: 48 4F 57 20 49 54 20 57  4F 52 4B 53 20 46 4F 4C  |HOW IT WORKS FOL|
000043E0: 4B 53 21 21 0D 0D 2F 2E  2E 2E 2E 2E 2E 2E 2E 2E  |KS!!../.........|
000043F0: 2E 2E 32 36 75 73 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  |..26us..........|
00004400: 2F 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 33 30  |/.............30|
00004410: 75 73 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2F  |us............./|
00004420: 2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  |................|
00004430: 0D 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00004440: 20 20 20 20 20 20 20 31  35 34 31 20 77 52 49 54  |       1541 wRIT|
00004450: 45 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |E               |
00004460: 20 20 20 20 20 20 31 35  34 31 20 77 52 49 54 45  |      1541 wRITE|
00004470: 0D 2F 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  |./..............|
00004480: 2E 2E 2E 2E 2E 34 31 75  73 2E 2E 2E 2E 2E 2E 2E  |.....41us.......|
00004490: 2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2F 2E 2E 2E 2E  |.........../....|
000044A0: 2E 2E 2E 2E 2E 2E 2E 2E  2E 33 30 75 73 2E 2E 2E  |.........30us...|
000044B0: 2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2F 0D 20 20 20 20  |........../.    |
000044C0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000044D0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000044E0: 20 20 20 63 36 34 20 72  45 41 44 20 20 20 20 20  |   c64 rEAD     |
000044F0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004500: 20 20 63 36 34 20 72 45  41 44 0D 0D 63 31 33 31  |  c64 rEAD..c131|
00004510: 3A 20 61 32 20 30 34 20  20 20 20 20 20 20 20 20  |: a2 04         |
00004520: 20 20 20 20 20 6C 64 78  20 20 20 23 34 0D 63 31  |     ldx   #4.c1|
00004530: 33 33 3A 20 61 64 20 30  30 20 64 64 20 20 72 65  |33: ad 00 dd  re|
00004540: 63 76 30 34 20 20 20 6C  64 61 20 20 20 70 6F 72  |cv04   lda   por|
00004550: 74 61 20 20 20 20 20 20  3B 64 4F 20 54 48 45 20  |ta      ;dO THE |
00004560: 4D 41 54 48 20 41 4E 44  20 4B 45 45 50 20 54 48  |MATH AND KEEP TH|
00004570: 45 0D 63 31 33 36 3A 20  30 61 20 20 20 20 20 20  |E.c136: 0a      |
00004580: 20 20 20 20 20 20 20 20  20 20 20 61 73 6C 20 20  |           asl  |
00004590: 20 61 20 20 20 20 20 20  20 20 20 20 3B 54 49 4D  | a          ;TIM|
000045A0: 49 4E 47 20 52 49 47 48  54 21 0D 63 31 33 37 3A  |ING RIGHT!.c137:|
000045B0: 20 30 38 20 20 20 20 20  20 20 20 20 20 20 20 20  | 08             |
000045C0: 20 20 20 20 70 68 70 0D  63 31 33 38 3A 20 30 61  |    php.c138: 0a|
000045D0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000045E0: 20 61 73 6C 20 20 20 61  0D 63 31 33 39 3A 20 32  | asl   a.c139: 2|
000045F0: 36 20 39 35 20 20 20 20  20 20 20 20 20 20 20 20  |6 95            |
00004600: 20 20 72 6F 6C 20 20 20  62 73 6F 75 72 0D 63 31  |  rol   bsour.c1|
00004610: 33 62 3A 20 32 38 20 20  20 20 20 20 20 20 20 20  |3b: 28          |
00004620: 20 20 20 20 20 20 20 70  6C 70 0D 63 31 33 63 3A  |       plp.c13c:|
00004630: 20 32 36 20 39 35 20 20  20 20 20 20 20 20 20 20  | 26 95          |
00004640: 20 20 20 20 72 6F 6C 20  20 20 62 73 6F 75 72 0D  |    rol   bsour.|
00004650: 63 31 33 65 3A 20 63 61  20 20 20 20 20 20 20 20  |c13e: ca        |
00004660: 20 20 20 20 20 20 20 20  20 64 65 78 0D 63 31 33  |         dex.c13|
00004670: 66 3A 20 64 30 20 66 32  20 20 20 20 20 20 20 20  |f: d0 f2        |
00004680: 20 20 20 20 20 20 62 6E  65 20 20 20 72 65 63 76  |      bne   recv|
00004690: 30 34 20 20 20 20 20 3B  61 4C 4C 20 34 20 58 20  |04     ;aLL 4 X |
000046A0: 32 20 42 49 54 53 20 53  45 4E 54 3F 2D 6E 4F 0D  |2 BITS SENT?-nO.|
000046B0: 63 31 34 31 3A 20 61 35  20 39 35 20 20 20 20 20  |c141: a5 95     |
000046C0: 20 20 20 20 20 20 20 20  20 6C 64 61 20 20 20 62  |         lda   b|
000046D0: 73 6F 75 72 20 20 20 20  20 20 3B 79 45 53 2D 54  |sour      ;yES-T|
000046E0: 48 45 4E 20 57 45 20 4E  45 45 44 20 54 4F 20 43  |HEN WE NEED TO C|
000046F0: 4F 4D 50 4C 45 4D 45 4E  54 0D 63 31 34 33 3A 20  |OMPLEMENT.c143: |
00004700: 34 39 20 66 66 20 20 20  20 20 20 20 20 20 20 20  |49 ff           |
00004710: 20 20 20 65 6F 72 20 20  20 23 24 66 66 20 20 20  |   eor   #$ff   |
00004720: 20 20 20 20 3B 4F 55 52  20 52 45 43 45 49 56 45  |    ;OUR RECEIVE|
00004730: 44 20 42 59 54 45 2E 0D  63 31 34 35 3A 20 39 39  |D BYTE..c145: 99|
00004740: 20 30 30 20 63 34 20 20  20 20 20 20 20 20 20 20  | 00 c4          |
00004750: 20 73 74 61 20 20 20 62  75 66 66 65 72 2C 79 20  | sta   buffer,y |
00004760: 20 20 3B 61 4E 44 20 53  54 4F 52 45 20 49 54 20  |  ;aND STORE IT |
00004770: 49 4E 20 54 48 45 20 42  55 46 46 45 52 2E 0D 63  |IN THE BUFFER..c|
00004780: 31 34 38 3A 20 63 38 20  20 20 20 20 20 20 20 20  |148: c8         |
00004790: 20 20 20 20 20 20 20 20  69 6E 79 0D 63 31 34 39  |        iny.c149|
000047A0: 3A 20 64 30 20 63 63 20  20 20 20 20 20 20 20 20  |: d0 cc         |
000047B0: 20 20 20 20 20 62 6E 65  20 20 20 67 74 73 63 74  |     bne   gtsct|
000047C0: 31 20 20 20 20 20 3B 63  4F 4D 50 4C 45 54 45 20  |1     ;cOMPLETE |
000047D0: 53 45 43 54 4F 52 20 52  45 43 45 49 56 45 44 3F  |SECTOR RECEIVED?|
000047E0: 2D 6E 4F 0D 63 31 34 62  3A 20 36 30 20 20 20 20  |-nO.c14b: 60    |
000047F0: 20 20 20 20 20 20 20 20  20 20 20 20 20 72 74 73  |             rts|
00004800: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 3B 79  |              ;y|
00004810: 45 53 2D 54 48 45 4E 20  52 45 54 55 52 4E 0D 0D  |ES-THEN RETURN..|
00004820: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00004830: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00004840: 0D 2A 64 4F 57 4E 4C 4F  41 44 20 43 4F 44 45 20  |.*dOWNLOAD CODE |
00004850: 54 4F 20 31 35 34 31 20  44 52 49 56 45 20 20 20  |TO 1541 DRIVE   |
00004860: 2A 0D 2A 20 20 20 20 20  20 20 20 20 20 20 20 20  |*.*             |
00004870: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004880: 20 2A 0D 2A 73 45 54 20  55 50 2C 20 43 48 41 4E  | *.*sET UP, CHAN|
00004890: 47 45 20 46 4F 52 20 59  4F 55 52 20 4F 57 4E 20  |GE FOR YOUR OWN |
000048A0: 20 20 2A 0D 2A 41 50 50  4C 49 43 41 54 49 4F 4E  |  *.*APPLICATION|
000048B0: 2E 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000048C0: 20 20 20 2A 0D 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |   *.***********|
000048D0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000048E0: 2A 2A 2A 2A 2A 0D 0D 63  31 34 63 3A 20 61 39 20  |*****..c14c: a9 |
000048F0: 31 30 20 20 20 20 20 64  6F 77 6E 6C 20 20 20 20  |10     downl    |
00004900: 6C 64 61 20 20 20 23 31  36 20 20 20 20 20 20 20  |lda   #16       |
00004910: 20 3B 6E 55 4D 42 45 52  20 4F 46 20 33 32 20 42  | ;nUMBER OF 32 B|
00004920: 59 54 45 20 50 41 47 45  53 20 54 4F 20 4D 4F 56  |YTE PAGES TO MOV|
00004930: 45 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |E.              |
00004940: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004950: 20 20 20 20 20 20 20 20  20 20 20 20 3B 54 4F 20  |            ;TO |
00004960: 54 48 45 20 31 35 34 31  20 28 31 36 20 2A 20 33  |THE 1541 (16 * 3|
00004970: 32 20 3D 20 35 31 32 20  42 59 54 45 53 29 0D 63  |2 = 512 BYTES).c|
00004980: 31 34 65 3A 20 38 35 20  66 66 20 20 20 20 20 20  |14e: 85 ff      |
00004990: 20 20 20 20 20 20 20 20  73 74 61 20 20 20 70 61  |        sta   pa|
000049A0: 67 65 0D 63 31 35 30 3A  20 61 39 20 30 30 20 20  |ge.c150: a9 00  |
000049B0: 20 20 20 20 20 20 20 20  20 20 20 20 6C 64 61 20  |            lda |
000049C0: 20 20 23 3C 24 63 32 30  30 20 20 20 20 3B 6C 73  |  #<$c200    ;ls|
000049D0: 62 20 4F 46 20 41 44 44  52 45 53 53 20 57 48 45  |b OF ADDRESS WHE|
000049E0: 52 45 20 54 48 45 20 44  52 49 56 45 0D 20 20 20  |RE THE DRIVE.   |
000049F0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004A00: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004A10: 20 20 20 20 20 20 20 3B  50 52 4F 47 52 41 4D 20  |       ;PROGRAM |
00004A20: 49 53 20 53 54 4F 52 45  44 20 49 4E 20 54 48 45  |IS STORED IN THE|
00004A30: 20 63 36 34 2E 0D 63 31  35 32 3A 20 38 35 20 66  | c64..c152: 85 f|
00004A40: 62 20 20 20 20 20 20 20  20 20 20 20 20 20 20 73  |b              s|
00004A50: 74 61 20 20 20 74 65 6D  70 0D 63 31 35 34 3A 20  |ta   temp.c154: |
00004A60: 61 39 20 63 32 20 20 20  20 20 20 20 20 20 20 20  |a9 c2           |
00004A70: 20 20 20 6C 64 61 20 20  20 23 3E 24 63 32 30 30  |   lda   #>$c200|
00004A80: 20 20 20 20 3B 6D 73 62  20 4F 46 20 41 44 44 52  |    ;msb OF ADDR|
00004A90: 45 53 53 20 4F 46 20 54  48 45 20 44 52 49 56 45  |ESS OF THE DRIVE|
00004AA0: 20 50 52 4F 47 52 41 4D  0D 63 31 35 36 3A 20 38  | PROGRAM.c156: 8|
00004AB0: 35 20 66 63 20 20 20 20  20 20 20 20 20 20 20 20  |5 fc            |
00004AC0: 20 20 73 74 61 20 20 20  74 65 6D 70 2B 31 0D 63  |  sta   temp+1.c|
00004AD0: 31 35 38 3A 20 61 39 20  30 30 20 20 20 20 20 20  |158: a9 00      |
00004AE0: 20 20 20 20 20 20 20 20  6C 64 61 20 20 20 23 3C  |        lda   #<|
00004AF0: 24 30 35 30 30 20 20 20  20 3B 70 55 54 20 49 54  |$0500    ;pUT IT|
00004B00: 20 49 4E 20 31 35 34 31  20 53 54 41 52 54 49 4E  | IN 1541 STARTIN|
00004B10: 47 20 24 30 35 30 30 0D  63 31 35 61 3A 20 38 35  |G $0500.c15a: 85|
00004B20: 20 66 64 20 20 20 20 20  20 20 20 20 20 20 20 20  | fd             |
00004B30: 20 73 74 61 20 20 20 74  65 6D 70 31 0D 63 31 35  | sta   temp1.c15|
00004B40: 63 3A 20 61 39 20 30 35  20 20 20 20 20 20 20 20  |c: a9 05        |
00004B50: 20 20 20 20 20 20 6C 64  61 20 20 20 23 3E 24 30  |      lda   #>$0|
00004B60: 35 30 30 0D 63 31 35 65  3A 20 38 35 20 66 65 20  |500.c15e: 85 fe |
00004B70: 20 20 20 20 20 20 20 20  20 20 20 20 20 73 74 61  |             sta|
00004B80: 20 20 20 74 65 6D 70 31  2B 31 0D 0D 63 31 36 30  |   temp1+1..c160|
00004B90: 3A 20 61 35 20 62 61 20  20 20 20 20 6C 6F 61 64  |: a5 ba     load|
00004BA0: 20 20 20 20 20 6C 64 61  20 20 20 66 61 20 20 20  |     lda   fa   |
00004BB0: 20 20 20 20 20 20 3B 67  45 54 20 41 43 54 49 56  |      ;gET ACTIV|
00004BC0: 45 20 44 45 56 49 43 45  20 28 64 52 49 56 45 20  |E DEVICE (dRIVE |
00004BD0: 3D 20 38 29 0D 63 31 36  32 3A 20 32 30 20 62 31  |= 8).c162: 20 b1|
00004BE0: 20 66 66 20 20 20 20 20  20 20 20 20 20 20 6A 73  | ff           js|
00004BF0: 72 20 20 20 6C 69 73 74  65 6E 20 20 20 20 20 3B  |r   listen     ;|
00004C00: 61 4E 44 20 43 4F 4D 4D  41 4E 44 20 49 54 20 54  |aND COMMAND IT T|
00004C10: 4F 20 6C 69 73 74 65 6E  0D 63 31 36 35 3A 20 61  |O listen.c165: a|
00004C20: 39 20 36 66 20 20 20 20  20 20 20 20 20 20 20 20  |9 6f            |
00004C30: 20 20 6C 64 61 20 20 20  23 24 36 66 20 20 20 20  |  lda   #$6f    |
00004C40: 20 20 20 3B 6F 50 45 4E  20 43 4F 4D 4D 41 4E 44  |   ;oPEN COMMAND|
00004C50: 20 43 48 41 4E 4E 45 4C  20 28 31 35 29 0D 63 31  | CHANNEL (15).c1|
00004C60: 36 37 3A 20 32 30 20 39  33 20 66 66 20 20 20 20  |67: 20 93 ff    |
00004C70: 20 20 20 20 20 20 20 6A  73 72 20 20 20 73 65 63  |       jsr   sec|
00004C80: 6F 6E 64 0D 63 31 36 61  3A 20 61 35 20 66 64 20  |ond.c16a: a5 fd |
00004C90: 20 20 20 20 20 20 20 20  20 20 20 20 20 6C 64 61  |             lda|
00004CA0: 20 20 20 74 65 6D 70 31  20 20 20 20 20 20 3B 70  |   temp1      ;p|
00004CB0: 55 54 20 54 48 45 20 44  45 53 54 49 4E 41 54 49  |UT THE DESTINATI|
00004CC0: 4F 4E 20 41 44 44 52 45  53 53 0D 63 31 36 63 3A  |ON ADDRESS.c16c:|
00004CD0: 20 61 34 20 66 65 20 20  20 20 20 20 20 20 20 20  | a4 fe          |
00004CE0: 20 20 20 20 6C 64 79 20  20 20 74 65 6D 70 31 2B  |    ldy   temp1+|
00004CF0: 31 20 20 20 20 3B 46 4F  52 20 4F 55 52 20 6D 2D  |1    ;FOR OUR m-|
00004D00: 77 20 43 4F 4D 4D 41 4E  44 20 49 4E 54 4F 0D 63  |w COMMAND INTO.c|
00004D10: 31 36 65 3A 20 38 64 20  62 30 20 63 31 20 20 20  |16e: 8d b0 c1   |
00004D20: 20 20 20 20 20 20 20 20  73 74 61 20 20 20 6D 77  |        sta   mw|
00004D30: 2B 33 20 20 20 20 20 20  20 3B 54 48 45 20 6D 45  |+3       ;THE mE|
00004D40: 4D 4F 52 59 2D 77 52 49  54 45 20 53 54 52 49 4E  |MORY-wRITE STRIN|
00004D50: 47 2E 0D 63 31 37 31 3A  20 38 63 20 62 31 20 63  |G..c171: 8c b1 c|
00004D60: 31 20 20 20 20 20 20 20  20 20 20 20 73 74 79 20  |1           sty |
00004D70: 20 20 6D 77 2B 34 0D 63  31 37 34 3A 20 61 30 20  |  mw+4.c174: a0 |
00004D80: 30 30 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |00              |
00004D90: 6C 64 79 20 20 20 23 30  0D 63 31 37 36 3A 20 62  |ldy   #0.c176: b|
00004DA0: 39 20 61 64 20 63 31 20  20 6C 6F 6F 70 20 20 20  |9 ad c1  loop   |
00004DB0: 20 20 6C 64 61 20 20 20  6D 77 2C 79 20 20 20 20  |  lda   mw,y    |
00004DC0: 20 20 20 3B 73 45 4E 44  20 54 48 45 20 27 6D 2D  |   ;sEND THE 'm-|
00004DD0: 77 27 20 43 4F 4D 4D 41  4E 44 0D 63 31 37 39 3A  |w' COMMAND.c179:|
00004DE0: 20 32 30 20 61 38 20 66  66 20 20 20 20 20 20 20  | 20 a8 ff       |
00004DF0: 20 20 20 20 6A 73 72 20  20 20 63 69 6F 75 74 20  |    jsr   ciout |
00004E00: 20 20 20 20 20 3B 54 4F  20 54 48 45 20 44 52 49  |     ;TO THE DRI|
00004E10: 56 45 2E 0D 63 31 37 63  3A 20 63 38 20 20 20 20  |VE..c17c: c8    |
00004E20: 20 20 20 20 20 20 20 20  20 20 20 20 20 69 6E 79  |             iny|
00004E30: 0D 63 31 37 64 3A 20 63  30 20 30 36 20 20 20 20  |.c17d: c0 06    |
00004E40: 20 20 20 20 20 20 20 20  20 20 63 70 79 20 20 20  |          cpy   |
00004E50: 23 36 0D 63 31 37 66 3A  20 64 30 20 66 35 20 20  |#6.c17f: d0 f5  |
00004E60: 20 20 20 20 20 20 20 20  20 20 20 20 62 6E 65 20  |            bne |
00004E70: 20 20 6C 6F 6F 70 0D 63  31 38 31 3A 20 61 30 20  |  loop.c181: a0 |
00004E80: 30 30 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |00              |
00004E90: 6C 64 79 20 20 20 23 30  30 20 20 20 20 20 20 20  |ldy   #00       |
00004EA0: 20 3B 6E 4F 57 20 53 45  4E 44 20 33 32 20 42 59  | ;nOW SEND 32 BY|
00004EB0: 54 45 53 20 4F 46 20 54  48 45 20 64 52 49 56 45  |TES OF THE dRIVE|
00004EC0: 0D 63 31 38 33 3A 20 62  31 20 66 62 20 20 20 20  |.c183: b1 fb    |
00004ED0: 20 6C 6F 6F 70 31 20 20  20 20 6C 64 61 20 20 20  | loop1    lda   |
00004EE0: 28 74 65 6D 70 29 2C 79  20 20 20 3B 50 52 4F 47  |(temp),y   ;PROG|
00004EF0: 52 41 4D 20 46 52 4F 4D  20 54 48 45 20 63 36 34  |RAM FROM THE c64|
00004F00: 20 54 4F 20 54 48 45 20  31 35 34 31 2E 0D 63 31  | TO THE 1541..c1|
00004F10: 38 35 3A 20 32 30 20 61  38 20 66 66 20 20 20 20  |85: 20 a8 ff    |
00004F20: 20 20 20 20 20 20 20 6A  73 72 20 20 20 63 69 6F  |       jsr   cio|
00004F30: 75 74 0D 63 31 38 38 3A  20 63 38 20 20 20 20 20  |ut.c188: c8     |
00004F40: 20 20 20 20 20 20 20 20  20 20 20 20 69 6E 79 0D  |            iny.|
00004F50: 63 31 38 39 3A 20 63 30  20 32 30 20 20 20 20 20  |c189: c0 20     |
00004F60: 20 20 20 20 20 20 20 20  20 63 70 79 20 20 20 23  |         cpy   #|
00004F70: 33 32 0D 63 31 38 62 3A  20 39 30 20 66 36 20 20  |32.c18b: 90 f6  |
00004F80: 20 20 20 20 20 20 20 20  20 20 20 20 62 63 63 20  |            bcc |
00004F90: 20 20 6C 6F 6F 70 31 0D  0D 61 44 4A 55 53 54 20  |  loop1..aDJUST |
00004FA0: 54 48 45 20 50 4F 49 4E  54 45 52 53 0D 0D 63 31  |THE POINTERS..c1|
00004FB0: 38 64 3A 20 61 35 20 66  62 20 20 20 20 20 20 20  |8d: a5 fb       |
00004FC0: 20 20 20 20 20 20 20 6C  64 61 20 20 20 74 65 6D  |       lda   tem|
00004FD0: 70 20 20 20 20 20 20 20  3B 61 44 44 20 33 32 20  |p       ;aDD 32 |
00004FE0: 54 4F 20 42 4F 54 48 20  4F 55 52 20 74 65 6D 70  |TO BOTH OUR temp|
00004FF0: 20 41 4E 44 20 74 65 6D  70 31 0D 63 31 38 66 3A  | AND temp1.c18f:|
00005000: 20 36 39 20 31 66 20 20  20 20 20 20 20 20 20 20  | 69 1f          |
00005010: 20 20 20 20 61 64 63 20  20 20 23 33 31 20 20 20  |    adc   #31   |
00005020: 20 20 20 20 20 3B 50 4F  49 4E 54 45 52 53 20 53  |     ;POINTERS S|
00005030: 4F 20 54 48 41 54 20 4F  55 52 20 6D 2D 77 20 41  |O THAT OUR m-w A|
00005040: 4E 44 20 63 36 34 0D 63  31 39 31 3A 20 38 35 20  |ND c64.c191: 85 |
00005050: 66 62 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |fb              |
00005060: 73 74 61 20 20 20 74 65  6D 70 20 20 20 20 20 20  |sta   temp      |
00005070: 20 3B 44 52 49 56 45 20  50 52 4F 47 52 41 4D 20  | ;DRIVE PROGRAM |
00005080: 41 44 44 52 45 53 53 20  49 53 20 49 4E 43 52 45  |ADDRESS IS INCRE|
00005090: 4D 45 4E 54 45 44 0D 63  31 39 33 3A 20 61 35 20  |MENTED.c193: a5 |
000050A0: 66 63 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |fc              |
000050B0: 6C 64 61 20 20 20 74 65  6D 70 2B 31 20 20 20 20  |lda   temp+1    |
000050C0: 20 3B 54 4F 20 4F 55 52  20 4E 45 58 54 20 33 32  | ;TO OUR NEXT 32|
000050D0: 20 42 59 54 45 20 50 41  47 45 2E 0D 63 31 39 35  | BYTE PAGE..c195|
000050E0: 3A 20 36 39 20 30 30 20  20 20 20 20 20 20 20 20  |: 69 00         |
000050F0: 20 20 20 20 20 61 64 63  20 20 20 23 30 0D 63 31  |     adc   #0.c1|
00005100: 39 37 3A 20 38 35 20 66  63 20 20 20 20 20 20 20  |97: 85 fc       |
00005110: 20 20 20 20 20 20 20 73  74 61 20 20 20 74 65 6D  |       sta   tem|
00005120: 70 2B 31 0D 63 31 39 39  3A 20 61 35 20 66 64 20  |p+1.c199: a5 fd |
00005130: 20 20 20 20 20 20 20 20  20 20 20 20 20 6C 64 61  |             lda|
00005140: 20 20 20 74 65 6D 70 31  0D 63 31 39 62 3A 20 36  |   temp1.c19b: 6|
00005150: 39 20 32 30 20 20 20 20  20 20 20 20 20 20 20 20  |9 20            |
00005160: 20 20 61 64 63 20 20 20  23 33 32 0D 63 31 39 64  |  adc   #32.c19d|
00005170: 3A 20 38 35 20 66 64 20  20 20 20 20 20 20 20 20  |: 85 fd         |
00005180: 20 20 20 20 20 73 74 61  20 20 20 74 65 6D 70 31  |     sta   temp1|
00005190: 0D 63 31 39 66 3A 20 61  35 20 66 65 20 20 20 20  |.c19f: a5 fe    |
000051A0: 20 20 20 20 20 20 20 20  20 20 6C 64 61 20 20 20  |          lda   |
000051B0: 74 65 6D 70 31 2B 31 0D  63 31 61 31 3A 20 36 39  |temp1+1.c1a1: 69|
000051C0: 20 30 30 20 20 20 20 20  20 20 20 20 20 20 20 20  | 00             |
000051D0: 20 61 64 63 20 20 20 23  30 0D 63 31 61 33 3A 20  | adc   #0.c1a3: |
000051E0: 38 35 20 66 65 20 20 20  20 20 20 20 20 20 20 20  |85 fe           |
000051F0: 20 20 20 73 74 61 20 20  20 74 65 6D 70 31 2B 31  |   sta   temp1+1|
00005200: 0D 63 31 61 35 3A 20 32  30 20 61 65 20 66 66 20  |.c1a5: 20 ae ff |
00005210: 20 20 20 20 20 20 20 20  20 20 6A 73 72 20 20 20  |          jsr   |
00005220: 75 6E 6C 73 6E 0D 63 31  61 38 3A 20 63 36 20 66  |unlsn.c1a8: c6 f|
00005230: 66 20 20 20 20 20 20 20  20 20 20 20 20 20 20 64  |f              d|
00005240: 65 63 20 20 20 70 61 67  65 20 20 20 20 20 20 20  |ec   page       |
00005250: 3B 61 4C 4C 20 33 32 20  42 59 54 45 20 50 41 47  |;aLL 32 BYTE PAG|
00005260: 45 53 20 53 45 4E 54 3F  0D 63 31 61 61 3A 20 64  |ES SENT?.c1aa: d|
00005270: 30 20 62 34 20 20 20 20  20 20 20 20 20 20 20 20  |0 b4            |
00005280: 20 20 62 6E 65 20 20 20  6C 6F 61 64 20 20 20 20  |  bne   load    |
00005290: 20 20 20 3B 6E 4F 2D 54  48 45 4E 20 47 45 54 20  |   ;nO-THEN GET |
000052A0: 4D 4F 52 45 0D 63 31 61  63 3A 20 36 30 20 20 20  |MORE.c1ac: 60   |
000052B0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 72 74  |              rt|
000052C0: 73 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  |s              ;|
000052D0: 79 45 53 2D 54 48 45 4E  20 52 45 54 55 52 4E 0D  |yES-THEN RETURN.|
000052E0: 0D 63 31 61 64 3A 20 34  64 20 32 64 20 35 37 20  |.c1ad: 4d 2d 57 |
000052F0: 20 6D 77 20 20 20 20 20  20 20 61 73 63 20 20 20  | mw       asc   |
00005300: 27 6D 2D 77 27 2C 30 30  2C 30 30 2C 32 30 0D 63  |'m-w',00,00,20.c|
00005310: 31 62 30 3A 20 30 30 20  30 30 20 32 30 0D 0D 0D  |1b0: 00 00 20...|
00005320: 2D 2D 65 4E 44 20 6D 45  52 4C 49 4E 2D 31 32 38  |--eND mERLIN-128|
00005330: 20 41 53 53 45 4D 42 4C  59 2C 20 34 33 35 20 42  | ASSEMBLY, 435 B|
00005340: 59 54 45 53 2C 20 65 52  52 4F 52 53 3A 20 30 0D  |YTES, eRRORS: 0.|
ZAPL64..ORIGINALLY WRITTEN BY DON LEWIS 
AND APPEARED IN APRIL 1985 COMPUTE! AS T
HE.PROTRAM TURBODISK. UPLOADED WITH THE 
AUTHORS PERMISSION BY Q-LINK USER BISON,
.AND IS CURRENTLY IN THE ORIGINAL FORM A
S 2 FILES IN THE PROGRAMMER'S WORKSHOP.L
IBRARY, 65XX, UTILITIES SOURCE AS:..ZAP-
LDER2.A1541.ZAP-LDER2.A64..EXTENSIVE COM
MENTING AND TUTORIAL BY JOHN GAGER.(Q-LI
NK ID: SUPERDISK).(COMPUSERVE ID: 71336,
624)..SUPERDISK COMMENTS: SOMETIMES I'M 
NOT CONTENT WITH KNOWING ONLY THAT A PRO
GRAM.WORKS. THERE ARE CERTAIN TIMES I WA
NT TO KNOW WHY AND HOW? THIS HAS BEEN TH
E.CASE WITH THOSE FAST LOAD PROGRAMS THA
T HAVE BEEN FLOATING AROUND. SO WHEN I.S
AW THE 2 SOURCE FILES BISON UPLOADED, I 
THOUGHT "GREAT! NOW I CAN FIND OUT.HOW T
HOSE DARN ROUTINES WORK". YOU CAN IMAGIN
E MY DISAPPOINTMENT WHEN I LOOKED.AT THE
 2 FILES AND FOUND A TOTAL OF ABOUT 10 C
OMMENTS IN THE SOURCE. ARGH! WELL.I GUES
S YOU CAN'T HAVE EVERYTHING, SO DECIDED 
TO GO THROUGH AND FIGURE IT OUT.MYSELF. 
I'M GLAD I DID THOUGH. I HAVE A MUCH BET
TER UNDERSTANDING OF HOW THOSE.FAST LOAD
 PROGRAMS WORK IN GENERAL, AND SERIAL I/
O ESPECIALLY. BUT I COULDN'T.HAVE DONE I
T WITHOUT MY GOOD LIBRARY OF REFERENCE B
OOKS:..1571 INTERNALS (ABACUS).INSIDE CO
MMODORE DOS (DATAMOST).C128 PROGRAMMER'S
 REFERENCE GUIDE (BANTAM)..AS YOU NOTICE
, SOME OF THE BOOKS I USED ARE FOR THE 1
571 AND C128. THE BOOK."1571 INTERNALS" 
HAS A VERY GOOD EXPLANATION OF HOW SERIA
L I/O WORKS, WHILE.THEIR MANUAL "ANATOMY
 OF THE 1541 DISK DRIVE" BARELY MENTIONS
 THIS SUBJECT..WHY THEY DIDN'T INCLUDE T
HE SERIAL I/O INFO IN THE 1541 MANUAL IS
 BEYOND ME..ANYWAY, I HOPE YOU CAN LEARN
 FROM THE RESULT OF MY EFFORTS, AND PLEA
SE LET ME.KNOW WHAT YOU THINK. ALSO I AD
MIT I'M NOT AN EXPERIENCED DOS HACKER OR
 ML.PROGRAMMER, SO IF YOU NOTICE ANY COR
RECTIONS OR ADDITIONS THAT NEED TO BE MA
DE,.PLEASE TELL ME!..ZAP/LOADER 64 RESID
ENT CODE..                64 ROUTINES & 
RAM..                PORTA    =     $DD0
0      ;6526 CIA #2-PORT A.             
   VICCTR   =     $D011      ;VIC CONTRO
L REGISTER 1.                BUFFER   = 
    $C400      ;TEMP BUFFER FOR SECTOR T
RANSFER.                ILOAD    =     $
0330      ;C64 KERNAL LOAD ROUTINE VECTO
R..                KERNAL JUMPS..       
         TALK     =     $FFB4      ;COMM
AND DEVICE TO TALK.                LISTE
N   =     $FFB1      ;COMMAND DEVICE TO 
LISTEN.                UNLSN    =     $F
FAE      ;COMMAND DEVICE TO UNLISTEN.   
             UNTALK   =     $FFAB      ;
COMMAND DEVICE TO UNTALK.               
 CIOUT    =     $FFA8      ;OUTPUT BYTE 
OVER SERIAL BUS.                SECOND  
 =     $FF93      ;SEND SECONDARY ADDRES
S.                LOAD64   =     $F4A5  
    ;C64 NORMAL LOAD ROUTINE.           
     OUTSCN   =     $E716      ;PRINT CH
AR IN A AT NEXT.                        
                  ;CURSOR POSITION...   
             C64 ZERO PAGE USAGE..      
          BSOUR    =     $95        ;TEM
P BUFFER FOR SERIAL DATA.               
 EAL      =     $AE        ;POINTER TO P
ROGRAM START ADDRESS.                TEM
P     =     $FB        ;POINTER FOR 1541
 DRIVE PROGRAM.                         
                 ;THAT IS LOCATED AT $C2
00.                TEMP1    =     $FD   
     ;POINTER FOR 1541 RAM ($0500).     
                                     ;TH
AT THE PROGRAM IS TO BE.                
                          ;DOWNLOADED TO
..                PAGE     =     $FF    
    ;NUMBER OF 32 BYTE PAGES TO.        
                                  ;BE DO
WNLOADED TO THE 1541 (16)..             
   FA       =     $BA        ;CURRENT DE
VICE (FOR DRIVE = 8).                FNL
EN    =     $B7        ;LENGTH OF FILENA
ME.                FNADR    =     $BB   
     ;POINTER WHERE FILENAME IS LOCATED.
                SA       =     $B9      
  ;SECONDARY ADDRESS.                MEM
USS   =     $C3        ;NORMAL BASIC LOA
D POINTER ($0801).                VERCK 
   =     $93        ;FLAG: 0=LOAD 1=VERI
FY..                SEE ZAP LOADER 1541 
RESIDENT CODE..                FILE     
=     $06AC+$BD00;SECONDARY FILENAME ARE
A USED.                                 
         ;BY THIS PROGRAM. THE MAIN.    
                                      ;F
ILENAME IS POINTED TO BY $BB...PROGRAM S
TARTS HERE..                         ORG
   $C000..C000: 4C 1B C0  ZAPON    JMP  
 ZAPON0     ;JUMP TO ENABLE FAST LOADER.
.DISABLE FAST LOAD ROUTINE..C003: A9 A5 
    ZAPOFF   LDA   #<LOAD64   ;RESTORE I
LOAD VECTOR TO NORMAL.C005: 8D 30 03    
       STA   ILOAD      ;C64 LOAD ROUTIN
E (F4A5).C008: A9 F4              LDA   
#>LOAD64.C00A: 8D 31 03           STA   
ILOAD+1.C00D: A0 00              LDY   #
00.C00F: B9 29 C0  ZAPOF0   LDA   MSG1,Y
     ;PRINT DISABLED MESSAGE.C012: F0 06
              BEQ   ZAPOFX.C014: 20 16 E
7           JSR   OUTSCN.C017: C8       
          INY.C018: D0 F5              B
NE   ZAPOF0.C01A: 60        ZAPOFX   RTS
              ;AND RETURN..ENABLE FAST L
OAD ROUTINE..C01B: A9 4F     ZAPON0   LD
A   #<ZAP      ;SET ILOAD VECTOR TO POIN
T TO.C01D: 8D 30 03           STA   ILOA
D      ;THE FAST LOAD ROUTINE..C020: A9 
C0              LDA   #>ZAP.C022: 8D 31 
03           STA   ILOAD+1.C025: A0 0F  
            LDY   #MSG2-LITS ;PRINT "ENA
BLED" MESSAGE.C027: D0 E6              B
NE   ZAPOF0..                LITS     = 
    *.C029: 0D        MSG1     DFB   $0D
.C02A: 5A 41 50           ASC   'ZAP DIS
ABLED',0D,00.C02D: 20 44 49 53 41 42 4C 
45.C035: 44 0D 00.C038: 0D        MSG2  
   DFB   $0D.C039: 5A 41 50           AS
C   'ZAP V0223/85 ENABLED',0D,00.C03C: 2
0 56 30 32 32 33 2F 38.C044: 35 20 45 4E
 41 42 4C 45.C04C: 44 0D 00..FAST LOAD R
OUTINE STARTS HERE. AT THIS POINT, WHEN 
THE ILOAD VECTOR JUMPS HERE,.THE A REGIS
TER WILL CONTAIN THE FLAG FOR A LOAD OR 
VERIFY. (0-LOAD 1-VERIFY)..C04F: 85 93  
   ZAP      STA   VERCK      ;SAVE VERIF
Y FLAG.C051: A5 93              LDA   VE
RCK      ;GET VERIFY FLAG.C053: D0 1E   
           BNE   DIRCT      ;IS IT A VER
IFY? YES THEN JUMP.                     
                     ;TO NORMAL C64 LOAD
 ROUTINE..                              
            ;NO-THEN ITS A LOAD COMMAND.
                                        
  ;SO CONTINUE HERE...CLEAR FILE NAME AR
EA..C055: A2 10              LDX   #16  
      ;THIS CLEARS THE SECONDARY.C057: A
9 A0              LDA   #$A0       ;FILE
NAME AREA USED BY THIS.C059: 9D AC C3  C
LRFIL   STA   FILE,X     ;PROGRAM. THE M
AIN FILENAME.C05C: CA                 DE
X              ;AREA IS POINTED TO BY A.
C05D: 10 FA              BPL   CLRFIL   
  ;POINTER AT $BB...CHECK IF DIRECTORY L
OAD..C05F: A0 00              LDY   #0  
       ;CHECK THE MAIN FILENAME AREA.C06
1: B1 BB              LDA   (FNADR),Y  ;
FOR THE ASCII CHARACTER $.C063: C9 24   
           CMP   #'$'       ;WHICH INDIC
ATES DIRECTORY LOAD..C065: F0 0C        
      BEQ   DIRCT      ;IF SO, THEN JUMP
 TO DIRCT TO.                           
               ;DO A NORMAL C64 LOAD...M
OVE FILE NAME TO FILE AREA..C067: B1 BB 
    STFIL    LDA   (FNADR),Y  ;IF ITS NO
T A DIRECTORY LOAD,.C069: 99 AC C3      
     STA   FILE,Y     ;THEN ITS A NORMAL
 FILENAME.C06C: C8                 INY  
            ;SO MOVE IT TO OUR SECONDARY
.C06D: C4 B7              CPY   FNLEN   
   ;FILENAME AREA..C06F: 90 F6          
    BCC   STFIL.C071: B0 05             
 BCS   ZAP64      ;AND BRANCH TO FASTLOA
D ROUTINE..DIRECTORY LOAD OR VERIFY..C07
3: A5 93     DIRCT    LDA   VERCK      ;
GET LOAD ($00) OR VERIFY ($01).C075: 4C 
A5 F4           JMP   LOAD64     ;FLAG A
ND JUMP TO NORMAL C64.                  
                        ;LOAD ROUTINE..Z
AP LOADER 64..C078: 20 4C C1  ZAP64    J
SR   DOWNL      ;DOWNLOAD DRIVE PROGRAM 
TO THE 1541.C07B: A5 BA              LDA
   FA         ;GET CURRENT DEVICE (DRIVE
 = 8).C07D: 20 B1 FF           JSR   LIS
TEN     ;AND COMMAND IT TO LISTEN.C080: 
A9 6F              LDA   #$6F       ;GET
 THE SECONDARY ADDRESS.C082: 20 93 FF   
        JSR   SECOND     ;AND COMMAND DR
IVE TO OPEN.                            
              ;THE COMMAND CHANNEL. SIMI
LAR IN.                                 
         ;BASIC OF OPEN 15,8,15..C085: A
9 55              LDA   #'U'       ;TELL
 DRIVE TO DO A UC COMMAND.C087: 20 A8 FF
           JSR   CIOUT      ;WHICH IS TH
E COMMAND FOR THE DRIVE.C08A: A9 43     
         LDA   #'C'       ;TO JUMP TO TH
E PROGRAM AT $0500..C08C: 20 A8 FF      
     JSR   CIOUT.C08F: 20 AE FF         
  JSR   UNLSN      ;COMMAND DRIVE TO UNL
ISTEN..PROCESS THE DATA..C092: 78       
 BEGIN    SEI              ;DISABLE INTE
RRUPTS.C093: A9 0B              LDA   #$
0B       ;THIS BLANKS THE SCREEN FOR.C09
5: 8D 11 D0           STA   VICCTR     ;
FASTER PROCESSING..C098: 20 15 C1  PROCE
S   JSR   GTSECT     ;GET A SECTOR OF TH
E FILE.C09B: 2C 00 C4           BIT   BU
FFER     ;CHECK FOR AN ERROR FLAG.      
                                    ;SEN
T BY THE DRIVE TO INFORM.               
                           ;THE C64 THER
E WAS AN ERROR..C09E: 30 53             
 BMI   ERROR1     ;ERROR DETECTED SO BRA
NCH...ON A BASIC LOAD COMMAND, THE START
 OF BASIC ADDRESS ($0801) IS STORED IN.$
C3-$C4 FOR USE BY THE KERNEL LOAD ROUTIN
E...C0A0: A4 C3              LDY   MEMUS
S     ;GET THE NORMAL BASIC LOAD ADDR.C0
A2: A6 C4              LDX   MEMUSS+1   
;FOR A PROGRAM LOAD ($0801)..THIS CHECKS
 WHETHER OR NOT THE PROGRAM SHOULD BE LO
ADED AT THE NORMAL LOAD.AREA, WHICH WOUL
D BE EQUIVALENT TO THE COMMAND LOAD"FILE
NAME",8 OR TO THE LOAD.AREA SPECIFIED IN
 THE PROGRAM WHEN IT WAS SAVED, WHICH WO
ULD BE EQUIVALENT TO.THE COMMAND LOAD"FI
LENAME",8,1...C0A4: A5 B9              L
DA   SA         ;GET THE SECONDARY ADDRE
SS.C0A6: F0 06              BEQ   PROCS1
     ;IF A ZERO, THEN JUMP AND LOAD.    
                                      ;T
O BASIC AREA..C0A8: AC 02 C4           L
DY   BUFFER+2   ;IF NOT, THEN LOAD AT AD
DRESS.                                  
        ;SPECIFIED IN THE FIRST SECTOR.C
0AB: AE 03 C4           LDX   BUFFER+3  
 ;OF THE PROGRAM..C0AE: 84 AE     PROCS1
   STY   EAL        ;STORE THE PROGRAM L
OAD ADDRESS.C0B0: 86 AF              STX
   EAL+1      ;INTO EAL..C0B2: A2 04    
          LDX   #4         ;SINCE THIS I
S THE FIRST SECTOR.                     
                     ;OF THE PROGRAM, SK
IP THE TRACK.                           
               ;& SECTOR LINKS, AND THE 
PROGRAM.                                
          ;LOAD ADDRESS..C0B4: AD 00 C4 
          LDA   BUFFER     ;MORE SECTORS
 TO LOAD?.C0B7: F0 15              BEQ  
 CLOSE0     ;NO-THEN TRANSFER THE 1ST SE
CTOR.                                   
       ;IN THE BUFFER TO THE PROGRAM.   
                                       ;
STORAGE AREA AND END..C0B9: 20 FD C0    
       JSR   XFER1      ;YES-TRANSFER TH
E 1ST SECTOR,.                          
                ;AND GET ANOTHER...C0BC:
 20 15 C1  PROCS2   JSR   GTSECT     ;GE
T ANOTHER SECTOR OF THE PROGRAM.C0BF: AD
 00 C4           LDA   BUFFER     ;WAS A
N ERROR ENCOUNTERED?.C0C2: 30 32        
      BMI   ERROR2     ;YES-THEN BRANCH.
C0C4: F0 06              BEQ   CLOSE    
  ;WAS IT THE LAST SECTOR? YES.C0C6: 20 
FB C0           JSR   XFER       ;NO-THE
N TRANSFER THE BUFFER TO.C0C9: 4C BC C0 
          JMP   PROCS2     ;PROGRAM STOR
AGE & GET MORE SECTORS...C0CC: A2 02    
 CLOSE    LDX   #2         ;SKIP THE TRA
CK & SECTOR NUMBER OF.                  
                        ;THE LAST SECTOR
..C0CE: A0 00     CLOSE0   LDY   #0.C0D0
: BD 00 C4  CLOSE1   LDA   BUFFER,X   ;G
ET A DATA BYTE FROM THE BUFFER.C0D3: 91 
AE              STA   (EAL),Y    ;PUT IT
 IN THE PROGRAM STORAGE AREA..C0D5: C8  
               INY              ;INCREME
NT PROGRAM AREA POINTER.C0D6: E8        
         INX              ;INCREMENT BYT
E COUNTER & BUFF PNTR.C0D7: EC 01 C4    
       CPX   BUFFER+1   ;IS IT < NUMBER 
OF BYTES TO READ.                       
                   ;FROM THIS SECTOR. IN
 THE LAST.                              
            ;SECTOR, THE SECOND BYTE TEL
LS YOU.                                 
         ;HOW MANY BYTES ARE IN THIS SEC
TOR..C0DA: 90 F4              BCC   CLOS
E1     ;IF < NUMBER OF BYTES, THEN GET M
ORE.C0DC: BD 00 C4           LDA   BUFFE
R,X   ;GET THE LAST BYTE.C0DF: 91 AE    
          STA   (EAL),Y    ;AND PUT IT T
HE PROGRAM STORAGE.C0E1: C8             
    INY              ;INY SO IT POINTS T
O THE LAST BYTE+1.C0E2: 20 08 C1        
   JSR   XFER3      ;INCREMENT PROGRAM P
OINTERS.C0E5  18                 CLC    
          ;CLEAR CARRY TO INDICATE NO ER
ROR.                                    
      ;OCCURRED WHEN IT RETURNS TO THE. 
                                        
 ;BASIC LOAD CONTINUATION AT $E178..C0E6
: 48        CLOSEX   PHA              ;S
AVE ERROR NUMBER-IF ERROR OCCURRED.C0E7:
 A9 1B              LDA   #$1B       ;RE
STORE SCREEN TO NORMAL.C0E9: 8D 11 D0   
        STA   VICCTR.C0EC: 68           
      PLA              ;RETRIEVE ERROR N
UMBER.C0ED: A6 AE              LDX   EAL
        ;THIS WILL SET THE BASIC RAM END
 AT.C0EF: A4 AF              LDY   EAL+1
      ;$37-38 FOR THE END OF OUR PROGRAM
..C0F1: 58                 CLI          
    ;ENABLE INTERRUPTS.C0F2: 60         
        RTS              ;AND RETURN TO 
BASIC LOAD.                             
             ;CONTINUATION AT $E178...C0
F3: A9 04     ERROR1   LDA   #4         
;SETUP FOR '?FILE NOT FOUND ERROR'.C0F5:
 2C                 DFB   $2C.C0F6: A9 0
0     ERROR2   LDA   #0         ;SETUP F
OR '?BREAK ERROR'.C0F8: 38              
   SEC              ;FLAG FOR ERROR OCCU
RRED.C0F9: B0 EB              BCS   CLOS
EX     ;AND JUMP TO END PROGRAM..C0FB: A
2 02     XFER     LDX   #2         ;SKIP
 TRACK & SECTOR LINKS.C0FD: A0 00     XF
ER1    LDY   #0.C0FF: BD 00 C4  XFER2   
 LDA   BUFFER,X   ;TRANSFER SECTOR IN BU
FFER AREA.C102: 91 AE              STA  
 (EAL),Y    ;TO PROGRAM STORAGE AREA..C1
04: C8                 INY              
;INC PROGRAM AREA POINTER.C105: E8      
           INX              ;INC SECTOR 
BUFFER POINTER.C106: D0 F7              
BNE   XFER2      ;IF MORE BYTES IN THE S
ECTOR, THEN.                            
              ;GET MORE..C108: 18       
 XFER3    CLC              ;IF NOT, THEN
 INCREMENT PROGRAM.C109: 98             
    TYA              ;POINTER FOR ANOTHE
R SECTOR..C10A: 65 AE              ADC  
 EAL.C10C: 85 AE              STA   EAL.
C10E: A5 AF              LDA   EAL+1.C11
0: 69 00              ADC   #0.C112: 85 
AF              STA   EAL+1.C114: 60    
             RTS..GET A SECTOR..C115: A0
 00     GTSECT   LDY   #$00..RECEIVE A B
YTE FROM THE DRIVE..WAIT FOR DATA INPUT 
LINE TO GO LOW. THE ZAP ROUTINE IN THE 1
541 CODE WILL.SET THE DATA OUTPUT BIT TO
 A 1, AND THROUGH THE INVERSION WILL BE 
DETECTED.HERE AS A LOW...C117: AD 00 DD 
 GTSCT1   LDA   PORTA      ;WAIT FOR BIT
 7 OF PRA TO GO LOW.C11A: 30 FB         
     BMI   GTSCT1     ;FROM DRIVE INDICA
TING DATA INPUT..PULL CLOCK OUTPUT LINE 
LOW. NOTICE THAT BIT 4 OF THE FOLLOWING 
BYTE IS HIGH,.BUT WITH THE INVERSION PUL
LS THE LINE LOW. THE ZAP01 ROUTINE IN TH
E 1541 IS.WAITING FOR THE CLOCK LINE TO 
GO LOW...C11C: A9 17     RECV02   LDA   
#%00010111.C11E: 8D 00 DD           STA 
  PORTA..WAIT FOR THE DATA INPUT LINE TO
 GO HIGH. THE CODE IN THE 1541 AT THE 2N
D PART.OF ZAP01 STORES 0 IN PB, AND THRO
UGH THE INVERSION CAUSES BOTH THE DATA A
ND.CLOCK INPUT LINES OF THE C64 TO GO HI
GH...C121: AD 00 DD  RECV01   LDA   PORT
A      ;WAIT FOR DATA HIGH.C124: 10 FB  
            BPL   RECV01..THE FOLLOWING 
CODE SETS THE DATA AND CLOCK LINES HIGH,
 SO THAT THEY ARE PRESET.BEFORE THE ACTU
AL DATA TRANSFER, AND TO ADD ABOUT A 6US
 DELAY...C126: A9 07              LDA   
#$07.C128: 8D 00 DD           STA   PORT
A..OK, NOW WE GET INTO SOME HEAVY STUFF 
AGAIN. IN A NORMAL C64 SERIAL TRANSFER,.
THE CLOCK LINE IS USED TO TELL THE LISTE
NER (C64) THAT A BIT IS READY TO BE.SENT
, AND AFTER THE BIT HAS BEEN SENT, TELLS
 THE C64 TO GET READY FOR ANOTHER.BIT. I
 WON'T GO INTO EXACT DETAILS ON SERIAL I
/O TRANSFERS BECAUSE THAT COULD.TAKE UP 
ALMOST A FULL BOOK BY ITSELF. BUT IF YOU
 INTERESTED IN LEARNING MORE.ABOUT SERIA
L I/O, I HIGHLY RECOMMEND READING AN ART
ICLE BY THE GURU HIMSELF,.JIM BUTTERFIEL
D. THE NAME OF THE ARTICLE IS "HOW THE V
IC/64 SERIAL BUS WORKS",.AND APPEARED IN
 THE JULY 1983 ISSUE OF COMPUTE! MAGAZIN
E. SO HOW DO WE KEEP.THE DRIVE AND COMPU
TER SYNCRONIZED SO THE C64 IS READY TO R
ECEIVE A BYTE AT.THE TIME THE 1541 IS SE
NDING IT? BY VERY CLOSE TIMING, THATS HO
W! THE DRIVE.SENDS ITS 2 BITS APPROXIMAT
ELY EVERY 30US, WHILE THE C64 RECEIVES A
ND PROCESSES.THE 2 BITS EVERY 30US. SO A
S DRIVE SENDS THE BITS, THE C64 IS READY
 TO GET.THEM. SINCE YOU WANT TO MAKE SUR
E THAT THE 1541 HAS TIME TO SET THE CLOC
K AND.DATA LINES PROPERLY BEFORE THE C64
 TRYS TO READ IT, WE HAVE TO GIVE THE C6
4 A.SLIGHT DELAY. SINCE IT TAKES THE 154
1 ABOUT 26 US BEFORE ITS 1ST 2 BITS ARE.
SENT, AND IF WE DIDN'T HAVE OUR 6US PRES
ET DELAY ABOVE AND THE 29US DELAY LOOP.B
ELOW, THE C64 WOULD TRY TO READ THE PORT
 WITHIN 6US, SO IT WOULD GET INVALID.DAT
A. SO WE GIVE IT A LITTLE TIME BEFORE WE
 READ THE PORT, USING OUR PRESET.DELAY, 
THE DELAY LOOP BELOW, AND THE CYCLE DELA
Y FOR THE LDX #4 AND LDA PORTA,.TO COME 
UP WITH APPROXIMATELY A 41US DELAY BEFOR
E THE A REGISTER CONTAINS OUR.1ST 2 BITS
. AFTER THE 1ST PASS, THE 1541 WRITE AND
 THE C64 READ ROUTINE TAKES.ABOUT 30US E
ACH SO THE C64 WILL CONTINUE TO TRY AND 
READ THE PORT ABOUT 15US.AFTER THE 1541 
HAS WRITTEN THE 2 BITS TO THE PORT. TO T
RY AND MAKE IT A LITTLE.EASIER, BELOW IS
 A GRAPH SHOWING THE 1ST 2 PASSES...C12B
: A2 04              LDX   #$04       ;2
9US DELAY LOOP.C12D: CA        RECV03   
DEX.C12E: EA                 NOP.C12F: D
0 FC              BNE   RECV03..THIS IS 
HOW IT WORKS FOLKS!!../...........26US..
......../.............30US............./
.................                      1
541 WRITE                     1541 WRITE
./...................41US...............
.../.............30US............./.    
                                   C64 R
EAD                       C64 READ..C131
: A2 04              LDX   #4.C133: AD 0
0 DD  RECV04   LDA   PORTA      ;DO THE 
MATH AND KEEP THE.C136: 0A              
   ASL   A          ;TIMING RIGHT!.C137:
 08                 PHP.C138: 0A        
         ASL   A.C139: 26 95            
  ROL   BSOUR.C13B: 28                 P
LP.C13C: 26 95              ROL   BSOUR.
C13E: CA                 DEX.C13F: D0 F2
              BNE   RECV04     ;ALL 4 X 
2 BITS SENT?-NO.C141: A5 95             
 LDA   BSOUR      ;YES-THEN WE NEED TO C
OMPLEMENT.C143: 49 FF              EOR  
 #$FF       ;OUR RECEIVED BYTE..C145: 99
 00 C4           STA   BUFFER,Y   ;AND S
TORE IT IN THE BUFFER..C148: C8         
        INY.C149: D0 CC              BNE
   GTSCT1     ;COMPLETE SECTOR RECEIVED?
-NO.C14B: 60                 RTS        
      ;YES-THEN RETURN..****************
****************.*DOWNLOAD CODE TO 1541 
DRIVE   *.*                             
 *.*SET UP, CHANGE FOR YOUR OWN   *.*APP
LICATION.                  *.***********
*********************..C14C: A9 10     D
OWNL    LDA   #16        ;NUMBER OF 32 B
YTE PAGES TO MOVE.                      
                    ;TO THE 1541 (16 * 3
2 = 512 BYTES).C14E: 85 FF              
STA   PAGE.C150: A9 00              LDA 
  #<$C200    ;LSB OF ADDRESS WHERE THE D
RIVE.                                   
       ;PROGRAM IS STORED IN THE C64..C1
52: 85 FB              STA   TEMP.C154: 
A9 C2              LDA   #>$C200    ;MSB
 OF ADDRESS OF THE DRIVE PROGRAM.C156: 8
5 FC              STA   TEMP+1.C158: A9 
00              LDA   #<$0500    ;PUT IT
 IN 1541 STARTING $0500.C15A: 85 FD     
         STA   TEMP1.C15C: A9 05        
      LDA   #>$0500.C15E: 85 FE         
     STA   TEMP1+1..C160: A5 BA     LOAD
     LDA   FA         ;GET ACTIVE DEVICE
 (DRIVE = 8).C162: 20 B1 FF           JS
R   LISTEN     ;AND COMMAND IT TO LISTEN
.C165: A9 6F              LDA   #$6F    
   ;OPEN COMMAND CHANNEL (15).C167: 20 9
3 FF           JSR   SECOND.C16A: A5 FD 
             LDA   TEMP1      ;PUT THE D
ESTINATION ADDRESS.C16C: A4 FE          
    LDY   TEMP1+1    ;FOR OUR M-W COMMAN
D INTO.C16E: 8D B0 C1           STA   MW
+3       ;THE MEMORY-WRITE STRING..C171:
 8C B1 C1           STY   MW+4.C174: A0 
00              LDY   #0.C176: B9 AD C1 
 LOOP     LDA   MW,Y       ;SEND THE 'M-
W' COMMAND.C179: 20 A8 FF           JSR 
  CIOUT      ;TO THE DRIVE..C17C: C8    
             INY.C17D: C0 06            
  CPY   #6.C17F: D0 F5              BNE 
  LOOP.C181: A0 00              LDY   #0
0        ;NOW SEND 32 BYTES OF THE DRIVE
.C183: B1 FB     LOOP1    LDA   (TEMP),Y
   ;PROGRAM FROM THE C64 TO THE 1541..C1
85: 20 A8 FF           JSR   CIOUT.C188:
 C8                 INY.C189: C0 20     
         CPY   #32.C18B: 90 F6          
    BCC   LOOP1..ADJUST THE POINTERS..C1
8D: A5 FB              LDA   TEMP       
;ADD 32 TO BOTH OUR TEMP AND TEMP1.C18F:
 69 1F              ADC   #31        ;PO
INTERS SO THAT OUR M-W AND C64.C191: 85 
FB              STA   TEMP       ;DRIVE 
PROGRAM ADDRESS IS INCREMENTED.C193: A5 
FC              LDA   TEMP+1     ;TO OUR
 NEXT 32 BYTE PAGE..C195: 69 00         
     ADC   #0.C197: 85 FC              S
TA   TEMP+1.C199: A5 FD              LDA
   TEMP1.C19B: 69 20              ADC   
#32.C19D: 85 FD              STA   TEMP1
.C19F: A5 FE              LDA   TEMP1+1.
C1A1: 69 00              ADC   #0.C1A3: 
85 FE              STA   TEMP1+1.C1A5: 2
0 AE FF           JSR   UNLSN.C1A8: C6 F
F              DEC   PAGE       ;ALL 32 
BYTE PAGES SENT?.C1AA: D0 B4            
  BNE   LOAD       ;NO-THEN GET MORE.C1A
C: 60                 RTS              ;
YES-THEN RETURN..C1AD: 4D 2D 57  MW     
  ASC   'M-W',00,00,20.C1B0: 00 00 20...
--END MERLIN-128 ASSEMBLY, 435 BYTES, ER
RORS: 0.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL