! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! Fluke 9010A Code Generator ! Process copyright QuarterArcade.com, LLC ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! SETUP CODE !! Purpose: To set the pod include file and the pod being used, as well as !! relevant setup conditions. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! setup include "6809.pod" POD 6809 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! SUB: Main !! PURPOSE: Start the process. Introduce the program to refresh the !! operator's memory, and enter into the main menu. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program Main declarations !! Intro execute QuarterArcadeLogo !! Short delay to introduce program dpy I, ROBOT - IROBOT aux I, ROBOT - IROBOT REG8 = 10 execute DelayTics8 execute MainMenu !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! SUB: MainMenu !! PURPOSE: Give the user options to select from in menu format. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program MainMenu declarations assign REGB to Input MenuLp: Input = 0 aux _ aux _ aux MAIN MENU aux ____1=RAMMenu aux ____2=ROMMenu aux _ aux _ aux MENU COMMAND> dpy CMD> 1-2 execute GetKey if Input = 1 goto Menu1 !! hooks to RAMMenu if Input = 2 goto Menu2 !! hooks to ROMMenu goto MenuLp Menu1: !! RAMMenu execute RAMMenu dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu2: !! ROMMenu execute ROMMenu dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp MenuF: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! SUB: RAMMenu !! PURPOSE: Give the user options to select from in menu format. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program RAMMenu declarations assign REGB to Input MenuLp: Input = 0 aux _ aux _ aux RAM MENU aux ____1=RAM1 aux ____2=RAM2 aux ____3=RAM3 aux ____4=RAM4 aux ____5=RAM5 aux ____6=RAM6 aux ____E=TEST ALL aux _ aux ____F=RETURN aux _ aux MENU COMMAND> dpy CMD> 1-6,E=ALL,F=UP execute GetKey if Input = 1 goto Menu1 !! hooks to RAM1 if Input = 2 goto Menu2 !! hooks to RAM2 if Input = 3 goto Menu3 !! hooks to RAM3 if Input = 4 goto Menu4 !! hooks to RAM4 if Input = 5 goto Menu5 !! hooks to RAM5 if Input = 6 goto Menu6 !! hooks to RAM6 if Input = E goto MenuE !! hooks to all tests goto MenuLp Menu1: !! RAM1 execute RAM1 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu2: !! RAM2 execute RAM2 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu3: !! RAM3 execute RAM3 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu4: !! RAM4 execute RAM4 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu5: !! RAM5 execute RAM5 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu6: !! RAM6 execute RAM6 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp MenuE: !! All tests execute RAM1 execute RAM2 execute RAM3 execute RAM4 execute RAM5 execute RAM6 dpy # dpy TESTS DONE aux TESTS DONE execute GetKey goto MenuLp MenuF: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: RAM1 !! Purpose: Tests one address range in RAM mode. $0-$7FF !! Calculated RAM. Confirm. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program RAM1 dpy RAM test @ 0-7FF aux RAM test @ 0-7FF RAM short @ 0-7FF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: RAM2 !! Purpose: Tests one address range in RAM mode. $800-$FFF !! Calculated RAM. Confirm. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program RAM2 dpy RAM test @ 800-FFF aux RAM test @ 800-FFF RAM short @ 800-FFF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: RAM3 !! Purpose: Tests one address range in RAM mode. $1200-$12FF !! Calculated RAM. Confirm. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program RAM3 dpy RAM test @ 1200-12FF aux RAM test @ 1200-12FF RAM short @ 1200-12FF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: RAM4 !! Purpose: Tests one address range in RAM mode. $1400-$143F !! Calculated RAM. Confirm. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program RAM4 dpy RAM test @ 1400-143F aux RAM test @ 1400-143F RAM short @ 1400-143F !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: RAM5 !! Purpose: Tests one address range in RAM mode. $1C00-$1FFF !! Calculated RAM. Confirm. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program RAM5 dpy RAM test @ 1C00-1FFF aux RAM test @ 1C00-1FFF RAM short @ 1C00-1FFF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: RAM6 !! Purpose: Tests one address range in RAM mode. $2000-$3FFF !! Calculated RAM. Confirm. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program RAM6 dpy RAM test @ 2000-3FFF aux RAM test @ 2000-3FFF RAM short @ 2000-3FFF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! SUB: ROMMenu !! PURPOSE: Give the user options to select from in menu format. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program ROMMenu declarations assign REGB to Input MenuLp: Input = 0 aux _ aux _ aux ROM MENU aux ____1=ROM208 aux ____2=ROM209 aux ____3=ROM210 aux ____4=ROM405 aux ____5=ROM206 aux ____6=ROM207 aux ____E=TEST ALL aux _ aux ____F=RETURN aux _ aux MENU COMMAND> dpy CMD> 1-6,E=ALL,F=UP execute GetKey if Input = 1 goto Menu1 !! hooks to ROM208 if Input = 2 goto Menu2 !! hooks to ROM209 if Input = 3 goto Menu3 !! hooks to ROM210 if Input = 4 goto Menu4 !! hooks to ROM405 if Input = 5 goto Menu5 !! hooks to ROM206 if Input = 6 goto Menu6 !! hooks to ROM207 if Input = E goto MenuE !! hooks to all tests goto MenuLp Menu1: !! ROM208 execute ROM208 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu2: !! ROM209 execute ROM209 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu3: !! ROM210 execute ROM210 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu4: !! ROM405 execute ROM405 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu5: !! ROM206 execute ROM206 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp Menu6: !! ROM207 execute ROM207 dpy # dpy TEST DONE aux TEST DONE execute GetKey goto MenuLp MenuE: !! All tests execute ROM208 execute ROM209 execute ROM210 execute ROM405 execute ROM206 execute ROM207 dpy # dpy TESTS DONE aux TESTS DONE execute GetKey goto MenuLp MenuF: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: ROM208 !! Purpose: Tests one ROM. $6000-$7FFF !! Generated ROM test !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program ROM208 dpy ROM test @ 6000-7FFF sig 9F09 aux ROM test @ 6000-7FFF sig 9F09 ROM test @ 6000-7FFF sig 9F09 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: ROM209 !! Purpose: Tests one ROM. $8000-$BFFF !! Generated ROM test !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program ROM209 dpy ROM test @ 8000-BFFF sig 6B93 aux ROM test @ 8000-BFFF sig 6B93 ROM test @ 8000-BFFF sig 6B93 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: ROM210 !! Purpose: Tests one ROM. $C000-$FFFF !! Generated ROM test !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program ROM210 dpy ROM test @ C000-FFFF sig 3C0D aux ROM test @ C000-FFFF sig 3C0D ROM test @ C000-FFFF sig 3C0D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: ROM405 !! Purpose: Tests one ROM. $10000-$13FFF !! Generated ROM test !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program ROM405 dpy ROM test @ 10000-13FFF sig C785 aux ROM test @ 10000-13FFF sig C785 ROM test @ 10000-13FFF sig C785 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: ROM206 !! Purpose: Tests one ROM. $14000-$17FFF !! Generated ROM test !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program ROM206 dpy ROM test @ 14000-17FFF sig 883F aux ROM test @ 14000-17FFF sig 883F ROM test @ 14000-17FFF sig 883F !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: ROM207 !! Purpose: Tests one ROM. $18000-$1BFFF !! Generated ROM test !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program ROM207 dpy ROM test @ 18000-1BFFF sig 6D95 aux ROM test @ 18000-1BFFF sig 6D95 ROM test @ 18000-1BFFF sig 6D95 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: KeyEnable !! Purpose: Wait for a key to be pressed !! Inputs: none !! Output: Reg B = 40; toggles the enabling of asynchronous keyboard interrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program KeyEnable REGB = 40 !Initialize reg B dpy-+%B !Enable key interrupt to reg B !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: GetKey !! Purpose: Wait here until a key is pressed !! Inputs: none !! Calls to: KeyEnable !! Outputs: Register B = the value of a key pressed (0-3F) !! Based on program found in the GFI example from Fluke's documentation !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program GetKey execute KeyEnable ! Enable interrupt 1: LABEL 1 if REGB = 40 goto 1 ! Loop till key pressed (<40) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: DelayTics8 !! Purpose: Delays the number of tics specified by REG8 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program DelayTics8 REG1 = REG8 dloop: dec REG1 if REG1 > 0 goto dloop !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Program: QuarterArcadeLogo !! Purpose: I'm a geek. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program QuarterArcadeLogo dpy TECH.QUARTERARCADE.COM aux TECH.QUARTERARCADE.COM REG8 = 10 execute DelayTics8