aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/msp430/words/um-star.asm
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/msp430/words/um-star.asm')
-rw-r--r--amforth-6.5/msp430/words/um-star.asm38
1 files changed, 0 insertions, 38 deletions
diff --git a/amforth-6.5/msp430/words/um-star.asm b/amforth-6.5/msp430/words/um-star.asm
deleted file mode 100644
index 7b031b0..0000000
--- a/amforth-6.5/msp430/words/um-star.asm
+++ /dev/null
@@ -1,38 +0,0 @@
-;C UM* u1 u2 -- ud unsigned 16x16->32 mult.
- CODEHEADER(XT_UMSTAR,3,"um*")
-.ifdef MPY
- dint
- mov @PSP, &MPY
- mov TOS, &OP2
- nop ; 1 cycle for calculation
- mov &RESLO, 0(PSP)
- mov &RESHI, TOS
- eint
-.else
- ; IROP1 = TOS register
- MOV @PSP,IROP2L ; get u1, leave room on stack
- PUSH IRACL ; possibly used as register B
-;
-; T.I. SIGNED MULTIPLY SUBROUTINE: IROP1 x IROP2L -> IRACM|IRACL
-MPYU: CLR IRACL ; 0 -> LSBs RESULT
- CLR IRACM ; 0 -> MSBs RESULT
-; UNSIGNED MULTIPLY AND ACCUMULATE SUBROUTINE:
-; (IROP1 x IROP2L) + IRACM|IRACL -> IRACM|IRACL
-MACU: CLR IROP2M ; MSBs MULTIPLIER
- MOV #1,IRBT ; BIT TEST REGISTER
-L_002: BIT IRBT,IROP1 ; TEST ACTUAL BIT
- JZ L_01 ; IF 0: DO NOTHING
- ADD IROP2L,IRACL ; IF 1: ADD MULTIPLIER TO RESULT
- ADDC IROP2M,IRACM
-L_01: RLA IROP2L ; MULTIPLIER x 2
- RLC IROP2M
-;
- RLA IRBT ; NEXT BIT TO TEST
- JNC L_002 ; IF BIT IN CARRY: FINISHED
-; END T.I. ROUTINE section 5.1.1 of MSP430 Family Application Reports
- MOV IRACL,0(PSP) ; low result on stack
- MOV IRACM,TOS ; high result in TOS
- POP IRACL ; possibly used as register B
-
-.endif
- NEXT