1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-10-29 14:30:41 +00:00
millfork/include/zp_reg.mfk

46 lines
760 B
Plaintext
Raw Normal View History

#if not(ARCH_6502)
#warn zp_reg module should be used only on 6502-compatible targets
#endif
2018-12-19 00:09:27 +00:00
noinline asm byte __mul_u8u8u8() {
? LDA #0
2018-06-18 20:40:32 +00:00
? JMP __mul_u8u8u8_start
__mul_u8u8u8_add:
? CLC
? ADC __reg.lo
2018-06-18 20:40:32 +00:00
__mul_u8u8u8_loop:
? ASL __reg.lo
2018-06-18 20:40:32 +00:00
__mul_u8u8u8_start:
? LSR __reg.hi
? BCS __mul_u8u8u8_add
? BNE __mul_u8u8u8_loop
? RTS
}
2018-12-14 21:50:20 +00:00
#if ZPREG_SIZE >= 3
2018-12-19 00:09:27 +00:00
noinline asm word __mul_u16u8u16() {
2018-12-14 21:50:20 +00:00
? LDA #0
? TAX
? JMP __mul_u16u8u16_start
__mul_u16u8u16_add:
? CLC
? ADC __reg
? TAY
? TXA
? ADC __reg + 1
? TAX
? TYA
__mul_u16u8u16_loop:
? ASL __reg
? ROL __reg + 1
__mul_u16u8u16_start:
? LSR __reg + 2
? BCS __mul_u16u8u16_add
? BNE __mul_u16u8u16_loop
? RTS
}
#endif