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

WMUL

FILE INFORMATION

FILENAME(S): WMUL

FILE TYPE(S): PRG

FILE SIZE: 407b

FIRST SEEN: 2025-11-30 21:11:34

APPEARS ON: 1 disk(s)

FILE HASH

8c05d138940e24261893fd6d8ad98a8b2a2b88b721bed49b69e44ebbb0f0bfaa

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
NOG UITZOEKEN WMUL PRG DuncanTwain 4 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 20 57 4D 55 4C 20 2D  20 55 4E 53 49 47 4E 45  |; WMUL - UNSIGNE|
00000010: 44 20 31 36 20 42 49 54  20 4D 55 4C 54 49 50 4C  |D 16 BIT MULTIPL|
00000020: 59 0D 20 44 45 46 20 57  4D 55 4C 20 53 59 50 4E  |Y. DEF WMUL SYPN|
00000030: 54 25 20 2C 20 53 59 54  4D 50 31 25 20 2C 20 2E  |T% , SYTMP1% , .|
00000040: 53 59 43 4E 54 0D 20 20  4C 44 58 20 23 31 36 0D  |SYCNT.  LDX #16.|
00000050: 20 20 4C 45 54 20 30 20  2D 3E 20 53 59 54 4D 50  |  LET 0 -> SYTMP|
00000060: 20 2D 3E 20 53 59 54 4D  50 2B 31 0D 53 59 57 4D  | -> SYTMP+1.SYWM|
00000070: 31 0D 20 20 52 4F 52 20  53 59 54 4D 50 31 2B 31  |1.  ROR SYTMP1+1|
00000080: 20 3A 20 52 4F 52 20 53  59 54 4D 50 31 0D 20 20  | : ROR SYTMP1.  |
00000090: 42 43 43 20 53 59 57 4D  32 0D 20 20 4C 45 54 20  |BCC SYWM2.  LET |
000000A0: 53 59 54 4D 50 20 3D 20  53 59 54 4D 50 20 2B 20  |SYTMP = SYTMP + |
000000B0: 53 59 50 4E 54 0D 20 20  4C 44 41 20 53 59 54 4D  |SYPNT.  LDA SYTM|
000000C0: 50 2B 31 20 3A 20 41 44  43 20 53 59 50 4E 54 2B  |P+1 : ADC SYPNT+|
000000D0: 31 20 3A 20 53 54 41 20  53 59 54 4D 50 2B 31 0D  |1 : STA SYTMP+1.|
000000E0: 53 59 57 4D 32 20 41 53  4C 20 53 59 50 4E 54 20  |SYWM2 ASL SYPNT |
000000F0: 3A 20 52 4F 4C 20 53 59  50 4E 54 2B 31 0D 20 20  |: ROL SYPNT+1.  |
00000100: 44 45 58 20 3A 20 42 4E  45 20 53 59 57 4D 31 0D  |DEX : BNE SYWM1.|
00000110: 20 20 4C 45 54 20 53 59  50 4E 54 20 3D 20 53 59  |  LET SYPNT = SY|
00000120: 43 4E 54 0D 20 20 4C 45  54 20 53 59 50 4E 54 2B  |CNT.  LET SYPNT+|
00000130: 31 20 3D 20 53 59 43 4E  54 2B 31 0D 20 20 4C 44  |1 = SYCNT+1.  LD|
00000140: 59 20 23 30 20 3A 20 4C  45 54 20 28 53 59 50 4E  |Y #0 : LET (SYPN|
00000150: 54 29 2C 59 20 3D 20 53  59 54 4D 50 0D 20 20 49  |T),Y = SYTMP.  I|
00000160: 4E 59 20 3A 20 4C 45 54  20 28 53 59 50 4E 54 29  |NY : LET (SYPNT)|
00000170: 2C 59 20 3D 20 53 59 54  4D 50 2B 31 0D 20 20 52  |,Y = SYTMP+1.  R|
00000180: 45 54 55 52 4E 0D 20 45  4E 44 44 45 46 20 57 4D  |ETURN. ENDDEF WM|
00000190: 55 4C 0D 00 00 00 FD                              |UL.....         |
; WMUL - UNSIGNED 16 BIT MULTIPLY. DEF W
MUL SYPNT% , SYTMP1% , .SYCNT.  LDX #16.
  LET 0 -> SYTMP -> SYTMP+1.SYWM1.  ROR 
SYTMP1+1 : ROR SYTMP1.  BCC SYWM2.  LET 
SYTMP = SYTMP + SYPNT.  LDA SYTMP+1 : AD
C SYPNT+1 : STA SYTMP+1.SYWM2 ASL SYPNT 
: ROL SYPNT+1.  DEX : BNE SYWM1.  LET SY
PNT = SYCNT.  LET SYPNT+1 = SYCNT+1.  LD
Y #0 : LET (SYPNT),Y = SYTMP.  INY : LET
 (SYPNT),Y = SYTMP+1.  RETURN. ENDDEF WM
UL.....
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL