/RECURSIVE ROUTINE TO CALCULATE FACTORIALS /***************************************** /CALLED WITH NUMBER IN ACCUMULATOR /ANSWER IN ACCUMULATOR ON RETURN *10 /STARTIN ADDRESS START, LDX K 0 /SET INDEX-REGISTER LDS K 250 /SET STACK-POINTER LDA A X NUMBER JSR X FACTOR STA A X ANSWER STOP, JMP E STOP FACTOR, CMP A K 1 BHI CONTIN RTS CONTIN, PSHA DECA JSR X FACTOR TAB PULA JSR X MULT RTS MULT, CLC /SIMPLE MULTIPLIER STA A X TEM LDA A K 10 STA A X CTR CLRA LOOP, ROLB BCC SHIFT ADD A E TEM SHIFT, DEC E CTR BEQ END CLC ASLA BRA LOOP END, RTS NUMBER, 0 /NUMBER WHOSE FACTORIAL IS WANTED ANSWER, 0 /ANSWER IS PUT HERE CTR, 0 TEM, 0 $$$$$$$$ /END OF PROGRAMME