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

PRDEC

FILE INFORMATION

FILENAME(S): PRDEC

FILE TYPE(S): SEQ

FILE SIZE: 1K

FIRST SEEN: 2025-10-19 22:48:27

APPEARS ON: 4 disk(s)

FILE HASH

edf48422b11d268a6afd8475515786b7fdac1cc4a78530b2b8a6596a52b7c8e9

FOUND ON DISKS (4 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
SNAPSHOT64 PRDEC SEQ Radd Maxx 23 3 DOWNLOAD FILE
MERLIN PRDEC SEQ High Voltage Complete C64 Collection 22 3 DOWNLOAD FILE
MERLIN PRDEC SEQ High Voltage Complete C64 Collection 22 3 DOWNLOAD FILE
ICE DISK 28 PRDEC SEQ Icebreaker 22 3 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

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 61 2C 78 A0 49 4E A0  44 45 43 49 4D 41 4C 2E  |.a,x.IN.DECIMAL.|
00000050: 0D 2A A0 75 53 45 53 A0  4C 4F 43 41 54 49 4F 4E  |.*.uSES.LOCATION|
00000060: 53 A0 6E 6C 2C A0 6E 68  2C A0 6E 66 6C A0 28 53  |S.nl,.nh,.nfl.(S|
00000070: 43 52 41 54 43 48 29 0D  2A A0 41 4E 44 A0 6A 75  |CRATCH).*.AND.ju|
00000080: 73 74 2E A0 A0 28 6A 75  73 74 A0 53 48 4F 55 4C  |st...(just.SHOUL|
00000090: 44 A0 48 4F 4C 44 A0 30  A0 46 4F 52 A0 4C 45 46  |D.HOLD.0.FOR.LEF|
000000A0: 54 2C 0D 2A A0 4F 52 A0  24 32 30 A0 46 4F 52 A0  |T,.*.OR.$20.FOR.|
000000B0: 52 49 47 48 54 A0 4A 55  53 54 49 46 49 43 41 54  |RIGHT.JUSTIFICAT|
000000C0: 49 4F 4E 2E 29 0D 2A 2D  2D 2D 2D 2D 2D 2D 2D 2D  |ION.).*---------|
000000D0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000000E0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000000F0: 0D 0D 70 72 64 65 63 20  73 74 61 20 6E 68 20 3B  |..prdec sta nh ;|
00000100: 73 54 4F 52 45 A0 4E 55  4D 42 45 52 A0 48 49 0D  |sTORE.NUMBER.HI.|
00000110: 20 73 74 78 20 6E 6C 20  3B A0 26 A0 4C 4F 57 0D  | stx nl ;.&.LOW.|
00000120: 20 6C 64 78 20 23 39 20  3B 69 4E 44 45 58 A0 46  | ldx #9 ;iNDEX.F|
00000130: 4F 52 A0 35 A0 44 49 47  49 54 53 0D 20 73 74 78  |OR.5.DIGITS. stx|
00000140: 20 6E 66 6C 0D 6C 6F 61  64 30 20 6C 64 79 20 23  | nfl.load0 ldy #|
00000150: 22 30 22 20 3B 6E 55 4D  45 52 49 43 A0 4F 46 46  |"0" ;nUMERIC.OFF|
00000160: 53 45 54 0D 6D 6B 64 65  63 20 6C 64 61 20 6E 6C  |SET.mkdec lda nl|
00000170: 20 3B 72 45 50 45 41 54  45 44 A0 53 55 42 54 52  | ;rEPEATED.SUBTR|
00000180: 41 43 54 49 4F 4E 53 0D  20 63 6D 70 20 6E 75 6D  |ACTIONS. cmp num|
00000190: 74 62 6C 2D 31 2C 78 0D  20 6C 64 61 20 6E 68 0D  |tbl-1,x. lda nh.|
000001A0: 20 73 62 63 20 6E 75 6D  74 62 6C 2C 78 0D 20 62  | sbc numtbl,x. b|
000001B0: 63 63 20 6D 6B 64 32 20  3B 62 52 41 4E 43 48 A0  |cc mkd2 ;bRANCH.|
000001C0: 49 46 A0 4F 56 45 52 46  4C 4F 57 0D 20 73 74 61  |IF.OVERFLOW. sta|
000001D0: 20 6E 68 20 3B 64 4F A0  54 48 45 A0 53 55 42 54  | nh ;dO.THE.SUBT|
000001E0: 52 41 43 54 0D 20 6C 64  61 20 6E 6C 0D 20 73 62  |RACT. lda nl. sb|
000001F0: 63 20 6E 75 6D 74 62 6C  2D 31 2C 78 0D 20 73 74  |c numtbl-1,x. st|
00000200: 61 20 6E 6C 0D 20 69 6E  79 20 3B 63 4F 55 4E 54  |a nl. iny ;cOUNT|
00000210: A0 51 55 4F 54 49 45 4E  54 A0 44 49 47 49 54 0D  |.QUOTIENT.DIGIT.|
00000220: 20 62 6E 65 20 6D 6B 64  65 63 20 3B 61 4C 57 41  | bne mkdec ;aLWA|
00000230: 59 53 A0 54 41 4B 45 4E  0D 6D 6B 64 32 20 74 79  |YS.TAKEN.mkd2 ty|
00000240: 61 20 3B 67 45 54 A0 51  55 4F 54 49 45 4E 54 A0  |a ;gET.QUOTIENT.|
00000250: 44 49 47 49 54 0D 20 64  65 78 20 3B 70 4F 49 4E  |DIGIT. dex ;pOIN|
00000260: 54 A0 54 4F A0 53 4D 41  4C 4C 45 52 A0 50 4F 57  |T.TO.SMALLER.POW|
00000270: 45 52 A0 4F 46 A0 31 30  0D 20 62 65 71 20 70 72  |ER.OF.10. beq pr|
00000280: 64 63 20 3B 70 52 49 4E  54 A0 44 49 47 49 54 A0  |dc ;pRINT.DIGIT.|
00000290: 49 46 A0 4C 41 53 54 A0  4F 4E 45 0D 20 63 6D 70  |IF.LAST.ONE. cmp|
000002A0: 20 23 22 30 22 20 3B 70  4F 53 53 49 42 4C 45 A0  | #"0" ;pOSSIBLE.|
000002B0: 4C 45 41 44 49 4E 47 A0  5A 45 52 4F 3F 0D 20 62  |LEADING.ZERO?. b|
000002C0: 65 71 20 6D 6B 64 33 20  3B 62 52 41 4E 43 48 A0  |eq mkd3 ;bRANCH.|
000002D0: 49 46 A0 53 4F 0D 20 73  74 61 20 6E 66 6C 20 3B  |IF.SO. sta nfl ;|
000002E0: 66 4C 41 47 A0 4E 55 4D  42 45 52 A0 53 54 41 52  |fLAG.NUMBER.STAR|
000002F0: 54 45 44 0D 6D 6B 64 33  20 62 69 74 20 6E 66 6C  |TED.mkd3 bit nfl|
00000300: 20 3B 77 41 53 A0 41 A0  44 49 47 49 54 A0 50 52  | ;wAS.A.DIGIT.PR|
00000310: 49 4E 54 45 44 3F 0D 20  62 6D 69 20 70 72 64 63  |INTED?. bmi prdc|
00000320: 20 3B 70 52 49 4E 54 A0  54 48 49 53 A0 4F 4E 45  | ;pRINT.THIS.ONE|
00000330: A0 49 46 A0 53 4F 0D 20  6C 64 61 20 6A 75 73 74  |.IF.SO. lda just|
00000340: 20 3B 6C 45 41 44 49 4E  47 A0 5A 45 52 4F 2C A0  | ;lEADING.ZERO,.|
00000350: 43 48 45 43 4B A0 6A 75  73 74 0D 20 62 65 71 20  |CHECK.just. beq |
00000360: 6E 78 74 78 20 3B 6A 55  53 54 A0 4C 45 46 54 3A  |nxtx ;jUST.LEFT:|
00000370: A0 53 4B 49 50 0D 3B 6A  55 53 54 A0 52 49 47 48  |.SKIP.;jUST.RIGH|
00000380: 54 3A A0 50 52 49 4E 54  A0 53 50 41 43 45 0D 70  |T:.PRINT.SPACE.p|
00000390: 72 64 63 20 61 6E 64 20  23 24 37 66 20 3B 6D 41  |rdc and #$7f ;mA|
000003A0: 53 4B A0 48 49 47 48 A0  42 49 54 0D 20 6A 73 72  |SK.HIGH.BIT. jsr|
000003B0: 20 63 68 72 6F 75 74 20  3B 73 45 4E 44 A0 44 49  | chrout ;sEND.DI|
000003C0: 47 49 54 0D 6E 78 74 78  20 64 65 78 20 3B 70 4F  |GIT.nxtx dex ;pO|
000003D0: 49 4E 54 A0 54 4F A0 4E  45 58 54 A0 44 49 47 49  |INT.TO.NEXT.DIGI|
000003E0: 54 0D 20 62 70 6C 20 6C  6F 61 64 30 20 3B 6C 4F  |T. bpl load0 ;lO|
000003F0: 4F 50 A0 54 49 4C 4C A0  44 4F 4E 45 0D 20 72 74  |OP.TILL.DONE. rt|
00000400: 73 0D 0D 6E 75 6D 74 62  6C 20 64 61 20 31 2C 31  |s..numtbl da 1,1|
00000410: 30 2C 31 30 30 2C 31 30  30 30 2C 31 30 30 30 30  |0,100,1000,10000|
00000420: 0D                                                |.               |
*---------------------------------------
--.* SUBROUTINE TO PRINT A,X IN DECIMAL.
.* USES LOCATIONS NL, NH, NFL (SCRATCH).
* AND JUST.  (JUST SHOULD HOLD 0 FOR LEF
T,.* OR $20 FOR RIGHT JUSTIFICATION.).*-
----------------------------------------
..PRDEC STA NH ;STORE NUMBER HI. STX NL 
; & LOW. LDX #9 ;INDEX FOR 5 DIGITS. STX
 NFL.LOAD0 LDY #"0" ;NUMERIC OFFSET.MKDE
C LDA NL ;REPEATED SUBTRACTIONS. CMP NUM
TBL-1,X. LDA NH. SBC NUMTBL,X. BCC MKD2 
;BRANCH IF OVERFLOW. STA NH ;DO THE SUBT
RACT. LDA NL. SBC NUMTBL-1,X. STA NL. IN
Y ;COUNT QUOTIENT DIGIT. BNE MKDEC ;ALWA
YS TAKEN.MKD2 TYA ;GET QUOTIENT DIGIT. D
EX ;POINT TO SMALLER POWER OF 10. BEQ PR
DC ;PRINT DIGIT IF LAST ONE. CMP #"0" ;P
OSSIBLE LEADING ZERO?. BEQ MKD3 ;BRANCH 
IF SO. STA NFL ;FLAG NUMBER STARTED.MKD3
 BIT NFL ;WAS A DIGIT PRINTED?. BMI PRDC
 ;PRINT THIS ONE IF SO. LDA JUST ;LEADIN
G ZERO, CHECK JUST. BEQ NXTX ;JUST LEFT:
 SKIP.;JUST RIGHT: PRINT SPACE.PRDC AND 
#$7F ;MASK HIGH BIT. JSR CHROUT ;SEND DI
GIT.NXTX DEX ;POINT TO NEXT DIGIT. BPL L
OAD0 ;LOOP TILL DONE. RTS..NUMTBL DA 1,1
0,100,1000,10000.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL