Submitted by Steve Fewell
Name: Save Integer to Zero Page Address
Starting Address: &BDC6
Entry criteria: X is the Zero page address of the first of 4 sequential bytes of memory in which to store a 32-bit Integer variable.
Exit: The zero page locations pointed to by X (That is locations 00,X to 03,X) now contain the 32-bit Integer from the IWA.
The contents of the IWA are copied to the zero page memory locations pointed to by the X register (The number is stored least significant byte first, one byte is copied at a time). The routine sets A to #&40 to indicate that an Integer number is being processed before exiting.
There is another routine which saves the IWA to any address, but we need this zero page routine because it executing a lot faster than the one which allows longer addresses.
Disassembly for the Save Integer to Zero Page Address routine
|BDC6||*||165 042||A5 2A||LDA &2A|
|BDC8||149 000||95 00||STA &00,X|
|BDCA||+||165 043||A5 2B||LDA &2B|
|BDCC||149 001||95 01||STA &01,X|
|BDCE||,||165 044||A5 2C||LDA &2C|
|BDD0||149 002||95 02||STA &02,X|
|BDD2||-||165 045||A5 2D||LDA &2D|
|BDD4||149 003||95 03||STA &03,X|