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

DISPLAY

FILE INFORMATION

FILENAME(S): DISPLAY

FILE TYPE(S): USR

FILE SIZE: 3.8K

FIRST SEEN: 2025-10-20 14:30:03

APPEARS ON: 3 disk(s)

FILE HASH

95a9190b97b6e2760948a265b80d925477fc3440478790d7450b737038163011

FOUND ON DISKS (3 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
S 1286 DISPLAY USR Treasure Chest - Klaus Der Suhler 16 1 DOWNLOAD FILE
G PD 85 DISPLAY USR Treasure Chest - Klaus Der Suhler 16 9 DOWNLOAD FILE
S 1286 DISPLAY USR Treasure Chest - Klaus Der Suhler 16 9 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 20 52 6F 75 74 69 6E  65 73 20 74 6F 20 70 72  |; Routines to pr|
00000010: 69 6E 74 20 74 68 65 20  76 61 6C 75 65 73 00 3B  |int the values.;|
00000020: 00 3B 00 44 69 73 70 6C  61 79 00 20 6C 64 78 20  |.;.Display. ldx |
00000030: 44 49 53 4C 45 4E 00 20  62 65 71 20 45 78 69 74  |DISLEN. beq Exit|
00000040: 00 20 73 74 78 20 54 65  6D 70 44 69 73 6C 65 6E  |. stx TempDislen|
00000050: 00 20 6C 64 61 20 23 3C  59 76 61 6C 75 65 00 20  |. lda #<Yvalue. |
00000060: 73 74 61 20 59 50 6F 73  00 20 6C 64 61 20 23 3C  |sta YPos. lda #<|
00000070: 58 76 61 6C 75 65 00 20  73 74 61 20 58 50 6F 73  |Xvalue. sta XPos|
00000080: 00 20 6C 64 61 20 23 3E  58 76 61 6C 75 65 00 20  |. lda #>Xvalue. |
00000090: 73 74 61 20 58 50 6F 73  2B 31 00 20 6C 64 61 20  |sta XPos+1. lda |
000000A0: 23 33 32 00 20 6A 6D 70  20 4C 6F 6F 70 7A 00 4C  |#32. jmp Loopz.L|
000000B0: 6F 6F 70 00 20 64 65 63  20 54 65 6D 70 44 69 73  |oop. dec TempDis|
000000C0: 6C 65 6E 00 20 6C 64 78  20 54 65 6D 70 44 69 73  |len. ldx TempDis|
000000D0: 6C 65 6E 00 20 6C 64 61  20 44 58 53 42 55 46 2C  |len. lda DXSBUF,|
000000E0: 58 00 4C 6F 6F 70 7A 00  20 50 48 41 00 20 6A 73  |X.Loopz. PHA. js|
000000F0: 72 20 47 65 74 43 68 61  72 57 69 64 74 68 00 20  |r GetCharWidth. |
00000100: 73 74 61 20 63 75 72 43  68 61 72 57 69 64 74 68  |sta curCharWidth|
00000110: 00 20 6C 64 61 20 58 50  6F 73 00 20 73 65 63 00  |. lda XPos. sec.|
00000120: 20 73 62 63 20 63 75 72  43 68 61 72 57 69 64 74  | sbc curCharWidt|
00000130: 68 00 20 73 74 61 20 58  50 6F 73 00 20 73 74 61  |h. sta XPos. sta|
00000140: 20 41 50 31 00 20 64 65  63 20 41 50 31 00 20 73  | AP1. dec AP1. s|
00000150: 74 61 20 52 31 31 00 20  6C 64 61 20 58 50 6F 73  |ta R11. lda XPos|
00000160: 2B 31 00 20 73 74 61 20  52 31 31 2B 31 00 20 6C  |+1. sta R11+1. l|
00000170: 64 61 20 59 50 6F 73 00  20 73 74 61 20 52 31 2B  |da YPos. sta R1+|
00000180: 31 00 20 50 4C 41 00 20  6A 73 72 20 50 75 74 43  |1. PLA. jsr PutC|
00000190: 68 61 72 00 20 6C 64 78  20 54 65 6D 70 44 69 73  |har. ldx TempDis|
000001A0: 6C 65 6E 00 20 62 6E 65  20 4C 6F 6F 70 00 20 6A  |len. bne Loop. j|
000001B0: 73 72 20 69 5F 52 65 63  74 61 6E 67 6C 65 00 20  |sr i_Rectangle. |
000001C0: 2E 42 79 74 65 20 59 76  61 6C 75 65 2D 36 00 20  |.Byte Yvalue-6. |
000001D0: 2E 42 79 74 65 20 59 76  61 6C 75 65 2B 32 00 20  |.Byte Yvalue+2. |
000001E0: 2E 57 6F 72 64 20 58 76  61 6C 75 65 2D 38 35 00  |.Word Xvalue-85.|
000001F0: 41 50 31 00 20 2E 57 6F  72 64 20 58 76 61 6C 75  |AP1. .Word Xvalu|
00000200: 65 00 45 78 69 74 00 20  52 54 53 00 58 50 6F 73  |e.Exit. RTS.XPos|
00000210: 20 2E 42 79 74 65 20 30  2C 30 00 59 50 6F 73 20  | .Byte 0,0.YPos |
00000220: 2E 42 79 74 65 20 30 00  54 65 6D 70 44 69 73 6C  |.Byte 0.TempDisl|
00000230: 65 6E 20 2E 42 79 74 65  20 30 00 63 75 72 43 68  |en .Byte 0.curCh|
00000240: 61 72 57 69 64 74 68 20  2E 42 79 74 65 20 30 00  |arWidth .Byte 0.|
00000250: 3B 2D 2D 2D 2D 2D 2D 2D  2D 2D 00 6B 65 79 70 72  |;---------.keypr|
00000260: 65 73 73 20 2E 42 79 74  65 20 30 00 3B 00 49 63  |ess .Byte 0.;.Ic|
00000270: 6F 6E 43 61 6C 6C 00 6C  64 61 20 52 30 00 20 73  |onCall.lda R0. s|
00000280: 74 61 20 6B 65 79 70 72  65 73 73 00 49 63 6F 6E  |ta keypress.Icon|
00000290: 43 61 6C 6C 32 00 20 6C  64 61 20 6B 65 79 70 72  |Call2. lda keypr|
000002A0: 65 73 73 00 20 63 6D 70  20 23 31 36 00 20 62 63  |ess. cmp #16. bc|
000002B0: 73 20 53 6B 69 70 31 00  6C 64 78 20 4D 6F 64 65  |s Skip1.ldx Mode|
000002C0: 00 20 64 65 78 00 20 62  6D 69 20 62 69 6E 61 72  |. dex. bmi binar|
000002D0: 79 6C 70 00 20 62 6E 65  20 68 65 78 6C 70 00 64  |ylp. bne hexlp.d|
000002E0: 65 63 6C 70 00 20 63 6C  63 00 20 63 6D 70 20 23  |eclp. clc. cmp #|
000002F0: 31 30 00 20 62 63 73 20  6E 6F 74 64 65 63 63 68  |10. bcs notdecch|
00000300: 61 72 00 20 6A 73 72 20  4B 65 79 69 6E 00 20 6A  |ar. jsr Keyin. j|
00000310: 73 72 20 44 45 43 42 49  4E 00 20 6A 73 72 20 42  |sr DECBIN. jsr B|
00000320: 49 4E 44 45 43 00 20 6A  73 72 20 44 69 73 70 6C  |INDEC. jsr Displ|
00000330: 61 79 00 6E 6F 74 64 65  63 63 68 61 72 00 53 6B  |ay.notdecchar.Sk|
00000340: 69 70 31 00 20 72 74 73  00 3B 00 62 69 6E 61 72  |ip1. rts.;.binar|
00000350: 79 6C 70 00 63 6C 63 00  63 6D 70 20 23 32 00 20  |ylp.clc.cmp #2. |
00000360: 62 63 73 20 6E 6F 74 62  69 6E 63 68 61 72 00 20  |bcs notbinchar. |
00000370: 6A 73 72 20 4B 65 79 69  6E 00 20 6A 73 72 20 53  |jsr Keyin. jsr S|
00000380: 54 32 42 49 4E 00 20 6A  73 72 20 42 49 4E 32 53  |T2BIN. jsr BIN2S|
00000390: 54 00 20 6A 73 72 20 44  69 73 70 6C 61 79 00 6E  |T. jsr Display.n|
000003A0: 6F 74 62 69 6E 63 68 61  72 00 20 72 74 73 00 3B  |otbinchar. rts.;|
000003B0: 00 68 65 78 6C 70 00 20  6A 73 72 20 4B 65 79 69  |.hexlp. jsr Keyi|
000003C0: 6E 00 20 4A 73 72 20 48  45 58 42 49 4E 00 20 6A  |n. Jsr HEXBIN. j|
000003D0: 73 72 20 42 49 4E 48 45  58 00 20 6A 73 72 20 44  |sr BINHEX. jsr D|
000003E0: 69 73 70 6C 61 79 00 20  52 54 53 00 3B 00 3B 00  |isplay. RTS.;.;.|
000003F0: 4B 65 79 69 6E 00 20 6C  64 78 20 4D 6F 64 65 00  |Keyin. ldx Mode.|
00000400: 20 74 61 79 00 20 6C 64  61 20 4B 65 79 69 6E 6C  | tay. lda Keyinl|
00000410: 65 6E 00 20 63 6D 70 20  63 68 61 72 69 6E 6D 6F  |en. cmp charinmo|
00000420: 64 65 2C 78 00 20 62 63  73 20 6E 6F 6D 6F 72 65  |de,x. bcs nomore|
00000430: 63 68 61 72 00 20 6C 64  78 20 4B 65 79 69 6E 6C  |char. ldx Keyinl|
00000440: 65 6E 00 20 74 79 61 00  20 63 6C 63 00 20 61 64  |en. tya. clc. ad|
00000450: 63 20 23 34 38 00 20 63  6D 70 20 23 35 38 00 20  |c #48. cmp #58. |
00000460: 62 63 63 20 6F 6B 00 61  64 63 20 23 36 00 6F 6B  |bcc ok.adc #6.ok|
00000470: 00 20 73 74 61 20 4B 49  4E 42 55 46 2C 58 00 20  |. sta KINBUF,X. |
00000480: 69 6E 63 20 4B 65 79 69  6E 6C 65 6E 00 6E 6F 6D  |inc Keyinlen.nom|
00000490: 6F 72 65 63 68 61 72 00  20 52 54 53 00 63 68 61  |orechar. RTS.cha|
000004A0: 72 69 6E 6D 6F 64 65 20  2E 42 79 74 65 20 31 36  |rinmode .Byte 16|
000004B0: 2C 35 2C 34 20 3B 20 6D  6F 64 65 20 30 20 69 73  |,5,4 ; mode 0 is|
000004C0: 20 62 69 6E 61 72 79 2C  20 6D 6F 64 65 20 31 20  | binary, mode 1 |
000004D0: 69 73 20 64 65 63 69 6D  61 6C 2C 00 3B 20 6D 6F  |is decimal,.; mo|
000004E0: 64 65 20 32 20 69 73 20  68 65 78 00 4D 6F 64 65  |de 2 is hex.Mode|
000004F0: 20 2E 42 79 74 65 20 31  00 3B 00 54 65 78 74 53  | .Byte 1.;.TextS|
00000500: 74 72 69 6E 67 73 00 6A  73 72 20 24 43 31 41 45  |trings.jsr $C1AE|
00000510: 20 3B 20 69 70 75 74 73  74 72 69 6E 67 00 2E 57  | ; iputstring..W|
00000520: 6F 72 64 20 49 63 6F 6E  5F 58 5F 50 6F 73 2A 38  |ord Icon_X_Pos*8|
00000530: 2B 38 00 2E 42 79 74 65  20 49 63 6F 6E 5F 59 5F  |+8..Byte Icon_Y_|
00000540: 50 6F 73 2B 31 30 00 2E  42 79 74 65 20 27 37 27  |Pos+10..Byte '7'|
00000550: 2C 32 30 2C 49 63 6F 6E  5F 58 5F 50 6F 73 2A 38  |,20,Icon_X_Pos*8|
00000560: 2B 38 2B 33 2A 38 2C 30  00 2E 42 79 74 65 20 27  |+8+3*8,0..Byte '|
00000570: 38 27 2C 32 30 2C 49 63  6F 6E 5F 58 5F 50 6F 73  |8',20,Icon_X_Pos|
00000580: 2A 38 2B 38 2B 36 2A 38  2C 30 00 2E 42 79 74 65  |*8+8+6*8,0..Byte|
00000590: 20 27 39 27 2C 32 30 2C  49 63 6F 6E 5F 58 5F 50  | '9',20,Icon_X_P|
000005A0: 6F 73 2A 38 2B 38 2B 39  2A 38 2C 30 00 2E 42 79  |os*8+8+9*8,0..By|
000005B0: 74 65 20 27 46 27 2C 32  30 2C 49 63 6F 6E 5F 58  |te 'F',20,Icon_X|
000005C0: 5F 50 6F 73 2A 38 2B 38  2B 31 32 2A 38 2C 30 00  |_Pos*8+8+12*8,0.|
000005D0: 2E 42 79 74 65 20 27 2F  27 2C 30 00 3B 00 6A 73  |.Byte '/',0.;.js|
000005E0: 72 20 24 43 31 41 45 20  3B 20 69 70 75 74 73 74  |r $C1AE ; iputst|
000005F0: 72 69 6E 67 00 2E 57 6F  72 64 20 49 63 6F 6E 5F  |ring..Word Icon_|
00000600: 58 5F 50 6F 73 2A 38 2B  38 00 2E 42 79 74 65 20  |X_Pos*8+8..Byte |
00000610: 49 63 6F 6E 5F 59 5F 50  6F 73 2B 31 30 2B 31 2A  |Icon_Y_Pos+10+1*|
00000620: 31 36 00 2E 42 79 74 65  20 27 34 27 2C 32 30 2C  |16..Byte '4',20,|
00000630: 49 63 6F 6E 5F 58 5F 50  6F 73 2A 38 2B 38 2B 33  |Icon_X_Pos*8+8+3|
00000640: 2A 38 2C 30 00 2E 42 79  74 65 20 27 35 27 2C 32  |*8,0..Byte '5',2|
00000650: 30 2C 49 63 6F 6E 5F 58  5F 50 6F 73 2A 38 2B 38  |0,Icon_X_Pos*8+8|
00000660: 2B 36 2A 38 2C 30 00 2E  42 79 74 65 20 27 36 27  |+6*8,0..Byte '6'|
00000670: 2C 32 30 2C 49 63 6F 6E  5F 58 5F 50 6F 73 2A 38  |,20,Icon_X_Pos*8|
00000680: 2B 38 2B 39 2A 38 2C 30  00 2E 42 79 74 65 20 27  |+8+9*8,0..Byte '|
00000690: 45 27 2C 32 30 2C 49 63  6F 6E 5F 58 5F 50 6F 73  |E',20,Icon_X_Pos|
000006A0: 2A 38 2B 38 2B 31 32 2A  38 2C 30 00 2E 42 79 74  |*8+8+12*8,0..Byt|
000006B0: 65 20 27 2A 27 2C 30 00  3B 00 6A 73 72 20 24 43  |e '*',0.;.jsr $C|
000006C0: 31 41 45 20 3B 20 69 70  75 74 73 74 72 69 6E 67  |1AE ; iputstring|
000006D0: 00 2E 57 6F 72 64 20 49  63 6F 6E 5F 58 5F 50 6F  |..Word Icon_X_Po|
000006E0: 73 2A 38 2B 38 00 2E 42  79 74 65 20 49 63 6F 6E  |s*8+8..Byte Icon|
000006F0: 5F 59 5F 50 6F 73 2B 31  30 2B 32 2A 31 36 00 2E  |_Y_Pos+10+2*16..|
00000700: 42 79 74 65 20 27 31 27  2C 32 30 2C 49 63 6F 6E  |Byte '1',20,Icon|
00000710: 5F 58 5F 50 6F 73 2A 38  2B 38 2B 33 2A 38 2C 30  |_X_Pos*8+8+3*8,0|
00000720: 00 2E 42 79 74 65 20 27  32 27 2C 32 30 2C 49 63  |..Byte '2',20,Ic|
00000730: 6F 6E 5F 58 5F 50 6F 73  2A 38 2B 38 2B 36 2A 38  |on_X_Pos*8+8+6*8|
00000740: 2C 30 00 2E 42 79 74 65  20 27 33 27 2C 32 30 2C  |,0..Byte '3',20,|
00000750: 49 63 6F 6E 5F 58 5F 50  6F 73 2A 38 2B 38 2B 39  |Icon_X_Pos*8+8+9|
00000760: 2A 38 2C 30 00 2E 42 79  74 65 20 27 44 27 2C 32  |*8,0..Byte 'D',2|
00000770: 30 2C 49 63 6F 6E 5F 58  5F 50 6F 73 2A 38 2B 38  |0,Icon_X_Pos*8+8|
00000780: 2B 31 32 2A 38 2C 30 00  2E 42 79 74 65 20 27 2D  |+12*8,0..Byte '-|
00000790: 27 2C 30 00 3B 00 6A 73  72 20 24 43 31 41 45 20  |',0.;.jsr $C1AE |
000007A0: 3B 20 69 70 75 74 73 74  72 69 6E 67 00 2E 57 6F  |; iputstring..Wo|
000007B0: 72 64 20 49 63 6F 6E 5F  58 5F 50 6F 73 2A 38 2B  |rd Icon_X_Pos*8+|
000007C0: 38 00 2E 42 79 74 65 20  49 63 6F 6E 5F 59 5F 50  |8..Byte Icon_Y_P|
000007D0: 6F 73 2B 31 30 2B 33 2A  31 36 00 2E 42 79 74 65  |os+10+3*16..Byte|
000007E0: 20 27 30 27 2C 32 30 2C  49 63 6F 6E 5F 58 5F 50  | '0',20,Icon_X_P|
000007F0: 6F 73 2A 38 2B 38 2B 33  2A 38 2C 30 00 2E 42 79  |os*8+8+3*8,0..By|
00000800: 74 65 20 27 41 27 2C 32  30 2C 49 63 6F 6E 5F 58  |te 'A',20,Icon_X|
00000810: 5F 50 6F 73 2A 38 2B 38  2B 36 2A 38 2C 30 00 2E  |_Pos*8+8+6*8,0..|
00000820: 42 79 74 65 20 27 42 27  2C 32 30 2C 49 63 6F 6E  |Byte 'B',20,Icon|
00000830: 5F 58 5F 50 6F 73 2A 38  2B 38 2B 39 2A 38 2C 30  |_X_Pos*8+8+9*8,0|
00000840: 00 2E 42 79 74 65 20 27  43 27 2C 32 30 2C 49 63  |..Byte 'C',20,Ic|
00000850: 6F 6E 5F 58 5F 50 6F 73  2A 38 2B 38 2B 31 32 2A  |on_X_Pos*8+8+12*|
00000860: 38 2C 30 00 2E 42 79 74  65 20 27 2B 27 2C 30 00  |8,0..Byte '+',0.|
00000870: 3B 00 6A 73 72 20 24 43  31 41 45 20 3B 20 69 70  |;.jsr $C1AE ; ip|
00000880: 75 74 73 74 72 69 6E 67  00 2E 57 6F 72 64 20 49  |utstring..Word I|
00000890: 63 6F 6E 5F 58 5F 50 6F  73 2A 38 2B 32 00 2E 42  |con_X_Pos*8+2..B|
000008A0: 79 74 65 20 49 63 6F 6E  5F 59 5F 50 6F 73 2B 30  |yte Icon_Y_Pos+0|
000008B0: 39 2B 34 2A 31 36 00 2E  42 79 74 65 20 27 48 45  |9+4*16..Byte 'HE|
000008C0: 58 27 2C 32 30 2C 49 63  6F 6E 5F 58 5F 50 6F 73  |X',20,Icon_X_Pos|
000008D0: 2A 38 2B 34 2B 33 2A 38  2C 30 00 2E 42 79 74 65  |*8+4+3*8,0..Byte|
000008E0: 20 27 44 45 43 27 2C 32  30 2C 49 63 6F 6E 5F 58  | 'DEC',20,Icon_X|
000008F0: 5F 50 6F 73 2A 38 2B 34  2B 36 2A 38 2C 30 00 2E  |_Pos*8+4+6*8,0..|
00000900: 42 79 74 65 20 27 42 49  4E 27 2C 32 30 2C 49 63  |Byte 'BIN',20,Ic|
00000910: 6F 6E 5F 58 5F 50 6F 73  2A 38 2B 38 2B 31 32 2A  |on_X_Pos*8+8+12*|
00000920: 38 2C 30 00 2E 42 79 74  65 20 27 3D 27 2C 30 00  |8,0..Byte '=',0.|
00000930: 3B 00 6A 73 72 20 24 43  31 41 45 20 3B 20 69 70  |;.jsr $C1AE ; ip|
00000940: 75 74 73 74 72 69 6E 67  00 2E 57 6F 72 64 20 49  |utstring..Word I|
00000950: 63 6F 6E 5F 58 5F 50 6F  73 2A 38 2B 38 00 2E 42  |con_X_Pos*8+8..B|
00000960: 79 74 65 20 49 63 6F 6E  5F 59 5F 50 6F 73 2B 31  |yte Icon_Y_Pos+1|
00000970: 30 2B 36 2A 31 36 00 2E  42 79 74 65 20 27 43 27  |0+6*16..Byte 'C'|
00000980: 2C 32 30 2C 49 63 6F 6E  5F 58 5F 50 6F 73 2A 38  |,20,Icon_X_Pos*8|
00000990: 2B 34 2B 33 2A 38 2C 30  00 2E 42 79 74 65 20 27  |+4+3*8,0..Byte '|
000009A0: 43 41 27 2C 32 30 2C 49  63 6F 6E 5F 58 5F 50 6F  |CA',20,Icon_X_Po|
000009B0: 73 2A 38 2B 34 2B 36 2A  38 2C 30 00 2E 42 79 74  |s*8+4+6*8,0..Byt|
000009C0: 65 20 27 44 65 6C 27 2C  32 30 2C 49 63 6F 6E 5F  |e 'Del',20,Icon_|
000009D0: 58 5F 50 6F 73 2A 38 2B  33 2B 39 2A 38 2C 30 00  |X_Pos*8+3+9*8,0.|
000009E0: 2E 42 79 74 65 20 27 45  78 69 74 27 2C 30 00 3B  |.Byte 'Exit',0.;|
000009F0: 00 6A 73 72 20 24 43 31  41 45 20 3B 20 69 70 75  |.jsr $C1AE ; ipu|
00000A00: 74 73 74 72 69 6E 67 00  2E 57 6F 72 64 20 49 63  |tstring..Word Ic|
00000A10: 6F 6E 5F 58 5F 50 6F 73  2A 38 2B 31 00 2E 42 79  |on_X_Pos*8+1..By|
00000A20: 74 65 20 49 63 6F 6E 5F  59 5F 50 6F 73 2B 31 30  |te Icon_Y_Pos+10|
00000A30: 2B 35 2A 31 36 00 2E 42  79 74 65 20 27 41 4E 44  |+5*16..Byte 'AND|
00000A40: 27 2C 32 30 2C 49 63 6F  6E 5F 58 5F 50 6F 73 2A  |',20,Icon_X_Pos*|
00000A50: 38 2B 32 2B 33 2A 38 2C  30 00 2E 42 79 74 65 20  |8+2+3*8,0..Byte |
00000A60: 27 45 4F 52 27 2C 32 30  2C 49 63 6F 6E 5F 58 5F  |'EOR',20,Icon_X_|
00000A70: 50 6F 73 2A 38 2B 31 2B  36 2A 38 2C 30 00 2E 42  |Pos*8+1+6*8,0..B|
00000A80: 79 74 65 20 27 4F 52 41  27 2C 30 00 3B 00 52 54  |yte 'ORA',0.;.RT|
00000A90: 53 00 3B 2A 2A 2A 2A 2A  00 43 6C 65 61 72 41 6C  |S.;*****.ClearAl|
00000AA0: 6C 00 20 6C 64 61 20 23  30 00 20 73 74 61 20 53  |l. lda #0. sta S|
00000AB0: 54 4B 50 54 52 00 43 6C  65 61 72 00 20 6C 64 61  |TKPTR.Clear. lda|
00000AC0: 20 23 30 00 20 73 74 61  20 52 45 53 55 4C 54 00  | #0. sta RESULT.|
00000AD0: 20 53 54 41 20 52 45 53  55 4C 54 2B 31 00 20 53  | STA RESULT+1. S|
00000AE0: 54 41 20 4B 65 79 69 6E  6C 65 6E 00 20 6C 64 61  |TA Keyinlen. lda|
00000AF0: 20 23 33 32 00 20 73 74  61 20 43 41 52 52 59 00  | #32. sta CARRY.|
00000B00: 20 6C 64 61 20 23 34 38  00 20 73 74 61 20 44 58  | lda #48. sta DX|
00000B10: 53 42 55 46 00 20 6C 64  61 20 23 31 00 20 73 74  |SBUF. lda #1. st|
00000B20: 61 20 44 49 53 4C 45 4E  00 20 6A 73 72 20 44 69  |a DISLEN. jsr Di|
00000B30: 73 70 6C 61 79 00 20 6C  64 61 20 23 30 00 20 73  |splay. lda #0. s|
00000B40: 74 61 20 44 49 53 4C 45  4E 00 20 52 54 53 00 3B  |ta DISLEN. RTS.;|
00000B50: 2D 2D 2D 2D 2D 2D 2D 2D  00 53 57 49 54 43 48 4D  |--------.SWITCHM|
00000B60: 4F 44 45 00 6C 64 61 20  52 30 00 20 73 74 61 20  |ODE.lda R0. sta |
00000B70: 6B 65 79 70 72 65 73 73  00 53 57 49 54 43 48 4D  |keypress.SWITCHM|
00000B80: 4F 44 45 32 00 20 6C 64  61 20 6B 65 79 70 72 65  |ODE2. lda keypre|
00000B90: 73 73 00 20 53 45 43 00  20 53 42 43 20 23 32 35  |ss. SEC. SBC #25|
00000BA0: 00 20 53 54 41 20 4D 6F  64 65 00 20 53 57 43 48  |. STA Mode. SWCH|
00000BB0: 4D 4F 44 45 32 00 20 4C  44 41 20 52 45 53 55 4C  |MODE2. LDA RESUL|
00000BC0: 54 00 20 6F 72 61 20 52  45 53 55 4C 54 2B 31 00  |T. ora RESULT+1.|
00000BD0: 20 42 4E 45 20 4E 4F 5A  45 52 4F 00 20 4A 53 52  | BNE NOZERO. JSR|
00000BE0: 20 43 6C 65 61 72 00 20  4A 53 52 20 50 72 69 6E  | Clear. JSR Prin|
00000BF0: 74 4D 6F 64 65 00 20 52  54 53 00 4E 4F 5A 45 52  |tMode. RTS.NOZER|
00000C00: 4F 00 20 4C 44 41 20 52  45 53 55 4C 54 00 20 53  |O. LDA RESULT. S|
00000C10: 54 41 20 56 41 4C 55 45  00 20 4C 44 41 20 52 45  |TA VALUE. LDA RE|
00000C20: 53 55 4C 54 2B 31 00 20  53 54 41 20 56 41 4C 55  |SULT+1. STA VALU|
00000C30: 45 2B 31 00 20 4A 53 52  20 50 72 69 6E 74 4D 6F  |E+1. JSR PrintMo|
00000C40: 64 65 00 20 4A 53 52 20  44 55 50 4C 49 43 41 54  |de. JSR DUPLICAT|
00000C50: 45 00 20 52 54 53 00 3B  00 50 72 69 6E 74 4D 6F  |E. RTS.;.PrintMo|
00000C60: 64 65 00 20 6C 64 78 20  4D 6F 64 65 00 20 64 65  |de. ldx Mode. de|
00000C70: 78 00 20 42 4D 49 20 42  49 4E 53 57 49 54 43 48  |x. BMI BINSWITCH|
00000C80: 00 20 42 4E 45 20 48 45  58 53 57 49 54 43 48 00  |. BNE HEXSWITCH.|
00000C90: 20 44 45 43 53 57 49 54  43 48 00 20 6A 73 72 20  | DECSWITCH. jsr |
00000CA0: 42 49 4E 44 45 43 00 20  4A 53 52 20 69 5F 50 75  |BINDEC. JSR i_Pu|
00000CB0: 74 53 74 72 69 6E 67 00  20 2E 57 6F 72 64 20 58  |tString. .Word X|
00000CC0: 76 61 6C 75 65 2B 31 30  00 20 2E 42 79 74 65 20  |value+10. .Byte |
00000CD0: 59 76 61 6C 75 65 00 20  2E 42 79 74 65 20 27 20  |Yvalue. .Byte ' |
00000CE0: 44 45 43 20 27 2C 30 00  20 52 54 53 00 48 45 58  |DEC ',0. RTS.HEX|
00000CF0: 53 57 49 54 43 48 00 20  6A 73 72 20 42 49 4E 48  |SWITCH. jsr BINH|
00000D00: 45 58 00 20 4A 53 52 20  69 5F 50 75 74 53 74 72  |EX. JSR i_PutStr|
00000D10: 69 6E 67 00 20 2E 57 6F  72 64 20 58 76 61 6C 75  |ing. .Word Xvalu|
00000D20: 65 2B 31 30 00 20 2E 42  79 74 65 20 59 76 61 6C  |e+10. .Byte Yval|
00000D30: 75 65 00 20 2E 42 79 74  65 20 27 20 48 45 58 20  |ue. .Byte ' HEX |
00000D40: 27 2C 30 00 20 52 54 53  20 00 20 42 49 4E 53 57  |',0. RTS . BINSW|
00000D50: 49 54 43 48 00 20 6A 73  72 20 42 49 4E 32 53 54  |ITCH. jsr BIN2ST|
00000D60: 00 20 4A 53 52 20 69 5F  50 75 74 53 74 72 69 6E  |. JSR i_PutStrin|
00000D70: 67 00 20 2E 57 6F 72 64  20 58 76 61 6C 75 65 2B  |g. .Word Xvalue+|
00000D80: 31 30 00 20 2E 42 79 74  65 20 59 76 61 6C 75 65  |10. .Byte Yvalue|
00000D90: 00 20 2E 42 79 74 65 20  27 20 42 49 4E 20 27 2C  |. .Byte ' BIN ',|
00000DA0: 30 00 20 52 54 53 00 44  55 50 4C 49 43 41 54 45  |0. RTS.DUPLICATE|
00000DB0: 00 20 6C 64 78 20 23 31  36 00 20 44 55 50 4C 4F  |. ldx #16. DUPLO|
00000DC0: 4F 50 00 20 6C 64 61 20  44 49 53 4C 45 4E 2C 58  |OP. lda DISLEN,X|
00000DD0: 00 20 73 74 61 20 4B 65  79 69 6E 6C 65 6E 2C 58  |. sta Keyinlen,X|
00000DE0: 00 20 64 65 78 00 20 62  70 6C 20 44 55 50 4C 4F  |. dex. bpl DUPLO|
00000DF0: 4F 50 00 20 4A 53 52 20  44 69 73 70 6C 61 79 00  |OP. JSR Display.|
00000E00: 20 52 54 53 20 00 3B 3D  3D 3D 3D 3D 3D 3D 3D 00  | RTS .;========.|
00000E10: 44 65 6C 65 74 65 00 20  6C 64 78 20 4B 65 79 69  |Delete. ldx Keyi|
00000E20: 6E 6C 65 6E 00 20 62 65  71 20 45 58 49 54 44 45  |nlen. beq EXITDE|
00000E30: 4C 00 20 64 65 78 00 20  62 6E 65 20 44 45 4C 43  |L. dex. bne DELC|
00000E40: 4F 4E 54 00 20 73 74 78  20 4B 65 79 69 6E 6C 65  |ONT. stx Keyinle|
00000E50: 6E 00 20 6A 73 72 20 43  6C 65 61 72 00 20 52 54  |n. jsr Clear. RT|
00000E60: 53 00 3B 00 44 45 4C 43  4F 4E 54 00 20 73 74 78  |S.;.DELCONT. stx|
00000E70: 20 4B 65 79 69 6E 6C 65  6E 00 20 6C 64 78 20 4D  | Keyinlen. ldx M|
00000E80: 6F 64 65 00 20 64 65 78  00 20 62 6D 69 20 42 49  |ode. dex. bmi BI|
00000E90: 4E 44 45 4C 00 20 62 6E  65 20 48 45 58 44 45 4C  |NDEL. bne HEXDEL|
00000EA0: 00 20 44 45 43 44 45 4C  00 20 4A 53 52 20 44 45  |. DECDEL. JSR DE|
00000EB0: 43 42 49 4E 00 20 4A 4D  50 20 45 4E 44 44 45 4C  |CBIN. JMP ENDDEL|
00000EC0: 00 42 49 4E 44 45 4C 00  20 6A 73 72 20 53 54 32  |.BINDEL. jsr ST2|
00000ED0: 42 49 4E 00 20 6A 6D 70  20 45 4E 44 44 45 4C 00  |BIN. jmp ENDDEL.|
00000EE0: 48 45 58 44 45 4C 00 20  6A 73 72 20 48 45 58 42  |HEXDEL. jsr HEXB|
00000EF0: 49 4E 00 45 4E 44 44 45  4C 00 20 6A 73 72 20 53  |IN.ENDDEL. jsr S|
00000F00: 57 43 48 4D 4F 44 45 32  00 45 58 49 54 44 45 4C  |WCHMODE2.EXITDEL|
00000F10: 00 20 52 54 53 00 00 00                           |. RTS...        |
; ROUTINES TO PRINT THE VALUES.;.;.DISPL
AY. LDX DISLEN. BEQ EXIT. STX TEMPDISLEN
. LDA #<YVALUE. STA YPOS. LDA #<XVALUE. 
STA XPOS. LDA #>XVALUE. STA XPOS+1. LDA 
#32. JMP LOOPZ.LOOP. DEC TEMPDISLEN. LDX
 TEMPDISLEN. LDA DXSBUF,X.LOOPZ. PHA. JS
R GETCHARWIDTH. STA CURCHARWIDTH. LDA XP
OS. SEC. SBC CURCHARWIDTH. STA XPOS. STA
 AP1. DEC AP1. STA R11. LDA XPOS+1. STA 
R11+1. LDA YPOS. STA R1+1. PLA. JSR PUTC
HAR. LDX TEMPDISLEN. BNE LOOP. JSR I_REC
TANGLE. .BYTE YVALUE-6. .BYTE YVALUE+2. 
.WORD XVALUE-85.AP1. .WORD XVALUE.EXIT. 
RTS.XPOS .BYTE 0,0.YPOS .BYTE 0.TEMPDISL
EN .BYTE 0.CURCHARWIDTH .BYTE 0.;-------
--.KEYPRESS .BYTE 0.;.ICONCALL.LDA R0. S
TA KEYPRESS.ICONCALL2. LDA KEYPRESS. CMP
 #16. BCS SKIP1.LDX MODE. DEX. BMI BINAR
YLP. BNE HEXLP.DECLP. CLC. CMP #10. BCS 
NOTDECCHAR. JSR KEYIN. JSR DECBIN. JSR B
INDEC. JSR DISPLAY.NOTDECCHAR.SKIP1. RTS
.;.BINARYLP.CLC.CMP #2. BCS NOTBINCHAR. 
JSR KEYIN. JSR ST2BIN. JSR BIN2ST. JSR D
ISPLAY.NOTBINCHAR. RTS.;.HEXLP. JSR KEYI
N. JSR HEXBIN. JSR BINHEX. JSR DISPLAY. 
RTS.;.;.KEYIN. LDX MODE. TAY. LDA KEYINL
EN. CMP CHARINMODE,X. BCS NOMORECHAR. LD
X KEYINLEN. TYA. CLC. ADC #48. CMP #58. 
BCC OK.ADC #6.OK. STA KINBUF,X. INC KEYI
NLEN.NOMORECHAR. RTS.CHARINMODE .BYTE 16
,5,4 ; MODE 0 IS BINARY, MODE 1 IS DECIM
AL,.; MODE 2 IS HEX.MODE .BYTE 1.;.TEXTS
TRINGS.JSR $C1AE ; IPUTSTRING..WORD ICON
_X_POS*8+8..BYTE ICON_Y_POS+10..BYTE '7'
,20,ICON_X_POS*8+8+3*8,0..BYTE '8',20,IC
ON_X_POS*8+8+6*8,0..BYTE '9',20,ICON_X_P
OS*8+8+9*8,0..BYTE 'F',20,ICON_X_POS*8+8
+12*8,0..BYTE '/',0.;.JSR $C1AE ; IPUTST
RING..WORD ICON_X_POS*8+8..BYTE ICON_Y_P
OS+10+1*16..BYTE '4',20,ICON_X_POS*8+8+3
*8,0..BYTE '5',20,ICON_X_POS*8+8+6*8,0..
BYTE '6',20,ICON_X_POS*8+8+9*8,0..BYTE '
E',20,ICON_X_POS*8+8+12*8,0..BYTE '*',0.
;.JSR $C1AE ; IPUTSTRING..WORD ICON_X_PO
S*8+8..BYTE ICON_Y_POS+10+2*16..BYTE '1'
,20,ICON_X_POS*8+8+3*8,0..BYTE '2',20,IC
ON_X_POS*8+8+6*8,0..BYTE '3',20,ICON_X_P
OS*8+8+9*8,0..BYTE 'D',20,ICON_X_POS*8+8
+12*8,0..BYTE '-',0.;.JSR $C1AE ; IPUTST
RING..WORD ICON_X_POS*8+8..BYTE ICON_Y_P
OS+10+3*16..BYTE '0',20,ICON_X_POS*8+8+3
*8,0..BYTE 'A',20,ICON_X_POS*8+8+6*8,0..
BYTE 'B',20,ICON_X_POS*8+8+9*8,0..BYTE '
C',20,ICON_X_POS*8+8+12*8,0..BYTE '+',0.
;.JSR $C1AE ; IPUTSTRING..WORD ICON_X_PO
S*8+2..BYTE ICON_Y_POS+09+4*16..BYTE 'HE
X',20,ICON_X_POS*8+4+3*8,0..BYTE 'DEC',2
0,ICON_X_POS*8+4+6*8,0..BYTE 'BIN',20,IC
ON_X_POS*8+8+12*8,0..BYTE '=',0.;.JSR $C
1AE ; IPUTSTRING..WORD ICON_X_POS*8+8..B
YTE ICON_Y_POS+10+6*16..BYTE 'C',20,ICON
_X_POS*8+4+3*8,0..BYTE 'CA',20,ICON_X_PO
S*8+4+6*8,0..BYTE 'DEL',20,ICON_X_POS*8+
3+9*8,0..BYTE 'EXIT',0.;.JSR $C1AE ; IPU
TSTRING..WORD ICON_X_POS*8+1..BYTE ICON_
Y_POS+10+5*16..BYTE 'AND',20,ICON_X_POS*
8+2+3*8,0..BYTE 'EOR',20,ICON_X_POS*8+1+
6*8,0..BYTE 'ORA',0.;.RTS.;*****.CLEARAL
L. LDA #0. STA STKPTR.CLEAR. LDA #0. STA
 RESULT. STA RESULT+1. STA KEYINLEN. LDA
 #32. STA CARRY. LDA #48. STA DXSBUF. LD
A #1. STA DISLEN. JSR DISPLAY. LDA #0. S
TA DISLEN. RTS.;--------.SWITCHMODE.LDA 
R0. STA KEYPRESS.SWITCHMODE2. LDA KEYPRE
SS. SEC. SBC #25. STA MODE. SWCHMODE2. L
DA RESULT. ORA RESULT+1. BNE NOZERO. JSR
 CLEAR. JSR PRINTMODE. RTS.NOZERO. LDA R
ESULT. STA VALUE. LDA RESULT+1. STA VALU
E+1. JSR PRINTMODE. JSR DUPLICATE. RTS.;
.PRINTMODE. LDX MODE. DEX. BMI BINSWITCH
. BNE HEXSWITCH. DECSWITCH. JSR BINDEC. 
JSR I_PUTSTRING. .WORD XVALUE+10. .BYTE 
YVALUE. .BYTE ' DEC ',0. RTS.HEXSWITCH. 
JSR BINHEX. JSR I_PUTSTRING. .WORD XVALU
E+10. .BYTE YVALUE. .BYTE ' HEX ',0. RTS
 . BINSWITCH. JSR BIN2ST. JSR I_PUTSTRIN
G. .WORD XVALUE+10. .BYTE YVALUE. .BYTE 
' BIN ',0. RTS.DUPLICATE. LDX #16. DUPLO
OP. LDA DISLEN,X. STA KEYINLEN,X. DEX. B
PL DUPLOOP. JSR DISPLAY. RTS .;========.
DELETE. LDX KEYINLEN. BEQ EXITDEL. DEX. 
BNE DELCONT. STX KEYINLEN. JSR CLEAR. RT
S.;.DELCONT. STX KEYINLEN. LDX MODE. DEX
. BMI BINDEL. BNE HEXDEL. DECDEL. JSR DE
CBIN. JMP ENDDEL.BINDEL. JSR ST2BIN. JMP
 ENDDEL.HEXDEL. JSR HEXBIN.ENDDEL. JSR S
WCHMODE2.EXITDEL. RTS...
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL