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

ZAP-LDER2.A1541

FILE INFORMATION

FILENAME(S): ZAP-LDER2.A1541

FILE TYPE(S): SEQ

FILE SIZE: 3.6K

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

APPEARS ON: 1 disk(s)

FILE HASH

790363bfb4a2dd0051c353afe5ccafab0fe0ab2eac34f98d4732328365136292

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
ICE ZAP-LDER2.A1541 SEQ Icebreaker 17 1 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 5A 41 50 2F 4C 4F 41  44 45 52 2C 20 31 35 34  |;ZAP/LOADER, 154|
00000010: 31 20 52 45 53 49 44 45  4E 54 20 43 4F 44 45 0D  |1 RESIDENT CODE.|
00000020: 3B 50 55 54 20 22 40 30  3A 5A 41 50 2D 4C 44 45  |;PUT "@0:ZAP-LDE|
00000030: 52 32 2E 41 31 35 34 31  22 0D 20 0D 3B 31 35 34  |R2.A1541". .;154|
00000040: 31 20 52 4F 4D 20 52 4F  55 54 49 4E 45 53 0D 4F  |1 ROM ROUTINES.O|
00000050: 50 39 35 20 20 3D 24 44  39 34 35 20 3B 53 45 54  |P95  =$D945 ;SET|
00000060: 20 55 50 20 27 46 49 4C  45 20 4E 4F 54 20 46 4F  | UP 'FILE NOT FO|
00000070: 55 4E 44 27 0D 43 4D 44  45 52 52 20 3D 24 43 31  |UND'.CMDERR =$C1|
00000080: 43 38 20 3B 43 4F 4D 4D  41 4E 44 20 45 52 52 4F  |C8 ;COMMAND ERRO|
00000090: 52 20 52 4F 55 54 49 4E  45 0D 43 4F 4E 48 44 52  |R ROUTINE.CONHDR|
000000A0: 20 3D 24 46 39 33 34 20  3B 43 4E 56 52 54 20 48  | =$F934 ;CNVRT H|
000000B0: 45 41 44 45 52 20 44 41  54 41 20 54 4F 20 47 43  |EADER DATA TO GC|
000000C0: 52 0D 47 43 52 42 49 4E  20 3D 24 46 38 45 30 20  |R.GCRBIN =$F8E0 |
000000D0: 3B 43 4E 56 52 54 20 44  41 54 41 20 42 49 4E 20  |;CNVRT DATA BIN |
000000E0: 54 4F 20 47 43 52 0D 43  48 4B 42 4C 4B 20 3D 24  |TO GCR.CHKBLK =$|
000000F0: 46 35 45 39 20 3B 43 41  4C 43 20 44 41 54 41 20  |F5E9 ;CALC DATA |
00000100: 43 48 4B 53 55 4D 0D 49  4E 49 54 44 52 20 3D 24  |CHKSUM.INITDR =$|
00000110: 44 30 34 32 20 3B 49 4E  49 54 49 41 4C 49 5A 45  |D042 ;INITIALIZE|
00000120: 20 44 52 49 56 45 0D 20  0D 3B 31 35 34 31 20 52  | DRIVE. .;1541 R|
00000130: 41 4D 20 26 20 49 2F 4F  0D 42 55 46 30 20 20 20  |AM & I/O.BUF0   |
00000140: 3D 24 30 33 30 30 0D 4A  4F 42 53 20 20 20 3D 24  |=$0300.JOBS   =$|
00000150: 30 30 0D 48 44 52 53 20  20 20 3D 24 30 36 0D 44  |00.HDRS   =$06.D|
00000160: 53 4B 49 44 20 20 3D 24  31 32 0D 48 45 41 44 45  |SKID  =$12.HEADE|
00000170: 52 20 3D 24 31 36 0D 53  54 41 42 20 20 20 3D 24  |R =$16.STAB   =$|
00000180: 32 34 0D 50 4E 54 52 20  20 20 3D 24 33 42 0D 43  |24.PNTR   =$3B.C|
00000190: 4F 55 4E 54 20 20 3D 24  34 42 0D 44 41 54 41 20  |OUNT  =$4B.DATA |
000001A0: 20 3D 24 38 35 0D 42 49  44 20 20 20 20 3D 24 33  | =$85.BID    =$3|
000001B0: 38 0D 44 42 49 44 20 20  20 3D 24 34 37 0D 42 55  |8.DBID   =$47.BU|
000001C0: 46 50 4E 54 20 3D 24 33  30 0D 48 44 52 50 4E 54  |FPNT =$30.HDRPNT|
000001D0: 20 3D 24 33 32 0D 43 48  4B 53 55 4D 20 3D 24 33  | =$32.CHKSUM =$3|
000001E0: 41 0D 45 52 52 4E 55 4D  20 3D 24 34 34 0D 50 42  |A.ERRNUM =$44.PB|
000001F0: 20 20 20 20 20 3D 24 31  38 30 30 0D 54 31 48 43  |     =$1800.T1HC|
00000200: 31 20 20 3D 24 31 38 30  35 0D 44 53 4B 43 4E 54  |1  =$1805.DSKCNT|
00000210: 20 3D 24 31 43 30 30 0D  44 41 54 41 32 20 20 3D  | =$1C00.DATA2  =|
00000220: 24 31 43 30 31 0D 50 43  52 32 20 20 20 3D 24 31  |$1C01.PCR2   =$1|
00000230: 43 30 43 0D 20 0D 3B 44  49 53 4B 20 4A 4F 42 20  |C0C. .;DISK JOB |
00000240: 43 4F 44 45 53 0D 53 45  45 4B 20 20 20 3D 24 42  |CODES.SEEK   =$B|
00000250: 30 0D 20 0D 20 2A 3D 24  30 35 30 30 0D 20 4A 53  |0. . *=$0500. JS|
00000260: 52 20 49 4E 49 54 44 52  0D 20 53 45 49 0D 20 4C  |R INITDR. SEI. L|
00000270: 44 41 20 23 24 31 35 0D  20 53 54 41 20 24 31 43  |DA #$15. STA $1C|
00000280: 30 37 20 3B 53 50 45 45  44 20 55 50 20 54 48 45  |07 ;SPEED UP THE|
00000290: 20 49 52 51 20 50 52 4F  43 45 53 53 0D 20 4C 44  | IRQ PROCESS. LD|
000002A0: 41 20 23 31 38 20 20 3B  42 45 47 49 4E 20 53 45  |A #18  ;BEGIN SE|
000002B0: 41 52 43 48 20 46 4F 52  20 44 49 52 45 43 54 4F  |ARCH FOR DIRECTO|
000002C0: 52 59 0D 20 4C 44 59 20  23 31 0D 20 53 54 41 20  |RY. LDY #1. STA |
000002D0: 42 55 46 30 0D 20 53 54  59 20 42 55 46 30 2B 31  |BUF0. STY BUF0+1|
000002E0: 0D 44 49 52 45 43 54 20  4A 53 52 20 52 44 53 45  |.DIRECT JSR RDSE|
000002F0: 43 54 0D 20 0D 3B 48 41  56 45 20 53 45 43 54 4F  |CT. .;HAVE SECTO|
00000300: 52 2C 20 53 45 41 52 43  48 20 49 54 20 46 4F 52  |R, SEARCH IT FOR|
00000310: 20 54 48 45 20 50 52 4F  50 45 52 20 45 4E 54 52  | THE PROPER ENTR|
00000320: 59 0D 20 4C 44 41 20 23  3E 42 55 46 30 0D 20 53  |Y. LDA #>BUF0. S|
00000330: 54 41 20 50 4E 54 52 2B  31 0D 20 4C 44 58 20 23  |TA PNTR+1. LDX #|
00000340: 30 0D 20 53 54 58 20 43  4F 55 4E 54 0D 20 42 45  |0. STX COUNT. BE|
00000350: 51 20 4E 58 54 4F 4E 31  0D 20 0D 53 45 41 52 43  |Q NXTON1. .SEARC|
00000360: 48 20 4C 44 59 20 23 30  0D 20 4C 44 41 20 28 50  |H LDY #0. LDA (P|
00000370: 4E 54 52 29 2C 59 0D 20  41 4E 44 20 23 25 31 30  |NTR),Y. AND #%10|
00000380: 31 31 31 31 31 31 20 3B  53 54 52 49 50 20 4F 46  |111111 ;STRIP OF|
00000390: 46 20 4C 4F 43 4B 20 42  49 54 0D 20 43 4D 50 20  |F LOCK BIT. CMP |
000003A0: 23 24 38 32 0D 20 42 4E  45 20 4E 58 54 4F 4E 45  |#$82. BNE NXTONE|
000003B0: 0D 20 49 4E 59 0D 20 49  4E 59 0D 20 49 4E 59 0D  |. INY. INY. INY.|
000003C0: 43 4F 4D 50 41 52 20 4C  44 41 20 46 49 4C 45 2D  |COMPAR LDA FILE-|
000003D0: 33 2C 59 0D 20 43 4D 50  20 23 27 2A 27 0D 20 42  |3,Y. CMP #'*'. B|
000003E0: 45 51 20 47 4F 54 49 54  0D 20 43 4D 50 20 23 27  |EQ GOTIT. CMP #'|
000003F0: 3F 27 0D 20 42 45 51 20  43 4F 4D 50 52 31 0D 20  |?'. BEQ COMPR1. |
00000400: 0D 20 43 4D 50 20 28 50  4E 54 52 29 2C 59 0D 20  |. CMP (PNTR),Y. |
00000410: 42 4E 45 20 4E 58 54 4F  4E 45 0D 43 4F 4D 50 52  |BNE NXTONE.COMPR|
00000420: 31 20 49 4E 59 0D 20 43  50 59 20 23 31 38 0D 20  |1 INY. CPY #18. |
00000430: 42 45 51 20 47 4F 54 49  54 0D 20 42 4E 45 20 43  |BEQ GOTIT. BNE C|
00000440: 4F 4D 50 41 52 0D 20 20  0D 4E 58 54 4F 4E 45 20  |OMPAR.  .NXTONE |
00000450: 49 4E 43 20 43 4F 55 4E  54 0D 20 4C 44 58 20 43  |INC COUNT. LDX C|
00000460: 4F 55 4E 54 0D 20 43 50  58 20 23 38 0D 20 42 45  |OUNT. CPX #8. BE|
00000470: 51 20 4E 58 54 4F 4E 32  0D 20 0D 4E 58 54 4F 4E  |Q NXTON2. .NXTON|
00000480: 31 20 4C 44 41 20 4F 46  46 53 45 54 2C 58 0D 20  |1 LDA OFFSET,X. |
00000490: 53 54 41 20 50 4E 54 52  0D 20 42 4E 45 20 53 45  |STA PNTR. BNE SE|
000004A0: 41 52 43 48 0D 20 0D 4E  58 54 4F 4E 32 20 4C 44  |ARCH. .NXTON2 LD|
000004B0: 41 20 42 55 46 30 0D 20  42 45 51 20 44 4F 4E 45  |A BUF0. BEQ DONE|
000004C0: 0D 20 4C 44 59 20 42 55  46 30 2B 31 0D 20 4A 4D  |. LDY BUF0+1. JM|
000004D0: 50 20 44 49 52 45 43 54  0D 20 0D 3B 44 49 44 20  |P DIRECT. .;DID |
000004E0: 4E 4F 54 20 46 49 4E 44  20 41 4E 20 45 4E 54 52  |NOT FIND AN ENTR|
000004F0: 59 0D 44 4F 4E 45 20 4C  44 41 20 23 24 46 46 20  |Y.DONE LDA #$FF |
00000500: 3B 54 45 4C 4C 20 54 48  45 20 36 34 0D 20 53 54  |;TELL THE 64. ST|
00000510: 41 20 42 55 46 30 20 20  20 20 20 3B 54 48 45 52  |A BUF0     ;THER|
00000520: 45 20 57 41 53 20 41 4E  20 45 52 52 4F 52 0D 20  |E WAS AN ERROR. |
00000530: 4A 53 52 20 58 4D 49 54  36 34 0D 20 4C 44 41 20  |JSR XMIT64. LDA |
00000540: 23 24 33 41 0D 20 53 54  41 20 24 31 43 30 37 20  |#$3A. STA $1C07 |
00000550: 3B 52 45 53 54 4F 52 45  20 4E 4F 52 4D 41 4C 20  |;RESTORE NORMAL |
00000560: 49 52 51 20 54 49 4D 45  0D 20 43 4C 49 0D 20 4A  |IRQ TIME. CLI. J|
00000570: 4D 50 20 4F 50 39 35 0D  20 0D 4F 46 46 53 45 54  |MP OP95. .OFFSET|
00000580: 20 2E 42 59 54 45 20 24  32 2C 24 32 32 2C 24 34  | .BYTE $2,$22,$4|
00000590: 32 2C 24 36 32 2C 24 38  32 2C 24 41 32 2C 24 43  |2,$62,$82,$A2,$C|
000005A0: 32 2C 24 45 32 0D 20 0D  3B 57 45 20 48 41 56 45  |2,$E2. .;WE HAVE|
000005B0: 20 41 20 4D 41 54 43 48  21 21 21 21 0D 47 4F 54  | A MATCH!!!!.GOT|
000005C0: 49 54 20 49 4E 43 20 50  4E 54 52 0D 20 4C 44 59  |IT INC PNTR. LDY|
000005D0: 20 23 30 0D 20 4C 44 41  20 28 50 4E 54 52 29 2C  | #0. LDA (PNTR),|
000005E0: 59 0D 20 53 54 41 20 42  55 46 30 0D 20 49 4E 59  |Y. STA BUF0. INY|
000005F0: 0D 20 4C 44 41 20 28 50  4E 54 52 29 2C 59 0D 20  |. LDA (PNTR),Y. |
00000600: 53 54 41 20 42 55 46 30  2B 31 0D 47 4F 54 4F 49  |STA BUF0+1.GOTOI|
00000610: 54 20 4A 53 52 20 52 44  53 45 43 54 0D 20 4A 53  |T JSR RDSECT. JS|
00000620: 52 20 58 4D 49 54 36 34  0D 20 4C 44 41 20 42 55  |R XMIT64. LDA BU|
00000630: 46 30 0D 20 42 4E 45 20  47 4F 54 4F 49 54 0D 20  |F0. BNE GOTOIT. |
00000640: 0D 20 4C 44 41 20 23 24  33 41 0D 20 53 54 41 20  |. LDA #$3A. STA |
00000650: 24 31 43 30 37 0D 41 4C  4C 44 55 4E 20 52 54 53  |$1C07.ALLDUN RTS|
00000660: 0D 20 0D 3B 54 52 41 4E  53 4D 49 54 54 20 54 48  |. .;TRANSMITT TH|
00000670: 45 20 42 55 46 46 45 52  20 54 4F 20 54 48 45 20  |E BUFFER TO THE |
00000680: 36 34 0D 58 4D 49 54 36  34 20 4C 44 59 20 23 30  |64.XMIT64 LDY #0|
00000690: 0D 58 4D 49 54 30 33 20  4C 44 41 20 42 55 46 30  |.XMIT03 LDA BUF0|
000006A0: 2C 59 0D 20 0D 3B 5A 41  50 20 41 20 42 59 54 45  |,Y. .;ZAP A BYTE|
000006B0: 20 54 4F 20 54 48 45 20  36 34 0D 5A 41 50 20 53  | TO THE 64.ZAP S|
000006C0: 54 41 20 44 41 54 41 20  3B 53 41 56 45 20 44 41  |TA DATA ;SAVE DA|
000006D0: 54 41 0D 20 4C 44 41 20  23 25 30 30 30 30 30 30  |TA. LDA #%000000|
000006E0: 31 30 20 3B 44 41 54 41  20 4C 4F 57 2C 20 43 4C  |10 ;DATA LOW, CL|
000006F0: 4B 20 48 49 47 48 0D 20  53 54 41 20 50 42 0D 5A  |K HIGH. STA PB.Z|
00000700: 41 50 30 31 20 4C 44 41  20 50 42 0D 20 41 4E 44  |AP01 LDA PB. AND|
00000710: 20 23 34 0D 20 42 45 51  20 5A 41 50 30 31 0D 20  | #4. BEQ ZAP01. |
00000720: 4C 44 41 20 23 30 20 20  3B 50 55 4C 4C 20 44 41  |LDA #0  ;PULL DA|
00000730: 54 41 2C 43 4C 4B 20 48  49 47 48 0D 20 53 54 41  |TA,CLK HIGH. STA|
00000740: 20 50 42 0D 20 4C 44 58  20 23 34 20 20 20 3B 20  | PB. LDX #4   ; |
00000750: 4F 4B 20 53 45 4E 44 20  34 20 58 20 32 20 42 49  |OK SEND 4 X 2 BI|
00000760: 54 53 0D 5A 41 50 33 20  4C 44 41 20 23 30 0D 20  |TS.ZAP3 LDA #0. |
00000770: 41 53 4C 20 44 41 54 41  0D 20 52 4F 4C 20 41 0D  |ASL DATA. ROL A.|
00000780: 20 41 53 4C 20 41 0D 20  41 53 4C 20 44 41 54 41  | ASL A. ASL DATA|
00000790: 0D 20 52 4F 4C 20 41 0D  20 41 53 4C 20 41 0D 20  |. ROL A. ASL A. |
000007A0: 53 54 41 20 50 42 0D 20  44 45 58 0D 20 42 4E 45  |STA PB. DEX. BNE|
000007B0: 20 5A 41 50 33 0D 3B 57  41 49 54 20 46 4F 52 20  | ZAP3.;WAIT FOR |
000007C0: 36 34 20 54 4F 20 47 45  54 20 4C 41 53 54 20 32  |64 TO GET LAST 2|
000007D0: 20 42 49 54 53 0D 20 50  48 41 20 20 3B 57 41 49  | BITS. PHA  ;WAI|
000007E0: 54 20 4F 55 54 20 31 34  20 43 59 43 4C 45 53 0D  |T OUT 14 CYCLES.|
000007F0: 20 50 4C 41 0D 20 50 48  41 0D 20 50 4C 41 0D 20  | PLA. PHA. PLA. |
00000800: 4C 44 41 20 23 30 0D 20  53 54 41 20 50 42 20 3B  |LDA #0. STA PB ;|
00000810: 43 4C 4F 43 4B 2C 20 44  41 54 41 20 48 49 47 48  |CLOCK, DATA HIGH|
00000820: 0D 20 0D 20 49 4E 59 0D  20 42 4E 45 20 58 4D 49  |. . INY. BNE XMI|
00000830: 54 30 33 0D 20 52 54 53  0D 20 0D 20 0D 3B 52 45  |T03. RTS. . .;RE|
00000840: 41 44 20 41 20 53 45 43  54 4F 52 20 49 4E 54 4F  |AD A SECTOR INTO|
00000850: 20 42 55 46 30 0D 52 44  53 45 43 54 20 4C 44 59  | BUF0.RDSECT LDY|
00000860: 20 42 55 46 30 2B 31 0D  20 53 54 59 20 48 44 52  | BUF0+1. STY HDR|
00000870: 53 2B 31 0D 20 4C 44 41  20 42 55 46 30 0D 20 43  |S+1. LDA BUF0. C|
00000880: 4D 50 20 48 44 52 53 20  3B 43 48 4B 20 46 4F 52  |MP HDRS ;CHK FOR|
00000890: 20 4E 45 57 20 54 52 41  43 4B 0D 20 50 48 50 0D  | NEW TRACK. PHP.|
000008A0: 20 53 54 41 20 48 44 52  53 0D 20 50 4C 50 0D 20  | STA HDRS. PLP. |
000008B0: 42 45 51 20 52 53 45 43  54 30 0D 20 4C 44 41 20  |BEQ RSECT0. LDA |
000008C0: 23 53 45 45 4B 20 3B 47  4F 20 53 45 45 4B 20 54  |#SEEK ;GO SEEK T|
000008D0: 48 45 20 4E 45 57 20 54  52 41 43 4B 0D 44 4F 4A  |HE NEW TRACK.DOJ|
000008E0: 4F 42 20 53 54 41 20 4A  4F 42 53 0D 20 43 4C 49  |OB STA JOBS. CLI|
000008F0: 0D 44 4F 4A 4F 42 31 20  42 49 54 20 4A 4F 42 53  |.DOJOB1 BIT JOBS|
00000900: 0D 20 42 4D 49 20 44 4F  4A 4F 42 31 0D 20 53 45  |. BMI DOJOB1. SE|
00000910: 49 0D 20 4C 44 41 20 4A  4F 42 53 0D 20 43 4D 50  |I. LDA JOBS. CMP|
00000920: 20 23 24 30 31 0D 20 42  4E 45 20 4A 4F 42 45 52  | #$01. BNE JOBER|
00000930: 52 0D 20 0D 3B 4E 4F 57  20 52 45 41 44 20 49 4E  |R. .;NOW READ IN|
00000940: 20 54 48 45 20 53 45 43  54 4F 52 0D 52 53 45 43  | THE SECTOR.RSEC|
00000950: 54 30 20 4C 44 41 20 23  24 45 45 0D 20 53 54 41  |T0 LDA #$EE. STA|
00000960: 20 50 43 52 32 20 3B 52  45 41 44 20 26 20 45 4E  | PCR2 ;READ & EN|
00000970: 41 42 4C 45 20 53 59 4E  43 48 0D 20 4C 44 41 20  |ABLE SYNCH. LDA |
00000980: 23 36 0D 20 53 54 41 20  48 44 52 50 4E 54 0D 20  |#6. STA HDRPNT. |
00000990: 4C 44 41 20 23 30 0D 20  53 54 41 20 48 44 52 50  |LDA #0. STA HDRP|
000009A0: 4E 54 2B 31 0D 20 53 54  41 20 42 55 46 50 4E 54  |NT+1. STA BUFPNT|
000009B0: 0D 20 4C 44 41 20 23 3E  42 55 46 30 0D 20 53 54  |. LDA #>BUF0. ST|
000009C0: 41 20 42 55 46 50 4E 54  2B 31 0D 20 20 0D 20 4A  |A BUFPNT+1.  . J|
000009D0: 53 52 20 44 53 54 52 54  0D 52 44 53 43 54 31 20  |SR DSTRT.RDSCT1 |
000009E0: 42 56 43 20 52 44 53 43  54 31 0D 20 43 4C 56 0D  |BVC RDSCT1. CLV.|
000009F0: 20 4C 44 41 20 44 41 54  41 32 0D 20 53 54 41 20  | LDA DATA2. STA |
00000A00: 42 55 46 30 2C 59 0D 20  49 4E 59 0D 20 42 4E 45  |BUF0,Y. INY. BNE|
00000A10: 20 52 44 53 43 54 31 0D  20 4C 44 59 20 23 24 42  | RDSCT1. LDY #$B|
00000A20: 41 0D 52 44 53 43 54 32  20 42 56 43 20 52 44 53  |A.RDSCT2 BVC RDS|
00000A30: 43 54 32 0D 20 43 4C 56  0D 20 4C 44 41 20 44 41  |CT2. CLV. LDA DA|
00000A40: 54 41 32 0D 20 53 54 41  20 24 30 31 30 30 2C 59  |TA2. STA $0100,Y|
00000A50: 0D 20 49 4E 59 0D 20 42  4E 45 20 52 44 53 43 54  |. INY. BNE RDSCT|
00000A60: 32 0D 20 4A 53 52 20 47  43 52 42 49 4E 0D 20 4C  |2. JSR GCRBIN. L|
00000A70: 44 41 20 42 49 44 0D 20  43 4D 50 20 44 42 49 44  |DA BID. CMP DBID|
00000A80: 0D 20 42 45 51 20 52 44  53 43 54 33 0D 20 4C 44  |. BEQ RDSCT3. LD|
00000A90: 41 20 23 24 32 32 0D 20  42 4E 45 20 45 52 52 4F  |A #$22. BNE ERRO|
00000AA0: 52 0D 20 20 0D 52 44 53  43 54 33 20 4A 53 52 20  |R.  .RDSCT3 JSR |
00000AB0: 43 48 4B 42 4C 4B 0D 20  43 4D 50 20 43 48 4B 53  |CHKBLK. CMP CHKS|
00000AC0: 55 4D 0D 20 42 45 51 20  52 44 53 43 54 34 0D 20  |UM. BEQ RDSCT4. |
00000AD0: 4C 44 41 20 23 24 32 33  0D 20 42 4E 45 20 45 52  |LDA #$23. BNE ER|
00000AE0: 52 4F 52 0D 20 0D 52 44  53 43 54 34 20 4C 44 41  |ROR. .RDSCT4 LDA|
00000AF0: 20 23 24 45 43 0D 20 53  54 41 20 50 43 52 32 0D  | #$EC. STA PCR2.|
00000B00: 20 52 54 53 0D 20 0D 4A  4F 42 45 52 52 20 43 4C  | RTS. .JOBERR CL|
00000B10: 43 0D 20 41 44 43 20 23  24 31 38 0D 45 52 52 4F  |C. ADC #$18.ERRO|
00000B20: 52 20 53 54 41 20 45 52  52 4E 55 4D 0D 20 4C 44  |R STA ERRNUM. LD|
00000B30: 41 20 23 24 46 46 0D 20  53 54 41 20 42 55 46 30  |A #$FF. STA BUF0|
00000B40: 0D 20 4A 53 52 20 58 4D  49 54 36 34 0D 20 4C 44  |. JSR XMIT64. LD|
00000B50: 41 20 23 24 33 41 0D 20  53 54 41 20 24 31 43 30  |A #$3A. STA $1C0|
00000B60: 37 0D 20 4C 44 41 20 45  52 52 4E 55 4D 0D 20 4A  |7. LDA ERRNUM. J|
00000B70: 4D 50 20 43 4D 44 45 52  52 0D 20 0D 3B 46 49 4E  |MP CMDERR. .;FIN|
00000B80: 44 20 44 45 53 49 52 45  44 20 53 45 43 54 4F 52  |D DESIRED SECTOR|
00000B90: 0D 44 53 54 52 54 20 4A  53 52 20 53 52 43 48 0D  |.DSTRT JSR SRCH.|
00000BA0: 20 4A 4D 50 20 53 59 4E  43 48 0D 3B 53 45 41 52  | JMP SYNCH.;SEAR|
00000BB0: 43 48 20 46 4F 52 20 41  20 53 50 45 43 49 46 49  |CH FOR A SPECIFI|
00000BC0: 43 20 48 45 41 44 45 52  0D 53 52 43 48 20 4C 44  |C HEADER.SRCH LD|
00000BD0: 41 20 44 53 4B 49 44 0D  20 53 54 41 20 48 45 41  |A DSKID. STA HEA|
00000BE0: 44 45 52 0D 20 4C 44 41  20 44 53 4B 49 44 2B 31  |DER. LDA DSKID+1|
00000BF0: 0D 20 53 54 41 20 48 45  41 44 45 52 2B 31 0D 20  |. STA HEADER+1. |
00000C00: 4C 44 41 20 48 44 52 53  0D 20 53 54 41 20 48 45  |LDA HDRS. STA HE|
00000C10: 41 44 45 52 2B 32 0D 20  4C 44 41 20 48 44 52 53  |ADER+2. LDA HDRS|
00000C20: 2B 31 0D 20 53 54 41 20  48 45 41 44 45 52 2B 33  |+1. STA HEADER+3|
00000C30: 0D 20 4C 44 41 20 23 30  30 0D 20 45 4F 52 20 48  |. LDA #00. EOR H|
00000C40: 45 41 44 45 52 0D 20 45  4F 52 20 48 45 41 44 45  |EADER. EOR HEADE|
00000C50: 52 2B 31 0D 20 45 4F 52  20 48 45 41 44 45 52 2B  |R+1. EOR HEADER+|
00000C60: 32 0D 20 45 4F 52 20 48  45 41 44 45 52 2B 33 0D  |2. EOR HEADER+3.|
00000C70: 20 53 54 41 20 48 45 41  44 45 52 2B 34 0D 20 4A  | STA HEADER+4. J|
00000C80: 53 52 20 43 4F 4E 48 44  52 20 3B 43 4F 4E 56 45  |SR CONHDR ;CONVE|
00000C90: 52 54 20 54 4F 20 47 43  52 2C 20 50 55 54 20 49  |RT TO GCR, PUT I|
00000CA0: 4E 20 53 54 41 42 0D 20  4C 44 58 20 23 24 35 41  |N STAB. LDX #$5A|
00000CB0: 20 3B 54 52 59 20 39 30  20 54 49 4D 45 53 0D 53  | ;TRY 90 TIMES.S|
00000CC0: 52 43 48 31 20 4A 53 52  20 53 59 4E 43 48 0D 53  |RCH1 JSR SYNCH.S|
00000CD0: 52 43 48 32 20 42 56 43  20 53 52 43 48 32 0D 20  |RCH2 BVC SRCH2. |
00000CE0: 43 4C 56 0D 20 4C 44 41  20 44 41 54 41 32 0D 20  |CLV. LDA DATA2. |
00000CF0: 43 4D 50 20 53 54 41 42  2C 59 0D 20 42 4E 45 20  |CMP STAB,Y. BNE |
00000D00: 53 52 43 48 33 0D 20 49  4E 59 0D 20 43 50 59 20  |SRCH3. INY. CPY |
00000D10: 23 38 0D 20 42 4E 45 20  53 52 43 48 32 0D 20 52  |#8. BNE SRCH2. R|
00000D20: 54 53 0D 20 0D 53 52 43  48 33 20 44 45 58 0D 20  |TS. .SRCH3 DEX. |
00000D30: 42 4E 45 20 53 52 43 48  31 0D 20 4C 44 41 20 23  |BNE SRCH1. LDA #|
00000D40: 24 32 30 0D 20 42 4E 45  20 45 52 52 4F 52 0D 20  |$20. BNE ERROR. |
00000D50: 0D 3B 57 41 49 54 20 32  30 20 4D 53 20 46 4F 52  |.;WAIT 20 MS FOR|
00000D60: 20 41 20 53 59 4E 43 48  20 4D 41 52 4B 0D 53 59  | A SYNCH MARK.SY|
00000D70: 4E 43 48 20 4C 44 41 20  23 24 44 30 0D 20 53 54  |NCH LDA #$D0. ST|
00000D80: 41 20 54 31 48 43 31 0D  20 4C 44 41 20 23 24 32  |A T1HC1. LDA #$2|
00000D90: 31 20 3B 53 45 54 20 55  50 20 45 52 52 4F 52 20  |1 ;SET UP ERROR |
00000DA0: 4D 53 47 0D 53 59 4E 43  48 31 20 42 49 54 20 54  |MSG.SYNCH1 BIT T|
00000DB0: 31 48 43 31 0D 20 42 50  4C 20 45 52 52 4F 52 0D  |1HC1. BPL ERROR.|
00000DC0: 20 42 49 54 20 44 53 4B  43 4E 54 0D 20 42 4D 49  | BIT DSKCNT. BMI|
00000DD0: 20 53 59 4E 43 48 31 0D  20 4C 44 41 20 44 41 54  | SYNCH1. LDA DAT|
00000DE0: 41 32 0D 20 43 4C 56 0D  20 4C 44 59 20 23 30 30  |A2. CLV. LDY #00|
00000DF0: 0D 20 52 54 53 0D 46 49  4C 45 20 2E 42 59 54 45  |. RTS.FILE .BYTE|
00000E00: 20 24 41 30 2C 24 41 30  2C 24 41 30 2C 24 41 30  | $A0,$A0,$A0,$A0|
00000E10: 2C 24 41 30 2C 24 41 30  0D 20 20 20 20 20 2E 42  |,$A0,$A0.     .B|
00000E20: 59 54 45 20 24 41 30 2C  24 41 30 2C 24 41 30 2C  |YTE $A0,$A0,$A0,|
00000E30: 24 41 30 2C 24 41 30 2C  24 41 30 0D 20 20 20 20  |$A0,$A0,$A0.    |
00000E40: 20 2E 42 59 54 45 20 24  41 30 2C 24 41 30 2C 24  | .BYTE $A0,$A0,$|
00000E50: 41 30 2C 24 41 30 0D 2E  45 4E 44 0D              |A0,$A0..END.    |
;ZAP/LOADER, 1541 RESIDENT CODE.;PUT "@0
:ZAP-LDER2.A1541". .;1541 ROM ROUTINES.O
P95  =$D945 ;SET UP 'FILE NOT FOUND'.CMD
ERR =$C1C8 ;COMMAND ERROR ROUTINE.CONHDR
 =$F934 ;CNVRT HEADER DATA TO GCR.GCRBIN
 =$F8E0 ;CNVRT DATA BIN TO GCR.CHKBLK =$
F5E9 ;CALC DATA CHKSUM.INITDR =$D042 ;IN
ITIALIZE DRIVE. .;1541 RAM & I/O.BUF0   
=$0300.JOBS   =$00.HDRS   =$06.DSKID  =$
12.HEADER =$16.STAB   =$24.PNTR   =$3B.C
OUNT  =$4B.DATA  =$85.BID    =$38.DBID  
 =$47.BUFPNT =$30.HDRPNT =$32.CHKSUM =$3
A.ERRNUM =$44.PB     =$1800.T1HC1  =$180
5.DSKCNT =$1C00.DATA2  =$1C01.PCR2   =$1
C0C. .;DISK JOB CODES.SEEK   =$B0. . *=$
0500. JSR INITDR. SEI. LDA #$15. STA $1C
07 ;SPEED UP THE IRQ PROCESS. LDA #18  ;
BEGIN SEARCH FOR DIRECTORY. LDY #1. STA 
BUF0. STY BUF0+1.DIRECT JSR RDSECT. .;HA
VE SECTOR, SEARCH IT FOR THE PROPER ENTR
Y. LDA #>BUF0. STA PNTR+1. LDX #0. STX C
OUNT. BEQ NXTON1. .SEARCH LDY #0. LDA (P
NTR),Y. AND #%10111111 ;STRIP OFF LOCK B
IT. CMP #$82. BNE NXTONE. INY. INY. INY.
COMPAR LDA FILE-3,Y. CMP #'*'. BEQ GOTIT
. CMP #'?'. BEQ COMPR1. . CMP (PNTR),Y. 
BNE NXTONE.COMPR1 INY. CPY #18. BEQ GOTI
T. BNE COMPAR.  .NXTONE INC COUNT. LDX C
OUNT. CPX #8. BEQ NXTON2. .NXTON1 LDA OF
FSET,X. STA PNTR. BNE SEARCH. .NXTON2 LD
A BUF0. BEQ DONE. LDY BUF0+1. JMP DIRECT
. .;DID NOT FIND AN ENTRY.DONE LDA #$FF 
;TELL THE 64. STA BUF0     ;THERE WAS AN
 ERROR. JSR XMIT64. LDA #$3A. STA $1C07 
;RESTORE NORMAL IRQ TIME. CLI. JMP OP95.
 .OFFSET .BYTE $2,$22,$42,$62,$82,$A2,$C
2,$E2. .;WE HAVE A MATCH!!!!.GOTIT INC P
NTR. LDY #0. LDA (PNTR),Y. STA BUF0. INY
. LDA (PNTR),Y. STA BUF0+1.GOTOIT JSR RD
SECT. JSR XMIT64. LDA BUF0. BNE GOTOIT. 
. LDA #$3A. STA $1C07.ALLDUN RTS. .;TRAN
SMITT THE BUFFER TO THE 64.XMIT64 LDY #0
.XMIT03 LDA BUF0,Y. .;ZAP A BYTE TO THE 
64.ZAP STA DATA ;SAVE DATA. LDA #%000000
10 ;DATA LOW, CLK HIGH. STA PB.ZAP01 LDA
 PB. AND #4. BEQ ZAP01. LDA #0  ;PULL DA
TA,CLK HIGH. STA PB. LDX #4   ; OK SEND 
4 X 2 BITS.ZAP3 LDA #0. ASL DATA. ROL A.
 ASL A. ASL DATA. ROL A. ASL A. STA PB. 
DEX. BNE ZAP3.;WAIT FOR 64 TO GET LAST 2
 BITS. PHA  ;WAIT OUT 14 CYCLES. PLA. PH
A. PLA. LDA #0. STA PB ;CLOCK, DATA HIGH
. . INY. BNE XMIT03. RTS. . .;READ A SEC
TOR INTO BUF0.RDSECT LDY BUF0+1. STY HDR
S+1. LDA BUF0. CMP HDRS ;CHK FOR NEW TRA
CK. PHP. STA HDRS. PLP. BEQ RSECT0. LDA 
#SEEK ;GO SEEK THE NEW TRACK.DOJOB STA J
OBS. CLI.DOJOB1 BIT JOBS. BMI DOJOB1. SE
I. LDA JOBS. CMP #$01. BNE JOBERR. .;NOW
 READ IN THE SECTOR.RSECT0 LDA #$EE. STA
 PCR2 ;READ & ENABLE SYNCH. LDA #6. STA 
HDRPNT. LDA #0. STA HDRPNT+1. STA BUFPNT
. LDA #>BUF0. STA BUFPNT+1.  . JSR DSTRT
.RDSCT1 BVC RDSCT1. CLV. LDA DATA2. STA 
BUF0,Y. INY. BNE RDSCT1. LDY #$BA.RDSCT2
 BVC RDSCT2. CLV. LDA DATA2. STA $0100,Y
. INY. BNE RDSCT2. JSR GCRBIN. LDA BID. 
CMP DBID. BEQ RDSCT3. LDA #$22. BNE ERRO
R.  .RDSCT3 JSR CHKBLK. CMP CHKSUM. BEQ 
RDSCT4. LDA #$23. BNE ERROR. .RDSCT4 LDA
 #$EC. STA PCR2. RTS. .JOBERR CLC. ADC #
