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

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL