QV←LOAD
FILE INFORMATION
FILENAME(S): QV←LOAD
FILE TYPE(S): USR
FILE SIZE: 3.6K
FIRST SEEN: 2025-10-20 14:31:15
APPEARS ON: 1 disk(s)
FILE HASH
a4907b7546f16b2a0ffcdbec341c134daef907daa8d3f316ea70ec827ce7e5c5
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| C | QV←LOAD | USR | Treasure Chest - Klaus Der Suhler | 24 | 9 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 3B 20 4C 4F 41 44 20 52 4F 55 54 49 4E 45 00 3B |; LOAD ROUTINE.;| 00000010: 20 52 6F 75 74 69 6E 65 20 66 6F 72 20 51 75 69 | Routine for Qui| 00000020: 63 6B 56 69 65 77 2C 20 6C 6F 61 64 73 20 61 6E |ckView, loads an| 00000030: 64 20 72 65 6C 6F 61 64 73 20 62 75 66 66 65 72 |d reloads buffer| 00000040: 20 66 6F 72 00 3B 20 67 65 6F 57 72 69 74 65 20 | for.; geoWrite | 00000050: 49 6D 61 67 65 20 66 69 6C 65 73 2E 00 4C 4F 41 |Image files..LOA| 00000060: 44 00 6A 73 72 20 69 5F 49 6D 70 72 69 6E 74 52 |D.jsr i_ImprintR| 00000070: 65 63 74 61 6E 67 6C 65 00 2E 42 79 74 65 20 30 |ectangle..Byte 0| 00000080: 2C 31 39 39 00 2E 57 6F 72 64 20 30 2C 33 31 39 |,199..Word 0,319| 00000090: 00 00 20 6C 64 61 20 23 30 00 20 73 74 61 20 45 |.. lda #0. sta E| 000000A0: 78 69 74 42 79 74 65 00 20 73 74 61 20 43 75 72 |xitByte. sta Cur| 000000B0: 52 65 63 6F 72 64 00 20 6A 73 72 20 54 65 73 74 |Record. jsr Test| 000000C0: 44 72 69 76 65 00 20 4C 44 41 20 43 61 6E 63 65 |Drive. LDA Cance| 000000D0: 6C 46 6C 61 67 00 20 43 4D 50 20 23 32 00 20 42 |lFlag. CMP #2. B| 000000E0: 45 51 20 40 4C 4F 4C 4F 33 58 00 20 4C 44 41 20 |EQ @LOLO3X. LDA | 000000F0: 46 4E 41 4D 45 00 20 42 45 51 20 40 4C 4F 4C 4F |FNAME. BEQ @LOLO| 00000100: 33 58 00 20 4A 53 52 20 53 45 54 55 50 4D 00 20 |3X. JSR SETUPM. | 00000110: 52 54 53 00 40 4C 4F 4C 4F 33 58 00 20 4C 44 41 |RTS.@LOLO3X. LDA| 00000120: 20 23 32 00 20 53 54 41 20 43 61 6E 63 65 6C 46 | #2. STA CancelF| 00000130: 6C 61 67 00 20 52 54 53 00 3B 3D 3D 3D 3D 00 3B |lag. RTS.;====.;| 00000140: 20 44 52 49 56 45 2F 44 49 53 4B 20 73 77 69 74 | DRIVE/DISK swit| 00000150: 63 68 69 6E 67 20 72 6F 75 74 69 6E 65 73 2E 00 |ching routines..| 00000160: 3B 20 74 65 73 74 20 68 65 72 65 20 66 6F 72 20 |; test here for | 00000170: 73 69 7A 65 00 54 65 73 74 44 72 69 76 65 00 20 |size.TestDrive. | 00000180: 4C 44 41 20 23 30 00 20 53 54 41 20 46 4E 41 4D |LDA #0. STA FNAM| 00000190: 45 00 40 56 6C 31 00 6C 64 61 20 23 30 00 73 74 |E.@Vl1.lda #0.st| 000001A0: 61 20 43 61 6E 63 65 6C 46 6C 61 67 00 20 6A 73 |a CancelFlag. js| 000001B0: 72 20 44 72 69 76 65 49 6E 66 6F 00 6C 6F 61 64 |r DriveInfo.load| 000001C0: 77 20 52 30 3A 76 6E 44 42 00 6C 6F 61 64 77 20 |w R0:vnDB.loadw | 000001D0: 52 35 3A 46 4E 41 4D 45 00 6C 6F 61 64 77 20 52 |R5:FNAME.loadw R| 000001E0: 31 30 3A 64 74 61 69 6D 67 00 20 6C 64 61 20 23 |10:dtaimg. lda #| 000001F0: 37 00 20 73 74 61 20 52 37 00 20 4A 53 52 20 24 |7. sta R7. JSR $| 00000200: 43 32 35 36 00 20 4C 44 41 20 52 30 00 20 43 4D |C256. LDA R0. CM| 00000210: 50 20 23 32 00 20 42 4E 45 20 40 76 6E 45 58 49 |P #2. BNE @vnEXI| 00000220: 54 00 20 53 54 41 20 43 61 6E 63 65 6C 46 6C 61 |T. STA CancelFla| 00000230: 67 00 20 52 54 53 00 00 40 76 6E 45 58 49 54 00 |g. RTS..@vnEXIT.| 00000240: 20 63 6D 70 20 23 32 30 00 20 62 6E 65 20 40 56 | cmp #20. bne @V| 00000250: 4E 31 00 20 6A 73 72 20 43 68 61 6E 67 65 44 72 |N1. jsr ChangeDr| 00000260: 69 76 65 00 20 62 72 61 6E 63 68 20 40 56 6C 31 |ive. branch @Vl1| 00000270: 00 00 40 56 4E 31 00 20 63 6D 70 20 23 36 00 20 |..@VN1. cmp #6. | 00000280: 62 6E 65 20 40 56 4E 32 00 20 6A 73 72 20 43 68 |bne @VN2. jsr Ch| 00000290: 61 6E 67 65 44 69 73 6B 00 20 6C 64 61 20 43 61 |angeDisk. lda Ca| 000002A0: 6E 63 65 6C 46 6C 61 67 00 20 63 6D 70 20 23 32 |ncelFlag. cmp #2| 000002B0: 00 20 62 65 71 20 40 56 4E 32 00 20 62 72 61 6E |. beq @VN2. bran| 000002C0: 63 68 20 40 56 6C 31 00 00 40 56 4E 32 00 20 52 |ch @Vl1..@VN2. R| 000002D0: 54 53 00 3B 2D 2D 2D 2D 00 44 72 69 76 65 49 6E |TS.;----.DriveIn| 000002E0: 66 6F 00 20 6C 64 61 20 6E 75 6D 44 72 69 76 65 |fo. lda numDrive| 000002F0: 73 00 20 63 6D 70 20 23 32 00 20 62 63 73 20 40 |s. cmp #2. bcs @| 00000300: 44 72 69 76 65 32 00 44 72 69 76 65 31 00 20 6C |Drive2.Drive1. l| 00000310: 64 61 20 23 30 00 20 73 74 61 20 44 52 49 56 45 |da #0. sta DRIVE| 00000320: 00 20 62 65 71 20 40 44 6F 44 42 00 40 44 72 69 |. beq @DoDB.@Dri| 00000330: 76 65 32 00 20 6C 64 61 20 23 31 38 00 20 73 74 |ve2. lda #18. st| 00000340: 61 20 44 52 49 56 45 00 40 44 6F 44 42 00 20 6C |a DRIVE.@DoDB. l| 00000350: 64 78 20 23 52 34 00 20 6A 73 72 20 47 65 74 50 |dx #R4. jsr GetP| 00000360: 74 72 43 75 72 44 6B 4E 6D 00 20 6C 64 79 20 23 |trCurDkNm. ldy #| 00000370: 30 00 40 44 6F 31 00 20 6C 64 61 20 28 52 34 29 |0.@Do1. lda (R4)| 00000380: 2C 59 00 20 63 6D 70 20 23 24 41 30 00 20 62 65 |,Y. cmp #$A0. be| 00000390: 71 20 40 44 6F 32 00 20 73 74 61 20 44 69 73 6B |q @Do2. sta Disk| 000003A0: 53 74 72 2C 79 00 20 69 6E 79 00 20 63 70 79 20 |Str,y. iny. cpy | 000003B0: 23 31 36 00 20 62 6E 65 20 40 44 6F 31 00 40 44 |#16. bne @Do1.@D| 000003C0: 6F 32 00 20 6C 64 61 20 23 30 00 20 73 74 61 20 |o2. lda #0. sta | 000003D0: 44 69 73 6B 53 74 72 2C 79 00 20 63 6C 63 00 20 |DiskStr,y. clc. | 000003E0: 6C 64 61 20 63 75 72 44 72 69 76 65 00 20 61 64 |lda curDrive. ad| 000003F0: 63 20 23 35 37 00 20 73 74 61 20 44 73 6B 31 00 |c #57. sta Dsk1.| 00000400: 52 54 53 00 3B 2D 2D 2D 2D 00 76 6E 44 42 00 2E |RTS.;----.vnDB..| 00000410: 42 59 54 45 20 31 32 38 2B 32 00 2E 42 79 74 65 |BYTE 128+2..Byte| 00000420: 20 32 2C 31 37 2C 34 31 20 3B 20 43 41 4E 43 45 | 2,17,41 ; CANCE| 00000430: 4C 20 69 63 6F 6E 00 2E 42 79 74 65 20 35 2C 31 |L icon..Byte 5,1| 00000440: 37 2C 32 33 20 3B 20 4F 50 45 4E 4F 00 2E 42 79 |7,23 ; OPENO..By| 00000450: 74 65 20 31 36 20 3B 67 65 74 20 44 42 66 69 6C |te 16 ;get DBfil| 00000460: 65 73 00 2E 42 79 74 65 20 34 2C 34 00 2E 42 79 |es..Byte 4,4..By| 00000470: 74 65 20 31 31 2C 31 33 31 2C 39 20 3B 20 54 65 |te 11,131,9 ; Te| 00000480: 78 74 53 74 72 69 6E 67 00 2E 57 6F 72 64 20 44 |xtString..Word D| 00000490: 73 6B 00 2E 42 79 74 65 20 31 31 2C 31 33 31 2C |sk..Byte 11,131,| 000004A0: 31 39 20 3B 20 54 65 78 74 53 74 72 69 6E 67 00 |19 ; TextString.| 000004B0: 2E 57 6F 72 64 20 44 69 73 6B 53 74 72 00 2E 42 |.Word DiskStr..B| 000004C0: 79 74 65 20 36 2C 31 37 2C 37 37 00 44 52 49 56 |yte 6,17,77.DRIV| 000004D0: 45 00 2E 42 79 74 65 20 31 38 2C 31 37 2C 35 39 |E..Byte 18,17,59| 000004E0: 00 2E 57 6F 72 64 20 44 72 69 76 65 5F 49 63 6F |..Word Drive_Ico| 000004F0: 6E 5F 44 61 74 61 00 2E 42 79 74 65 20 30 00 3B |n_Data..Byte 0.;| 00000500: 00 3B 3D 3D 3D 3D 3D 00 43 68 61 6E 67 65 44 72 |.;=====.ChangeDr| 00000510: 69 76 65 00 20 6C 64 61 20 63 75 72 44 72 69 76 |ive. lda curDriv| 00000520: 65 00 20 45 4F 52 20 23 31 00 43 68 61 6E 67 65 |e. EOR #1.Change| 00000530: 44 72 69 76 65 31 00 20 6A 73 72 20 53 65 74 44 |Drive1. jsr SetD| 00000540: 65 76 69 63 65 00 20 52 54 53 00 3B 2D 2D 2D 00 |evice. RTS.;---.| 00000550: 43 68 61 6E 67 65 44 69 73 6B 00 6C 6F 61 64 77 |ChangeDisk.loadw| 00000560: 20 52 30 3A 44 69 73 6B 44 42 00 20 4A 53 52 20 | R0:DiskDB. JSR | 00000570: 24 43 32 35 36 00 20 6C 64 61 20 52 30 00 20 63 |$C256. lda R0. c| 00000580: 6D 70 20 23 32 00 20 62 65 71 20 40 53 6B 44 69 |mp #2. beq @SkDi| 00000590: 73 6B 00 20 6C 64 61 20 63 75 72 44 72 69 76 65 |sk. lda curDrive| 000005A0: 00 20 6A 73 72 20 24 43 32 42 30 00 20 6A 73 72 |. jsr $C2B0. jsr| 000005B0: 20 24 43 32 41 31 00 20 52 54 53 00 40 53 6B 44 | $C2A1. RTS.@SkD| 000005C0: 69 73 6B 00 20 73 74 61 20 43 61 6E 63 65 6C 46 |isk. sta CancelF| 000005D0: 6C 61 67 00 20 52 54 53 00 3B 2D 2D 2D 00 44 69 |lag. RTS.;---.Di| 000005E0: 73 6B 44 42 00 20 2E 42 79 74 65 20 31 32 38 2B |skDB. .Byte 128+| 000005F0: 32 00 20 2E 42 79 74 65 20 31 31 2C 34 2C 31 36 |2. .Byte 11,4,16| 00000600: 00 20 2E 57 6F 72 64 20 44 73 6B 4D 73 73 67 00 |. .Word DskMssg.| 00000610: 20 2E 42 79 74 65 20 32 2C 31 37 2C 36 38 00 20 | .Byte 2,17,68. | 00000620: 2E 42 79 74 65 20 31 2C 31 37 2C 34 30 00 20 2E |.Byte 1,17,40. .| 00000630: 42 79 74 65 20 30 00 44 73 6B 4D 73 73 67 20 2E |Byte 0.DskMssg .| 00000640: 42 79 74 65 20 42 4F 4C 44 2C 27 49 6E 73 65 72 |Byte BOLD,'Inser| 00000650: 74 20 64 69 73 6B 20 69 6E 74 6F 20 64 72 69 76 |t disk into driv| 00000660: 65 27 2C 50 4C 41 49 4E 2C 30 00 3B 3D 3D 3D 3D |e',PLAIN,0.;====| 00000670: 3D 3D 3D 3D 3D 3D 3D 3D 3D 00 44 53 31 00 20 6C |=========.DS1. l| 00000680: 64 61 20 23 32 30 00 20 73 74 61 20 73 79 73 44 |da #20. sta sysD| 00000690: 42 44 61 74 61 00 20 6A 6D 70 20 24 43 32 42 46 |BData. jmp $C2BF| 000006A0: 00 3B 3D 3D 3D 3D 3D 3D 3D 3D 00 44 72 69 76 65 |.;========.Drive| 000006B0: 5F 49 63 6F 6E 5F 44 61 74 61 00 2E 57 6F 72 64 |_Icon_Data..Word| 000006C0: 20 44 49 63 6E 00 2E 42 79 74 65 20 30 2C 30 00 | DIcn..Byte 0,0.| 000006D0: 2E 42 79 74 65 20 36 2C 31 36 00 2E 57 6F 72 64 |.Byte 6,16..Word| 000006E0: 20 44 53 31 00 3B 3D 3D 3D 3D 3D 00 64 74 61 69 | DS1.;=====.dtai| 000006F0: 6D 67 20 2E 42 79 74 65 20 27 57 72 69 74 65 20 |mg .Byte 'Write | 00000700: 49 6D 61 67 65 27 2C 30 00 44 69 73 6B 53 74 72 |Image',0.DiskStr| 00000710: 20 2E 42 6C 6F 63 6B 20 31 37 2C 30 00 44 73 6B | .Block 17,0.Dsk| 00000720: 20 2E 42 79 74 65 20 42 4F 4C 44 2C 27 44 72 69 | .Byte BOLD,'Dri| 00000730: 76 65 3A 20 27 00 44 73 6B 31 20 2E 42 79 74 65 |ve: '.Dsk1 .Byte| 00000740: 20 27 41 27 2C 50 4C 41 49 4E 2C 30 00 44 49 63 | 'A',PLAIN,0.DIc| 00000750: 6E 00 2E 42 79 74 65 20 35 2C 24 46 46 2C 24 38 |n..Byte 5,$FF,$8| 00000760: 32 2C 24 46 45 2C 24 38 30 2C 34 2C 30 2C 24 38 |2,$FE,$80,4,0,$8| 00000770: 32 2C 33 00 2E 42 79 74 65 20 24 38 30 2C 34 2C |2,3..Byte $80,4,| 00000780: 30 2C 24 42 38 2C 33 2C 24 38 31 2C 24 46 30 2C |0,$B8,3,$81,$F0,| 00000790: 31 2C 24 38 30 2C 30 2C 33 2C 24 38 31 2C 24 39 |1,$80,0,3,$81,$9| 000007A0: 38 2C 30 2C 30 2C 30 00 2E 42 79 74 65 20 33 2C |8,0,0,0..Byte 3,| 000007B0: 24 38 31 2C 24 38 44 2C 24 46 42 2C 24 42 33 2C |$81,$8D,$FB,$B3,| 000007C0: 24 33 43 2C 33 2C 24 38 31 2C 24 38 44 2C 24 43 |$3C,3,$81,$8D,$C| 000007D0: 31 2C 24 42 33 2C 24 36 36 00 2E 42 79 74 65 20 |1,$B3,$66..Byte | 000007E0: 33 2C 24 38 31 2C 24 38 44 2C 24 38 31 2C 24 42 |3,$81,$8D,$81,$B| 000007F0: 33 2C 24 36 36 2C 33 2C 24 38 31 2C 24 38 44 2C |3,$66,3,$81,$8D,| 00000800: 24 38 31 2C 24 39 45 2C 24 37 45 00 2E 42 79 74 |$81,$9E,$7E..Byt| 00000810: 65 20 33 2C 24 38 31 2C 24 38 44 2C 24 38 31 2C |e 3,$81,$8D,$81,| 00000820: 24 39 45 2C 24 36 30 2C 33 2C 24 38 31 2C 24 39 |$9E,$60,3,$81,$9| 00000830: 39 2C 24 38 31 2C 24 38 43 2C 24 36 36 2C 33 2C |9,$81,$8C,$66,3,| 00000840: 24 38 31 00 2E 42 79 74 65 20 24 46 31 2C 24 38 |$81..Byte $F1,$8| 00000850: 31 2C 24 38 43 2C 24 33 43 2C 33 2C 24 38 30 2C |1,$8C,$3C,3,$80,| 00000860: 34 2C 30 2C 24 38 32 2C 33 2C 24 38 30 2C 34 2C |4,0,$82,3,$80,4,| 00000870: 30 2C 24 38 31 2C 33 00 2E 42 79 74 65 20 36 2C |0,$81,3..Byte 6,| 00000880: 24 46 46 2C 24 38 31 2C 24 37 46 2C 35 2C 24 46 |$FF,$81,$7F,5,$F| 00000890: 46 00 3B 3D 3D 3D 3D 00 3B 2D 2D 2D 2D 2D 00 4F |F.;====.;-----.O| 000008A0: 76 72 45 78 00 6C 6F 61 64 77 20 52 30 3A 4F 45 |vrEx.loadw R0:OE| 000008B0: 31 00 20 4A 53 52 20 24 43 32 35 36 00 20 52 54 |1. JSR $C256. RT| 000008C0: 53 00 4F 45 31 00 2E 42 59 54 45 20 31 32 38 2B |S.OE1..BYTE 128+| 000008D0: 32 2C 32 2C 31 37 2C 36 38 00 2E 42 79 74 65 20 |2,2,17,68..Byte | 000008E0: 31 31 2C 34 2C 31 36 00 2E 57 4F 52 44 20 4F 45 |11,4,16..WORD OE| 000008F0: 53 31 00 3B 20 44 42 20 54 45 58 54 20 53 54 52 |S1.; DB TEXT STR| 00000900: 49 4E 47 00 2E 42 59 54 45 20 31 31 2C 32 34 2C |ING..BYTE 11,24,| 00000910: 32 38 00 2E 57 4F 52 44 20 4F 45 53 32 00 2E 42 |28..WORD OES2..B| 00000920: 59 54 45 20 30 00 4F 45 53 31 20 2E 42 59 54 45 |YTE 0.OES1 .BYTE| 00000930: 20 42 4F 4C 44 2C 27 54 68 69 73 20 56 65 72 73 | BOLD,'This Vers| 00000940: 69 6F 6E 20 63 61 6E 6E 6F 74 27 2C 30 00 4F 45 |ion cannot',0.OE| 00000950: 53 32 20 2E 42 59 54 45 20 27 62 65 20 65 64 69 |S2 .BYTE 'be edi| 00000960: 74 65 64 2E 27 2C 50 4C 41 49 4E 2C 30 00 3B 3D |ted.',PLAIN,0.;=| 00000970: 3D 3D 3D 3D 3D 3D 00 53 45 54 55 50 4D 00 20 6C |======.SETUPM. l| 00000980: 64 61 20 23 30 00 20 73 74 61 20 4E 6F 52 65 63 |da #0. sta NoRec| 00000990: 6F 72 64 00 6C 6F 61 64 77 20 52 36 3A 46 4E 41 |ord.loadw R6:FNA| 000009A0: 4D 45 00 20 6A 73 72 20 24 43 32 30 42 00 6C 6F |ME. jsr $C20B.lo| 000009B0: 61 64 77 20 52 39 3A 64 69 72 45 6E 74 72 79 42 |adw R9:dirEntryB| 000009C0: 75 66 00 20 6A 73 72 20 47 65 74 46 48 64 72 49 |uf. jsr GetFHdrI| 000009D0: 6E 66 6F 00 3B 00 20 6A 73 72 20 54 65 73 74 56 |nfo.;. jsr TestV| 000009E0: 65 72 73 69 6F 6E 3B 20 63 68 65 63 6B 20 76 65 |ersion; check ve| 000009F0: 72 73 69 6F 6E 20 6F 66 20 74 68 69 73 20 66 69 |rsion of this fi| 00000A00: 6C 65 2E 00 20 62 6D 69 20 40 75 6E 64 65 72 3B |le.. bmi @under;| 00000A10: 20 75 6E 64 65 72 20 69 73 20 74 68 65 20 64 65 | under is the de| 00000A20: 66 61 75 6C 74 20 76 65 72 73 69 6F 6E 20 75 73 |fault version us| 00000A30: 65 66 75 6C 20 74 6F 00 3B 20 74 68 69 73 20 70 |eful to.; this p| 00000A40: 72 6F 67 72 61 6D 2E 2E 20 54 68 61 74 73 20 61 |rogram.. Thats a| 00000A50: 74 20 56 32 2E 30 20 72 69 67 68 74 20 6E 6F 77 |t V2.0 right now| 00000A60: 2E 00 20 62 6E 65 20 4F 76 72 45 78 00 40 75 6E |.. bne OvrEx.@un| 00000A70: 64 65 72 00 20 6C 64 61 20 46 69 6C 65 48 65 61 |der. lda FileHea| 00000A80: 64 65 72 2B 37 30 00 6C 6F 61 64 77 20 52 30 3A |der+70.loadw R0:| 00000A90: 46 4E 41 4D 45 00 20 6A 73 72 20 4F 70 65 6E 52 |FNAME. jsr OpenR| 00000AA0: 65 63 6F 72 64 46 69 6C 65 00 20 6C 64 61 20 43 |ecordFile. lda C| 00000AB0: 75 72 52 65 63 6F 72 64 00 20 6A 73 72 20 50 6F |urRecord. jsr Po| 00000AC0: 69 6E 74 52 65 63 6F 72 64 00 3B 20 64 6F 20 64 |intRecord.; do d| 00000AD0: 69 73 6B 20 65 72 72 6F 72 73 20 68 65 72 65 2E |isk errors here.| 00000AE0: 00 3B 20 69 66 20 6C 61 73 74 20 72 65 63 6F 72 |.; if last recor| 00000AF0: 64 20 74 68 65 6E 20 61 73 6B 20 74 6F 20 63 72 |d then ask to cr| 00000B00: 65 61 74 65 2E 00 54 58 41 00 20 42 45 51 20 40 |eate..TXA. BEQ @| 00000B10: 6C 7A 70 33 00 20 6A 73 72 20 43 6C 6F 73 65 52 |lzp3. jsr CloseR| 00000B20: 65 63 6F 72 64 46 69 6C 65 00 20 6C 64 61 20 63 |ecordFile. lda c| 00000B30: 75 72 52 65 63 6F 72 64 00 20 73 74 61 20 43 75 |urRecord. sta Cu| 00000B40: 72 52 65 63 6F 72 64 00 20 52 54 53 00 40 6C 7A |rRecord. RTS.@lz| 00000B50: 70 33 00 20 74 79 61 00 20 62 6E 65 20 40 6C 7A |p3. tya. bne @lz| 00000B60: 70 34 00 3B 00 20 6A 73 72 20 43 6C 6F 73 65 52 |p4.;. jsr CloseR| 00000B70: 65 63 6F 72 64 46 69 6C 65 00 20 6C 64 61 20 63 |ecordFile. lda c| 00000B80: 75 72 52 65 63 6F 72 64 00 20 73 74 61 20 43 75 |urRecord. sta Cu| 00000B90: 72 52 65 63 6F 72 64 00 20 6C 64 61 20 23 31 00 |rRecord. lda #1.| 00000BA0: 20 73 74 61 20 4E 6F 52 65 63 6F 72 64 00 20 52 | sta NoRecord. R| 00000BB0: 54 53 00 3B 2D 2D 2D 2D 00 40 6C 7A 70 34 00 6C |TS.;----.@lzp4.l| 00000BC0: 6F 61 64 77 20 52 37 3A 24 34 30 30 30 00 6C 6F |oadw R7:$4000.lo| 00000BD0: 61 64 77 20 52 32 3A 24 32 30 30 30 00 20 6A 73 |adw R2:$2000. js| 00000BE0: 72 20 52 65 61 64 52 65 63 6F 72 64 00 20 6A 73 |r ReadRecord. js| 00000BF0: 72 20 43 6C 6F 73 65 52 65 63 6F 72 64 46 69 6C |r CloseRecordFil| 00000C00: 65 00 20 6C 64 61 20 63 75 72 52 65 63 6F 72 64 |e. lda curRecord| 00000C10: 00 20 73 74 61 20 43 75 72 52 65 63 6F 72 64 00 |. sta CurRecord.| 00000C20: 6D 6F 76 65 77 20 52 37 3A 45 4F 42 00 20 4C 44 |movew R7:EOB. LD| 00000C30: 58 20 23 45 4F 42 00 20 4A 53 52 20 24 43 31 37 |X #EOB. JSR $C17| 00000C40: 35 00 6D 6F 76 65 77 20 53 4F 42 3A 43 42 50 00 |5.movew SOB:CBP.| 00000C50: 20 6C 64 78 20 53 4F 42 3B 20 53 4F 42 20 69 73 | ldx SOB; SOB is| 00000C60: 20 70 6F 69 6E 74 69 6E 74 20 6F 6E 65 20 62 79 | pointint one by| 00000C70: 74 65 20 62 65 6C 6F 77 20 74 68 65 20 63 68 61 |te below the cha| 00000C80: 72 00 20 64 65 78 20 20 20 20 3B 20 6D 6F 64 65 |r. dex ; mode| 00000C90: 20 62 79 74 65 00 20 6C 64 61 20 24 34 30 30 30 | byte. lda $4000| 00000CA0: 2C 58 00 20 73 74 61 20 43 76 43 68 61 72 00 20 |,X. sta CvChar. | 00000CB0: 52 54 53 00 3B 2D 2D 2D 2D 2D 00 54 65 73 74 56 |RTS.;-----.TestV| 00000CC0: 65 72 73 69 6F 6E 00 20 6C 64 61 20 46 69 6C 65 |ersion. lda File| 00000CD0: 48 65 61 64 65 72 2B 39 30 00 20 63 6D 70 20 23 |Header+90. cmp #| 00000CE0: 27 32 20 3B 20 63 68 61 72 61 63 74 65 72 20 76 |'2 ; character v| 00000CF0: 61 6C 75 65 20 6F 66 20 32 00 20 62 65 71 20 40 |alue of 2. beq @| 00000D00: 54 56 6F 00 20 62 63 73 20 40 54 56 6F 31 00 20 |TVo. bcs @TVo1. | 00000D10: 6C 64 61 20 23 32 34 00 20 73 74 61 20 53 4F 42 |lda #24. sta SOB| 00000D20: 00 20 6C 64 61 20 46 69 6C 65 48 65 61 64 65 72 |. lda FileHeader| 00000D30: 2B 39 32 00 20 63 6D 70 20 23 27 31 20 3B 20 63 |+92. cmp #'1 ; c| 00000D40: 68 61 72 61 63 74 65 72 20 76 61 6C 75 65 20 6F |haracter value o| 00000D50: 66 20 31 00 20 62 63 63 20 40 54 56 75 6E 64 65 |f 1. bcc @TVunde| 00000D60: 72 00 20 62 63 73 20 40 54 56 65 71 75 61 6C 00 |r. bcs @TVequal.| 00000D70: 40 54 56 6F 00 20 6C 64 61 20 23 33 31 3B 20 77 |@TVo. lda #31; w| 00000D80: 61 73 20 23 33 32 00 20 73 74 61 20 53 4F 42 00 |as #32. sta SOB.| 00000D90: 20 6C 64 61 20 46 69 6C 65 48 65 61 64 65 72 2B | lda FileHeader+| 00000DA0: 39 32 00 20 63 6D 70 20 23 27 32 20 3B 20 77 61 |92. cmp #'2 ; wa| 00000DB0: 73 20 23 27 30 20 61 6E 64 20 62 65 71 20 62 65 |s #'0 and beq be| 00000DC0: 6C 6F 77 00 20 62 63 63 20 40 54 56 65 71 75 61 |low. bcc @TVequa| 00000DD0: 6C 20 3B 20 77 61 73 20 62 65 71 20 40 54 56 65 |l ; was beq @TVe| 00000DE0: 71 75 61 6C 00 40 54 56 6F 31 00 20 6C 64 61 20 |qual.@TVo1. lda | 00000DF0: 23 31 00 20 62 6E 65 20 40 54 76 45 78 00 40 54 |#1. bne @TvEx.@T| 00000E00: 56 75 6E 64 65 72 00 20 6C 64 61 20 23 24 46 46 |Vunder. lda #$FF| 00000E10: 00 20 62 6E 65 20 40 54 76 45 78 00 40 54 56 65 |. bne @TvEx.@TVe| 00000E20: 71 75 61 6C 00 20 6C 64 61 20 23 30 00 40 54 76 |qual. lda #0.@Tv| 00000E30: 45 78 00 20 73 74 61 20 56 65 72 42 79 74 3B 20 |Ex. sta VerByt; | 00000E40: 56 65 72 73 69 6F 6E 20 62 79 74 65 20 69 73 20 |Version byte is | 00000E50: 75 70 67 72 61 64 65 64 20 6F 6E 20 65 61 63 68 |upgraded on each| 00000E60: 20 6C 6F 61 64 2E 00 20 52 54 53 00 56 65 72 42 | load.. RTS.VerB| 00000E70: 79 74 20 2E 42 79 74 65 20 30 00 3B 2D 2D 2D 2D |yt .Byte 0.;----| 00000E80: 2D 00 00 |-.. |
; LOAD ROUTINE.; ROUTINE FOR QUICKVIEW, LOADS AND RELOADS BUFFER FOR.; GEOWRITE IMAGE FILES..LOAD.JSR I_IMPRINTRECTANGLE ..BYTE 0,199..WORD 0,319.. LDA #0. STA E XITBYTE. STA CURRECORD. JSR TESTDRIVE. L DA CANCELFLAG. CMP #2. BEQ @LOLO3X. LDA FNAME. BEQ @LOLO3X. JSR SETUPM. RTS.@LOL O3X. LDA #2. STA CANCELFLAG. RTS.;====.; DRIVE/DISK SWITCHING ROUTINES..; TEST H ERE FOR SIZE.TESTDRIVE. LDA #0. STA FNAM E.@VL1.LDA #0.STA CANCELFLAG. JSR DRIVEI NFO.LOADW R0:VNDB.LOADW R5:FNAME.LOADW R 10:DTAIMG. LDA #7. STA R7. JSR $C256. LD A R0. CMP #2. BNE @VNEXIT. STA CANCELFLA G. RTS..@VNEXIT. CMP #20. BNE @VN1. JSR CHANGEDRIVE. BRANCH @VL1..@VN1. CMP #6. BNE @VN2. JSR CHANGEDISK. LDA CANCELFLAG . CMP #2. BEQ @VN2. BRANCH @VL1..@VN2. R TS.;----.DRIVEINFO. LDA NUMDRIVES. CMP # 2. BCS @DRIVE2.DRIVE1. LDA #0. STA DRIVE . BEQ @DODB.@DRIVE2. LDA #18. STA DRIVE. @DODB. LDX #R4. JSR GETPTRCURDKNM. LDY # 0.@DO1. LDA (R4),Y. CMP #$A0. BEQ @DO2. STA DISKSTR,Y. INY. CPY #16. BNE @DO1.@D O2. LDA #0. STA DISKSTR,Y. CLC. LDA CURD RIVE. ADC #57. STA DSK1.RTS.;----.VNDB.. BYTE 128+2..BYTE 2,17,41 ; CANCEL ICON.. BYTE 5,17,23 ; OPENO..BYTE 16 ;GET DBFIL ES..BYTE 4,4..BYTE 11,131,9 ; TEXTSTRING ..WORD DSK..BYTE 11,131,19 ; TEXTSTRING. .WORD DISKSTR..BYTE 6,17,77.DRIVE..BYTE 18,17,59..WORD DRIVE_ICON_DATA..BYTE 0.; .;=====.CHANGEDRIVE. LDA CURDRIVE. EOR # 1.CHANGEDRIVE1. JSR SETDEVICE. RTS.;---. CHANGEDISK.LOADW R0:DISKDB. JSR $C256. L DA R0. CMP #2. BEQ @SKDISK. LDA CURDRIVE . JSR $C2B0. JSR $C2A1. RTS.@SKDISK. STA CANCELFLAG. RTS.;---.DISKDB. .BYTE 128+ 2. .BYTE 11,4,16. .WORD DSKMSSG. .BYTE 2 ,17,68. .BYTE 1,17,40. .BYTE 0.DSKMSSG . BYTE BOLD,'INSERT DISK INTO DRIVE',PLAIN ,0.;=============.DS1. LDA #20. STA SYSD BDATA. JMP $C2BF.;========.DRIVE_ICON_DA TA..WORD DICN..BYTE 0,0..BYTE 6,16..WORD DS1.;=====.DTAIMG .BYTE 'WRITE IMAGE',0 .DISKSTR .BLOCK 17,0.DSK .BYTE BOLD,'DRI VE: '.DSK1 .BYTE 'A',PLAIN,0.DICN..BYTE 5,$FF,$82,$FE,$80,4,0,$82,3..BYTE $80,4, 0,$B8,3,$81,$F0,1,$80,0,3,$81,$98,0,0,0. .BYTE 3,$81,$8D,$FB,$B3,$3C,3,$81,$8D,$C 1,$B3,$66..BYTE 3,$81,$8D,$81,$B3,$66,3, $81,$8D,$81,$9E,$7E..BYTE 3,$81,$8D,$81, $9E,$60,3,$81,$99,$81,$8C,$66,3,$81..BYT E $F1,$81,$8C,$3C,3,$80,4,0,$82,3,$80,4, 0,$81,3..BYTE 6,$FF,$81,$7F,5,$FF.;====. ;-----.OVREX.LOADW R0:OE1. JSR $C256. RT S.OE1..BYTE 128+2,2,17,68..BYTE 11,4,16. .WORD OES1.; DB TEXT STRING..BYTE 11,24, 28..WORD OES2..BYTE 0.OES1 .BYTE BOLD,'T HIS VERSION CANNOT',0.OES2 .BYTE 'BE EDI TED.',PLAIN,0.;=======.SETUPM. LDA #0. S TA NORECORD.LOADW R6:FNAME. JSR $C20B.LO ADW R9:DIRENTRYBUF. JSR GETFHDRINFO.;. J SR TESTVERSION; CHECK VERSION OF THIS FI LE.. BMI @UNDER; UNDER IS THE DEFAULT VE RSION USEFUL TO.; THIS PROGRAM.. THATS A T V2.0 RIGHT NOW.. BNE OVREX.@UNDER. LDA FILEHEADER+70.LOADW R0:FNAME. JSR OPENR ECORDFILE. LDA CURRECORD. JSR POINTRECOR D.; DO DISK ERRORS HERE..; IF LAST RECOR D THEN ASK TO CREATE..TXA. BEQ @LZP3. JS R CLOSERECORDFILE. LDA CURRECORD. STA CU RRECORD. RTS.@LZP3. TYA. BNE @LZP4.;. JS R CLOSERECORDFILE. LDA CURRECORD. STA CU RRECORD. LDA #1. STA NORECORD. RTS.;---- .@LZP4.LOADW R7:$4000.LOADW R2:$2000. JS R READRECORD. JSR CLOSERECORDFILE. LDA C URRECORD. STA CURRECORD.MOVEW R7:EOB. LD X #EOB. JSR $C175.MOVEW SOB:CBP. LDX SOB ; SOB IS POINTINT ONE BYTE BELOW THE CHA R. DEX ; MODE BYTE. LDA $4000,X. STA CVCHAR. RTS.;-----.TESTVERSION. LDA FILE HEADER+90. CMP #'2 ; CHARACTER VALUE OF 2. BEQ @TVO. BCS @TVO1. LDA #24. STA SOB . LDA FILEHEADER+92. CMP #'1 ; CHARACTER VALUE OF 1. BCC @TVUNDER. BCS @TVEQUAL. @TVO. LDA #31; WAS #32. STA SOB. LDA FIL EHEADER+92. CMP #'2 ; WAS #'0 AND BEQ BE LOW. BCC @TVEQUAL ; WAS BEQ @TVEQUAL.@TV O1. LDA #1. BNE @TVEX.@TVUNDER. LDA #$FF . BNE @TVEX.@TVEQUAL. LDA #0.@TVEX. STA VERBYT; VERSION BYTE IS UPGRADED ON EACH LOAD.. RTS.VERBYT .BYTE 0.;-----..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL