00000000: 2A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |*---------------|
00000010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
00000020: 2D 2D 2D 2D 2D 2D 2D 2D 0D 2A A0 72 4F 55 54 49 |--------.*.rOUTI|
00000030: 4E 45 A0 54 4F A0 50 52 49 4E 54 A0 61 2C 78 A0 |NE.TO.PRINT.a,x.|
00000040: 49 4E A0 48 45 58 2E A0 A0 65 4E 54 52 59 A0 41 |IN.HEX...eNTRY.A|
00000050: 54 0D 2A A0 70 72 62 79 74 65 A0 43 41 4E A0 41 |T.*.prbyte.CAN.A|
00000060: 4C 53 4F A0 42 45 A0 55 53 45 44 A0 54 4F A0 50 |LSO.BE.USED.TO.P|
00000070: 52 49 4E 54 A0 54 48 45 0D 2A A0 42 59 54 45 A0 |RINT.THE.*.BYTE.|
00000080: 49 4E A0 61 A0 4F 4E 4C 59 2C A0 4F 52 A0 45 4E |IN.a.ONLY,.OR.EN|
00000090: 54 52 59 A0 41 54 A0 70 72 6E 69 62 A0 43 41 4E |TRY.AT.prnib.CAN|
000000A0: 0D 2A A0 42 45 A0 55 53 45 44 A0 54 4F A0 50 52 |.*.BE.USED.TO.PR|
000000B0: 49 4E 54 A0 41 A0 4E 49 42 42 4C 45 2E 0D 2A A0 |INT.A.NIBBLE..*.|
000000C0: 76 61 72 A0 4D 55 53 54 A0 42 45 A0 55 53 45 44 |var.MUST.BE.USED|
000000D0: A0 54 4F A0 53 45 54 A0 5D 31 A0 54 4F A0 30 A0 |.TO.SET.]1.TO.0.|
000000E0: 49 46 0D 2A A0 75 63 2F 47 52 41 50 48 49 43 53 |IF.*.uc/GRAPHICS|
000000F0: A0 43 48 41 52 A0 53 45 54 A0 49 53 A0 55 53 45 |.CHAR.SET.IS.USE|
00000100: 44 A0 4F 52 A0 54 4F A0 24 32 30 0D 2A A0 49 46 |D.OR.TO.$20.*.IF|
00000110: A0 6C 63 2F 75 63 A0 43 48 41 52 A0 53 45 54 A0 |.lc/uc.CHAR.SET.|
00000120: 49 53 A0 55 53 45 44 2E 0D 2A 2D 2D 2D 2D 2D 2D |IS.USED..*------|
00000130: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
00000140: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
00000150: 2D 0D 0D 70 72 69 6E 74 68 65 78 20 6A 73 72 20 |-..printhex jsr |
00000160: 70 72 62 79 74 65 20 3B 70 52 49 4E 54 A0 41 43 |prbyte ;pRINT.AC|
00000170: 43 A0 28 32 A0 44 49 47 49 54 53 29 0D 20 74 78 |C.(2.DIGITS). tx|
00000180: 61 20 3B 73 45 54 A0 54 4F A0 50 52 49 4E 54 A0 |a ;sET.TO.PRINT.|
00000190: 78 0D 70 72 62 79 74 65 20 70 68 61 20 3B 73 41 |x.prbyte pha ;sA|
000001A0: 56 45 A0 41 43 43 0D 20 6C 73 72 20 3B 73 48 49 |VE.ACC. lsr ;sHI|
000001B0: 46 54 A0 48 49 47 48 A0 4E 49 42 42 4C 45 A0 44 |FT.HIGH.NIBBLE.D|
000001C0: 4F 57 4E 0D 20 6C 73 72 0D 20 6C 73 72 0D 20 6C |OWN. lsr. lsr. l|
000001D0: 73 72 0D 20 6A 73 72 20 70 68 65 78 20 3B 70 52 |sr. jsr phex ;pR|
000001E0: 49 4E 54 A0 49 54 0D 20 70 6C 61 20 3B 72 45 54 |INT.IT. pla ;rET|
000001F0: 52 49 45 56 45 A0 4F 52 49 47 49 4E 41 4C A0 42 |RIEVE.ORIGINAL.B|
00000200: 59 54 45 0D 70 72 6E 69 62 20 61 6E 64 20 23 24 |YTE.prnib and #$|
00000210: 66 20 3B 6D 41 53 4B A0 4C 4F 57 A0 4E 49 42 42 |f ;mASK.LOW.NIBB|
00000220: 4C 45 0D 70 68 65 78 20 6F 72 61 20 23 27 30 27 |LE.phex ora #'0'|
00000230: 0D 20 63 6D 70 20 23 27 39 27 2B 31 20 3B 64 45 |. cmp #'9'+1 ;dE|
00000240: 43 49 4D 41 4C A0 44 49 47 49 54 3F 0D 20 62 6C |CIMAL.DIGIT?. bl|
00000250: 74 20 6A 63 6F 20 3B 62 52 41 4E 43 48 A0 49 46 |t jco ;bRANCH.IF|
00000260: A0 53 4F 0D 20 61 64 63 20 23 27 41 27 2D 27 39 |.SO. adc #'A'-'9|
00000270: 27 2D 32 2B 5D 31 20 3B 61 44 44 A0 4F 46 46 53 |'-2+]1 ;aDD.OFFS|
00000280: 45 54 A0 46 4F 52 A0 48 45 58 0D 6A 63 6F 20 6A |ET.FOR.HEX.jco j|
00000290: 6D 70 20 63 68 72 6F 75 74 0D |mp chrout. |
*---------------------------------------
.* ROUTINE TO PRINT A,X IN HEX. ENTRY A
T.* PRBYTE CAN ALSO BE USED TO PRINT THE
.* BYTE IN A ONLY, OR ENTRY AT PRNIB CAN
.* BE USED TO PRINT A NIBBLE..* VAR MUST
BE USED TO SET ]1 TO 0 IF.* UC/GRAPHICS
CHAR SET IS USED OR TO $20.* IF LC/UC C
HAR SET IS USED..*----------------------
-----------------..PRINTHEX JSR PRBYTE ;
PRINT ACC (2 DIGITS). TXA ;SET TO PRINT
X.PRBYTE PHA ;SAVE ACC. LSR ;SHIFT HIGH
NIBBLE DOWN. LSR. LSR. LSR. JSR PHEX ;PR
INT IT. PLA ;RETRIEVE ORIGINAL BYTE.PRNI
B AND #$F ;MASK LOW NIBBLE.PHEX ORA #'0'
. CMP #'9'+1 ;DECIMAL DIGIT?. BLT JCO ;B
RANCH IF SO. ADC #'A'-'9'-2+]1 ;ADD OFFS
ET FOR HEX.JCO JMP CHROUT.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL