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