$18.ERROR STA ERRNUM. LDA #$FF. STA BUF0
. JSR XMIT64. LDA #$3A. STA $1C07. LDA E
RRNUM. JMP CMDERR. .;FIND DESIRED SECTOR
.DSTRT JSR SRCH. JMP SYNCH.;SEARCH FOR A
 SPECIFIC HEADER.SRCH LDA DSKID. STA HEA
DER. LDA DSKID+1. STA HEADER+1. LDA HDRS
. STA HEADER+2. LDA HDRS+1. STA HEADER+3
. LDA #00. EOR HEADER. EOR HEADER+1. EOR
 HEADER+2. EOR HEADER+3. STA HEADER+4. J
SR CONHDR ;CONVERT TO GCR, PUT IN STAB. 
LDX #$5A ;TRY 90 TIMES.SRCH1 JSR SYNCH.S
RCH2 BVC SRCH2. CLV. LDA DATA2. CMP STAB
,Y. BNE SRCH3. INY. CPY #8. BNE SRCH2. R
TS. .SRCH3 DEX. BNE SRCH1. LDA #$20. BNE
 ERROR. .;WAIT 20 MS FOR A SYNCH MARK.SY
NCH LDA #$D0. STA T1HC1. LDA #$21 ;SET U
P ERROR MSG.SYNCH1 BIT T1HC1. BPL ERROR.
 BIT DSKCNT. BMI SYNCH1. LDA DATA2. CLV.
 LDY #00. RTS.FILE .BYTE $A0,$A0,$A0,$A0
,$A0,$A0.     .BYTE $A0,$A0,$A0,$A0,$A0,
$A0.     .BYTE $A0,$A0,$A0,$A0..END.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL