00000000: 00 0A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |..**************|
00000010: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000020: 2A 2A 0D 2A A0 70 72 69 6E 74 A0 75 73 69 6E 67 |**.*.print.using|
00000030: A0 65 78 74 65 6E 73 69 6F 6E A0 A0 A0 A0 A0 A0 |.extension......|
00000040: A0 A0 2A 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |..*.************|
00000050: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000060: 2A 2A 2A 2A 0D 2A A0 73 79 73 A0 35 31 34 35 36 |****.*.sys.51456|
00000070: 2C 78 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |,x..............|
00000080: A0 A0 A0 A0 2A 0D 2A 2D 2D 2D 2D 2D 2D 2D 2D 2D |....*.*---------|
00000090: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
000000A0: 2D 2D 2D 2D 2D 2A 0D 2A A0 61 64 64 72 65 73 73 |-----*.*.address|
000000B0: A0 A0 A0 21 A0 70 61 72 61 6D 65 74 65 72 73 A0 |...!.parameters.|
000000C0: A0 A0 A0 A0 A0 A0 2A 0D 2A A0 2D 2D 2D 2D 2D 2D |......*.*.------|
000000D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
000000E0: 2D 2D 2D 2D 2D 2D A0 2A 0D 2A A0 70 6F 6B 65 A0 |------.*.*.poke.|
000000F0: 35 31 36 31 32 21 A0 30 3D 77 2C A0 31 3D 64 65 |51612!.0=w,.1=de|
00000100: 63 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 70 6F 6B 65 |c.......*.*.poke|
00000110: A0 35 31 36 31 33 21 A0 30 3D 31 30 2C A0 63 6F |.51613!.0=10,.co|
00000120: 6D 70 A0 3D 31 A0 A0 A0 A0 2A 0D 2A A0 70 6F 6B |mp.=1....*.*.pok|
00000130: 65 A0 35 31 36 31 34 21 A0 6E 75 6D 62 65 72 A0 |e.51614!.number.|
00000140: 6F 66 A0 64 65 63 64 67 A0 A0 2A 0D 2A A0 70 6F |of.decdg..*.*.po|
00000150: 6B 65 A0 35 31 36 31 35 21 A0 66 69 6C 6C A0 63 |ke.51615!.fill.c|
00000160: 68 61 72 A0 28 61 73 6B 65 79 29 2A 0D 2A A0 70 |har.(askey)*.*.p|
00000170: 6F 6B 65 A0 35 31 35 34 39 21 A0 6C 65 61 64 69 |oke.51549!.leadi|
00000180: 6E 67 A0 63 68 61 72 A0 A0 A0 A0 A0 2A 0D 2A 2A |ng.char.....*.**|
00000190: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000001A0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 0D |**************..|
000001B0: 20 6F 72 67 20 24 63 39 30 30 0D 0D 66 72 6D 6E | org $c900..frmn|
000001C0: 75 6D 20 65 71 75 20 24 61 64 38 61 0D 61 73 63 |um equ $ad8a.asc|
000001D0: 69 69 20 65 71 75 20 24 62 64 62 62 0D 6F 75 74 |ii equ $bdbb.out|
000001E0: 20 65 71 75 20 24 61 62 31 65 0D 0D 20 6A 73 72 | equ $ab1e.. jsr|
000001F0: 20 66 72 6D 6E 75 6D 20 3B 67 65 74 A0 6E 75 6D | frmnum ;get.num|
00000200: 65 72 69 63 A0 74 65 72 6D 0D 20 6A 73 72 20 61 |eric.term. jsr a|
00000210: 73 63 69 69 20 3B 63 68 61 6E 67 65 A0 74 6F A0 |scii ;change.to.|
00000220: 61 73 63 69 69 A0 61 74 A0 24 31 30 30 0D 20 6A |ascii.at.$100. j|
00000230: 73 72 20 75 73 69 6E 67 20 3B 75 73 65 A0 6E 65 |sr using ;use.ne|
00000240: 77 A0 72 6F 75 74 69 6E 65 0D 20 6A 73 72 20 6F |w.routine. jsr o|
00000250: 75 74 20 3B 73 74 72 69 6E 67 A0 6F 75 74 70 75 |ut ;string.outpu|
00000260: 74 0D 20 72 74 73 20 3B 72 65 74 75 72 6E 0D 75 |t. rts ;return.u|
00000270: 73 69 6E 67 20 6C 64 61 20 23 27 65 0D 20 6A 73 |sing lda #'e. js|
00000280: 72 20 63 68 65 63 6B 20 3B 63 68 65 63 6B 73 A0 |r check ;checks.|
00000290: 6F 6E A0 65 78 70 2E 66 6F 72 6D 61 74 0D 20 62 |on.exp.format. b|
000002A0: 63 73 20 73 65 74 70 74 72 0D 20 6C 64 61 20 64 |cs setptr. lda d|
000002B0: 65 63 69 6E 74 20 3B 66 6C 61 67 A0 66 6F 72 A0 |ecint ;flag.for.|
000002C0: 64 63 2F 69 6E 74 65 67 65 72 0D 20 62 65 71 20 |dc/integer. beq |
000002D0: 69 6E 74 65 67 65 72 0D 20 6C 64 61 20 24 31 30 |integer. lda $10|
000002E0: 32 0D 20 62 6E 65 20 6C 31 0D 20 6C 64 79 20 6C |2. bne l1. ldy l|
000002F0: 65 6E 67 74 68 20 3B 63 6F 6D 70 6C 65 74 65 A0 |ength ;complete.|
00000300: 6C 65 6E 67 74 68 A0 3D 31 0D 20 6C 64 61 20 23 |length.=1. lda #|
00000310: 27 30 0D 6C 32 20 73 74 61 20 24 31 30 32 2C 79 |'0.l2 sta $102,y|
00000320: 20 3B 66 69 6C 6C A0 62 75 66 66 65 72 A0 77 69 | ;fill.buffer.wi|
00000330: 74 68 A0 30 73 0D 20 64 65 79 0D 20 62 6E 65 20 |th.0s. dey. bne |
00000340: 6C 32 0D 6C 31 20 6C 64 61 20 23 27 2E 0D 20 6A |l2.l1 lda #'.. j|
00000350: 73 72 20 63 68 65 63 6B 0D 20 74 61 79 0D 20 62 |sr check. tay. b|
00000360: 63 63 20 2A 2B 34 0D 20 6C 64 79 20 23 27 30 0D |cc *+4. ldy #'0.|
00000370: 20 6C 64 61 20 23 30 0D 20 6A 73 72 20 63 68 65 | lda #0. jsr che|
00000380: 63 6B 0D 20 74 79 61 0D 20 73 74 61 20 24 31 30 |ck. tya. sta $10|
00000390: 30 2C 78 0D 20 6C 64 61 20 23 27 2E 0D 20 6A 73 |0,x. lda #'.. js|
000003A0: 72 20 63 68 65 63 6B 0D 20 6C 64 79 20 64 65 63 |r check. ldy dec|
000003B0: 6C 65 6E 20 3B 23 A0 6F 66 A0 64 65 63 A0 64 69 |len ;#.of.dec.di|
000003C0: 67 69 74 73 0D 6C 33 20 69 6E 78 0D 20 64 65 79 |gits.l3 inx. dey|
000003D0: 0D 20 62 6E 65 20 6C 33 0D 6C 38 20 63 70 78 20 |. bne l3.l8 cpx |
000003E0: 6C 65 6E 67 74 68 0D 20 62 63 73 20 73 65 74 70 |length. bcs setp|
000003F0: 74 72 0D 20 6C 64 79 20 6C 65 6E 67 74 68 0D 20 |tr. ldy length. |
00000400: 6C 64 61 20 23 30 0D 20 73 74 61 20 24 31 30 31 |lda #0. sta $101|
00000410: 2C 79 0D 6C 36 20 6C 64 61 20 24 31 30 30 2C 78 |,y.l6 lda $100,x|
00000420: 0D 20 63 6D 70 20 23 33 32 20 3B 6C 65 61 64 69 |. cmp #32 ;leadi|
00000430: 6E 67 A0 63 68 61 72 2E A0 62 6C 61 6E 6B 0D 20 |ng.char..blank. |
00000440: 62 6E 65 20 6C 35 0D 20 6C 64 61 20 23 27 0D 6C |bne l5. lda #'.l|
00000450: 35 20 73 74 61 20 24 31 30 30 2C 79 0D 20 64 65 |5 sta $100,y. de|
00000460: 78 0D 20 62 70 6C 20 6C 34 0D 20 6C 64 61 20 66 |x. bpl l4. lda f|
00000470: 69 6C 6C 65 72 0D 20 64 65 79 0D 20 62 70 6C 20 |iller. dey. bpl |
00000480: 6C 35 0D 6C 34 20 64 65 79 0D 20 62 70 6C 20 6C |l5.l4 dey. bpl l|
00000490: 36 0D 73 65 74 70 74 72 20 6C 64 61 20 23 30 20 |6.setptr lda #0 |
000004A0: 3B 73 65 74 A0 70 6F 69 6E 74 65 72 A0 6F 6E A0 |;set.pointer.on.|
000004B0: 62 75 66 66 65 72 0D 20 6C 64 79 20 23 31 0D 20 |buffer. ldy #1. |
000004C0: 72 74 73 0D 69 6E 74 65 67 65 72 20 6C 64 61 20 |rts.integer lda |
000004D0: 23 30 0D 20 6A 73 72 20 63 68 65 63 6B 0D 20 62 |#0. jsr check. b|
000004E0: 63 63 20 73 65 74 70 74 72 0D 20 74 78 61 0D 20 |cc setptr. txa. |
000004F0: 74 61 79 0D 20 6C 64 61 20 24 31 30 32 0D 20 62 |tay. lda $102. b|
00000500: 65 71 20 6C 37 0D 20 6C 64 61 20 23 27 2E 0D 20 |eq l7. lda #'.. |
00000510: 6A 73 72 20 63 68 65 63 6B 0D 20 62 63 63 20 6C |jsr check. bcc l|
00000520: 37 0D 20 74 78 61 0D 20 74 61 79 0D 6C 37 20 74 |7. txa. tay.l7 t|
00000530: 79 61 0D 20 74 61 78 0D 20 64 65 78 0D 20 62 70 |ya. tax. dex. bp|
00000540: 6C 20 6C 38 0D 63 68 65 63 6B 20 6C 64 78 20 23 |l l8.check ldx #|
00000550: 30 0D 6C 39 20 63 6D 70 20 24 31 30 30 2C 78 0D |0.l9 cmp $100,x.|
00000560: 20 62 65 71 20 6C 31 30 0D 20 69 6E 78 0D 20 63 | beq l10. inx. c|
00000570: 70 78 20 23 31 32 0D 20 62 6E 65 20 6C 39 0D 20 |px #12. bne l9. |
00000580: 63 6C 63 0D 6C 31 30 20 72 74 73 0D 64 65 63 69 |clc.l10 rts.deci|
00000590: 6E 74 20 68 65 78 20 33 31 0D 6C 65 6E 67 74 68 |nt hex 31.length|
000005A0: 20 68 65 78 20 30 39 0D 64 65 63 6C 65 6E 20 68 | hex 09.declen h|
000005B0: 65 78 20 30 32 0D 66 69 6C 6C 65 72 20 68 65 78 |ex 02.filler hex|
000005C0: 20 32 30 0D 6C 65 61 64 69 6E 67 20 65 71 75 20 | 20.leading equ |
000005D0: 6C 35 2D 31 0D |l5-1. |
..********************************.* PRI
NT USING EXTENSION *.************
********************.* SYS 51456,X
*.*-------------------------
-----*.* ADDRESS ! PARAMETERS *.
* ---------------------------- *.* POKE
51612! 0=W, 1=DEC *.* POKE 51613!
0=10, COMP =1 *.* POKE 51614! NUMBER
OF DECDG *.* POKE 51615! FILL CHAR (ASK
EY)*.* POKE 51549! LEADING CHAR *.**
******************************.. ORG $C9
00..FRMNUM EQU $AD8A.ASCII EQU $BDBB.OUT
EQU $AB1E.. JSR FRMNUM ;GET NUMERIC TER
M. JSR ASCII ;CHANGE TO ASCII AT $100. J
SR USING ;USE NEW ROUTINE. JSR OUT ;STRI
NG OUTPUT. RTS ;RETURN.USING LDA #'E. JS
R CHECK ;CHECKS ON EXP.FORMAT. BCS SETPT
R. LDA DECINT ;FLAG FOR DC/INTEGER. BEQ
INTEGER. LDA $102. BNE L1. LDY LENGTH ;C
OMPLETE LENGTH =1. LDA #'0.L2 STA $102,Y
;FILL BUFFER WITH 0S. DEY. BNE L2.L1 LD
A #'.. JSR CHECK. TAY. BCC *+4. LDY #'0.
LDA #0. JSR CHECK. TYA. STA $100,X. LDA
#'.. JSR CHECK. LDY DECLEN ;# OF DEC DI
GITS.L3 INX. DEY. BNE L3.L8 CPX LENGTH.
BCS SETPTR. LDY LENGTH. LDA #0. STA $101
,Y.L6 LDA $100,X. CMP #32 ;LEADING CHAR.
BLANK. BNE L5. LDA #'.L5 STA $100,Y. DE
X. BPL L4. LDA FILLER. DEY. BPL L5.L4 DE
Y. BPL L6.SETPTR LDA #0 ;SET POINTER ON
BUFFER. LDY #1. RTS.INTEGER LDA #0. JSR
CHECK. BCC SETPTR. TXA. TAY. LDA $102. B
EQ L7. LDA #'.. JSR CHECK. BCC L7. TXA.
TAY.L7 TYA. TAX. DEX. BPL L8.CHECK LDX #
0.L9 CMP $100,X. BEQ L10. INX. CPX #12.
BNE L9. CLC.L10 RTS.DECINT HEX 31.LENGTH
HEX 09.DECLEN HEX 02.FILLER HEX 20.LEAD
ING EQU L5-1.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL