;16 bits vermenigvuldigen¢;bruikbaar als include file¢;onafhankelijk van geheugen plaatsing of zeropage¢;¢MUL16¢;save return adres¢ PLA¢ STA RETADR¢ PLA¢ STA RETADR+1¢¢;multiplicator van de stack¢ PLA¢ STA MLIER¢ PLA¢ STA MLIER+1¢¢;multiplicant van de stack¢ PLA¢ STA MCAND¢ PLA¢ STA MCAND+1¢;¢;¢;de vermenigvuldiging zelf¢;¢ LDA #0¢ STA HIPROD ;clear hiprod¢ STA HIPROD+1¢ LDX #17 ;aantal bits in de¢ ;multiplicator+1¢ ;de extra bit is ¢ ;voor de over-¢ ;drachtsvlag¢ CLC¢¢MULLP¢ ROR HIPROD+1¢ ROR HIPROD¢ ROR MLIER+1¢ ROR MLIER¢ BCC DECCNT¢ CLC ;volgend bit was 1¢ ;tel multiplicant¢ ;bij produkt op¢¢ LDA MCAND¢ ADC HIPROD¢ STA HIPROD¢ LDA MCAND+1¢ ADC HIPROD+1¢ STA HIPROD+1¢¢DECCNT¢ DEX¢ BNE MULLP¢¢;zet resultaat op de stack¢ LDA MLIER+1¢ PHA¢ LDA MLIER¢ PHA¢¢;zet terugkeer adres op de stack¢ LDA RETADR+1¢ PHA¢ LDA RETADR¢ PHA¢ RTS¢¢MCAND .WORD 0¢MLIER .WORD 0¢HIPROD .WORD 0¢RETADR .WORD 0¢;einde source 16 bits vermenigvuldiging.¢