To that end, I have created some macros for bank-switching, and for indexed jumps. I will add more macros and routines as I complete them for my own projects, and others are welcome to contribute their ideas. Below is a list of the macros in the zipped package attached to this post. The attached zip file contains the ARPM files and an example program using some of the macros.
; Macros defined: ; --------------- ; From ARPM_BankSwitch.h: ; ----------------------- ; BS_START_BANK <bank_num> - Declare a new bank and insert common code. ; BS_END_BANK <bank_num> - End a bank image and report space remaining. ; ; JMB <label> - JuMp Bank switched. (Replaces JMP instruction) ; JSB <label> - Jump to Subroutine Bank switched (Replaces JSR) ; RTB <label> - ReTurn from subroutine Bank switched. (Replaces RTS) ; ; From ARPM_IndexedJump.h: ; ------------------------ ; JIT_START <table-name> - Start a new indexed-jump table. ; JIT_ENTRY <address-label> - Add a pointer to the table ; JIT_END <table-name> - Finalize the table into ROM. ; ; JIX <table-name> - Jump Indexed X (ON X GOTO <table-name>) ; JIY <table-name> - Jump Indexed Y (ON Y GOTO <table-name>) ; ; SIX <table-name> - Subroutine Indexed X (ON X GOSUB <table-name>) ; SIY <table-name> - Subroutine Indexed Y (ON Y GOSUB <table-name>) ; ;=============================================================================
Future dream features:
- A formal TV frame generating label that you can hang kernels off of.
- A script driven sound FX and music engine.
- Kernels
- RAM bit field macros
Cheers!
Rob














