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

MULT/DIV

FILE INFORMATION

FILENAME(S): MULT/DIV

FILE TYPE(S): SEQ

FILE SIZE: 710b

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

APPEARS ON: 3 disk(s)

FILE HASH

046aa5322db9f5e0fc9f4994cd17a3374722a15c50492b6dc49ae1ca030530e9

FOUND ON DISKS (3 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
SNAPSHOT64 MULT/DIV SEQ Radd Maxx 12 6 DOWNLOAD FILE
MERLIN MULT/DIV SEQ High Voltage Complete C64 Collection 23 0 DOWNLOAD FILE
MERLIN MULT/DIV SEQ High Voltage Complete C64 Collection 23 0 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 0D 2A  A0 31 36 A0 42 49 54 A0  |------.*.16.BIT.|
00000030: 4D 55 4C 54 49 50 4C 59  A0 41 4E 44 A0 44 49 56  |MULTIPLY.AND.DIV|
00000040: 49 44 45 A0 52 4F 55 54  49 4E 45 53 2E 0D 2A A0  |IDE.ROUTINES..*.|
00000050: 74 48 52 45 45 A0 31 36  A0 42 49 54 A0 28 54 57  |tHREE.16.BIT.(TW|
00000060: 4F 2D 42 59 54 45 29 A0  4C 4F 43 41 54 49 4F 4E  |O-BYTE).LOCATION|
00000070: 53 0D 2A A0 61 63 63 2C  A0 61 75 78 A0 41 4E 44  |S.*.acc,.aux.AND|
00000080: A0 65 78 74 A0 4D 55 53  54 A0 42 45 A0 53 45 54  |.ext.MUST.BE.SET|
00000090: A0 55 50 2C 0D 2A A0 50  52 45 46 45 52 41 42 4C  |.UP,.*.PREFERABL|
000000A0: 59 A0 4F 4E A0 5A 45 52  4F A0 50 41 47 45 2E 0D  |Y.ON.ZERO.PAGE..|
000000B0: 2A 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |*---------------|
000000C0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000000D0: 2D 2D 2D 2D 2D 2D 0D 0D  2A A0 6D 75 6C 74 69 70  |------..*.multip|
000000E0: 6C 79 A0 72 6F 75 74 69  6E 65 0D 0D 2A A0 61 63  |ly.routine..*.ac|
000000F0: 63 2A 61 75 78 A0 2D 3E  A0 5B 61 63 63 2C 65 78  |c*aux.->.[acc,ex|
00000100: 74 5D A0 28 4C 4F 57 2C  48 49 29 A0 33 32 A0 42  |t].(LOW,HI).32.B|
00000110: 49 54 A0 52 45 53 55 4C  54 0D 0D 6D 75 6C 74 20  |IT.RESULT..mult |
00000120: 6C 64 61 20 23 30 0D 20  73 74 61 20 65 78 74 2B  |lda #0. sta ext+|
00000130: 31 0D 20 6C 64 79 20 23  24 31 31 0D 5D 6C 6F 6F  |1. ldy #$11.]loo|
00000140: 70 20 6C 73 72 20 65 78  74 2B 31 0D 20 72 6F 72  |p lsr ext+1. ror|
00000150: 0D 20 72 6F 72 20 61 63  63 2B 31 0D 20 72 6F 72  |. ror acc+1. ror|
00000160: 20 61 63 63 0D 20 62 63  63 20 6D 75 6C 32 0D 20  | acc. bcc mul2. |
00000170: 63 6C 63 0D 20 61 64 63  20 61 75 78 0D 20 70 68  |clc. adc aux. ph|
00000180: 61 0D 20 6C 64 61 20 61  75 78 2B 31 0D 20 61 64  |a. lda aux+1. ad|
00000190: 63 20 65 78 74 2B 31 0D  20 73 74 61 20 65 78 74  |c ext+1. sta ext|
000001A0: 2B 31 0D 20 70 6C 61 0D  6D 75 6C 32 20 64 65 79  |+1. pla.mul2 dey|
000001B0: 0D 20 62 6E 65 20 5D 6C  6F 6F 70 0D 20 73 74 61  |. bne ]loop. sta|
000001C0: 20 65 78 74 0D 20 72 74  73 0D 0D 2A A0 64 69 76  | ext. rts..*.div|
000001D0: 69 64 65 A0 72 6F 75 74  69 6E 65 0D 0D 2A A0 61  |ide.routine..*.a|
000001E0: 63 63 2F 61 75 78 A0 2D  3E A0 61 63 63 2C A0 52  |cc/aux.->.acc,.R|
000001F0: 45 4D 41 49 4E 44 45 52  A0 49 4E A0 65 78 74 0D  |EMAINDER.IN.ext.|
00000200: 0D 64 69 76 20 6C 64 61  20 23 30 0D 20 73 74 61  |.div lda #0. sta|
00000210: 20 65 78 74 2B 31 0D 20  6C 64 79 20 23 24 31 30  | ext+1. ldy #$10|
00000220: 0D 5D 6C 6F 6F 70 20 61  73 6C 20 61 63 63 0D 20  |.]loop asl acc. |
00000230: 72 6F 6C 20 61 63 63 2B  31 0D 20 72 6F 6C 0D 20  |rol acc+1. rol. |
00000240: 72 6F 6C 20 65 78 74 2B  31 0D 20 70 68 61 0D 20  |rol ext+1. pha. |
00000250: 63 6D 70 20 61 75 78 0D  20 6C 64 61 20 65 78 74  |cmp aux. lda ext|
00000260: 2B 31 0D 20 73 62 63 20  61 75 78 2B 31 0D 20 62  |+1. sbc aux+1. b|
00000270: 63 63 20 64 69 76 32 0D  20 73 74 61 20 65 78 74  |cc div2. sta ext|
00000280: 2B 31 0D 20 70 6C 61 0D  20 73 62 63 20 61 75 78  |+1. pla. sbc aux|
00000290: 0D 20 70 68 61 0D 20 69  6E 63 20 61 63 63 0D 64  |. pha. inc acc.d|
000002A0: 69 76 32 20 70 6C 61 0D  20 64 65 79 0D 20 62 6E  |iv2 pla. dey. bn|
000002B0: 65 20 5D 6C 6F 6F 70 0D  20 73 74 61 20 65 78 74  |e ]loop. sta ext|
000002C0: 0D 20 72 74 73 0D                                 |. rts.          |
*-------------------------------------.*
 16 BIT MULTIPLY AND DIVIDE ROUTINES..* 
THREE 16 BIT (TWO-BYTE) LOCATIONS.* ACC,
 AUX AND EXT MUST BE SET UP,.* PREFERABL
Y ON ZERO PAGE..*-----------------------
--------------..* MULTIPLY ROUTINE..* AC
C*AUX -> [ACC,EXT] (LOW,HI) 32 BIT RESUL
T..MULT LDA #0. STA EXT+1. LDY #$11.]LOO
P LSR EXT+1. ROR. ROR ACC+1. ROR ACC. BC
C MUL2. CLC. ADC AUX. PHA. LDA AUX+1. AD
C EXT+1. STA EXT+1. PLA.MUL2 DEY. BNE ]L
OOP. STA EXT. RTS..* DIVIDE ROUTINE..* A
CC/AUX -> ACC, REMAINDER IN EXT..DIV LDA
 #0. STA EXT+1. LDY #$10.]LOOP ASL ACC. 
ROL ACC+1. ROL. ROL EXT+1. PHA. CMP AUX.
 LDA EXT+1. SBC AUX+1. BCC DIV2. STA EXT
+1. PLA. SBC AUX. PHA. INC ACC.DIV2 PLA.
 DEY. BNE ]LOOP. STA EXT. RTS.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL