Submitted by Steve Fewell
Name: Integer MOD routine
Starting Address: &9FF5
Entry criteria: Either IWA or FWA contain the dividend. A contains the variable type (Floating-Point/Integer). The Basic Text Pointer 2 points to an expression (the divisor) [e.g. " A%"]
Exit: The IWA.= The Remainder of IWA / Divisor-expression
Call the Integer Division routine to evaluate the Divisor-expression and perform the actual division.
Push the sign-bit (&38) of the result to the 6502 stack, load X with &3D (to specify where the result is located, this is done by 9FB2), and call the end of the Integer multiplication routine to put the Result into the IWA, convert it to the correct sign, and to check the next operator to see if any further multiplication/division processing is required.
Disassembly for the Integer MOD routine
|9FF5||032 249 128||20 F9 80||JSR &80F9 Integer Division|
|9FF8||8||165 056||A5 38||LDA &38|
|9FFB||128 181||80 B5||BRA -75 --> &9FB2 Get Result from Zero Page & check next operator in expression|