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 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL