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 2D 2D 0D 2A A0 73 55 42 |----------.*.sUB|
00000030: 52 4F 55 54 49 4E 45 A0 54 4F A0 50 52 49 4E 54 |ROUTINE.TO.PRINT|
00000040: A0 54 48 45 A0 53 54 52 49 4E 47 A0 46 4F 4C 4C |.THE.STRING.FOLL|
00000050: 4F 57 49 4E 47 0D 2A A0 54 48 45 A0 6A 73 72 A0 |OWING.*.THE.jsr.|
00000060: 70 72 69 6E 74 2E A0 A0 74 48 45 A0 53 54 52 49 |print...tHE.STRI|
00000070: 4E 47 A0 4D 55 53 54 A0 45 4E 44 A0 57 49 54 48 |NG.MUST.END.WITH|
00000080: 0D 2A A0 41 A0 30 2E A0 A0 70 52 49 4F 52 A0 54 |.*.A.0...pRIOR.T|
00000090: 4F A0 41 A0 70 75 74 A0 4F 46 A0 54 48 49 53 A0 |O.A.put.OF.THIS.|
000000A0: 52 4F 55 54 49 4E 45 2C 0D 2A A0 41 A0 76 61 72 |ROUTINE,.*.A.var|
000000B0: A0 53 54 41 54 45 4D 45 4E 54 A0 4D 55 53 54 A0 |.STATEMENT.MUST.|
000000C0: 42 45 A0 55 53 45 44 A0 54 4F A0 53 45 54 A0 55 |BE.USED.TO.SET.U|
000000D0: 50 0D 2A A0 54 48 45 A0 5A 45 52 4F A0 50 41 47 |P.*.THE.ZERO.PAG|
000000E0: 45 A0 50 4F 49 4E 54 45 52 A0 5D 31 A0 55 53 45 |E.POINTER.]1.USE|
000000F0: 44 A0 41 4E 44 A0 41 4C 53 4F 0D 2A A0 54 48 45 |D.AND.ALSO.*.THE|
00000100: A0 4F 55 54 50 55 54 A0 52 4F 55 54 49 4E 45 A0 |.OUTPUT.ROUTINE.|
00000110: 41 44 44 52 45 53 53 A0 5D 32 A0 28 50 45 52 48 |ADDRESS.]2.(PERH|
00000120: 41 50 53 0D 2A A0 63 68 72 6F 75 74 29 2E 0D 2A |APS.*.chrout)..*|
00000130: 0D 2A A0 75 53 45 53 A0 54 48 45 A0 4D 41 43 52 |.*.uSES.THE.MACR|
00000140: 4F 53 A0 70 75 6C 6C 2C A0 70 75 73 68 A0 41 4E |OS.pull,.push.AN|
00000150: 44 A0 69 6E 63 64 0D 2A A0 28 53 45 45 A0 54 48 |D.incd.*.(SEE.TH|
00000160: 45 A0 4D 41 43 52 4F A0 4C 49 42 52 41 52 59 29 |E.MACRO.LIBRARY)|
00000170: 2E 0D 2A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |..*-------------|
00000180: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
00000190: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 70 72 |------------..pr|
000001A0: 69 6E 74 20 70 75 6C 6C 20 5D 31 20 3B 70 55 4C |int pull ]1 ;pUL|
000001B0: 4C A0 43 41 4C 4C 49 4E 47 A0 41 44 44 52 45 53 |L.CALLING.ADDRES|
000001C0: 53 0D 3B A0 4F 46 46 A0 53 54 41 43 4B A0 41 4E |S.;.OFF.STACK.AN|
000001D0: 44 A0 55 53 45 0D 3B A0 46 4F 52 A0 5A 45 52 4F |D.USE.;.FOR.ZERO|
000001E0: A0 50 41 47 45 A0 50 4F 49 4E 54 45 52 2E 0D 20 |.PAGE.POINTER.. |
000001F0: 62 6E 65 20 6E 78 74 63 68 61 72 20 3B 61 4C 57 |bne nxtchar ;aLW|
00000200: 41 59 53 A0 54 41 4B 45 4E 0D 70 63 68 72 20 6A |AYS.TAKEN.pchr j|
00000210: 73 72 20 5D 32 20 3B 73 45 4E 44 A0 54 4F A0 4F |sr ]2 ;sEND.TO.O|
00000220: 55 54 50 55 54 A0 52 4F 55 54 49 4E 45 0D 6E 78 |UTPUT.ROUTINE.nx|
00000230: 74 63 68 61 72 20 6C 64 79 20 23 30 0D 20 69 6E |tchar ldy #0. in|
00000240: 63 64 20 5D 31 20 3B 70 4F 49 4E 54 A0 54 4F A0 |cd ]1 ;pOINT.TO.|
00000250: 4E 45 58 54 A0 43 48 52 0D 20 6C 64 61 20 28 5D |NEXT.CHR. lda (]|
00000260: 31 29 2C 79 20 3B 67 45 54 A0 4E 45 58 54 A0 43 |1),y ;gET.NEXT.C|
00000270: 48 52 0D 20 62 6E 65 20 70 63 68 72 20 3B 62 52 |HR. bne pchr ;bR|
00000280: 41 4E 43 48 A0 49 46 A0 4E 4F 54 A0 45 4E 44 49 |ANCH.IF.NOT.ENDI|
00000290: 4E 47 A0 30 0D 20 70 75 73 68 20 5D 31 20 3B 70 |NG.0. push ]1 ;p|
000002A0: 55 53 48 A0 50 4F 49 4E 54 45 52 A0 54 4F A0 53 |USH.POINTER.TO.S|
000002B0: 54 41 43 4B 0D 3B A0 41 4E 44 A0 52 45 54 55 52 |TACK.;.AND.RETUR|
000002C0: 4E A0 54 4F A0 49 4E 53 54 52 55 43 54 49 4F 4E |N.TO.INSTRUCTION|
000002D0: 0D 20 72 74 73 20 3B A0 46 4F 4C 4C 4F 57 49 4E |. rts ;.FOLLOWIN|
000002E0: 47 A0 54 48 45 A0 53 54 52 49 4E 47 2E 0D |G.THE.STRING.. |
*---------------------------------------
--.* SUBROUTINE TO PRINT THE STRING FOLL
OWING.* THE JSR PRINT. THE STRING MUST
END WITH.* A 0. PRIOR TO A PUT OF THIS
ROUTINE,.* A VAR STATEMENT MUST BE USED
TO SET UP.* THE ZERO PAGE POINTER ]1 USE
D AND ALSO.* THE OUTPUT ROUTINE ADDRESS
]2 (PERHAPS.* CHROUT)..*.* USES THE MACR
OS PULL, PUSH AND INCD.* (SEE THE MACRO
LIBRARY)..*-----------------------------
------------..PRINT PULL ]1 ;PULL CALLIN
G ADDRESS.; OFF STACK AND USE.; FOR ZERO
PAGE POINTER.. BNE NXTCHAR ;ALWAYS TAKE
N.PCHR JSR ]2 ;SEND TO OUTPUT ROUTINE.NX
TCHAR LDY #0. INCD ]1 ;POINT TO NEXT CHR
. LDA (]1),Y ;GET NEXT CHR. BNE PCHR ;BR
ANCH IF NOT ENDING 0. PUSH ]1 ;PUSH POIN
TER TO STACK.; AND RETURN TO INSTRUCTION
. RTS ; FOLLOWING THE STRING..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL