AppleIIAsm-Collection/disks/disk2_common/T.COMMON.MAC
nathanriggs 1cca2ca580 various additions
mostly updated the required and common libraries, as well as created a minify program in applesoft basic that automatically creates a .min file from fully-commented source.
2019-01-09 23:12:28 -05:00

197 lines
5.0 KiB
Plaintext

*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*
* *
* COMMON.MAC *
* *
* AUTHOR: NATHAN RIGGS *
* CONTACT: NATHAN.RIGGS@ *
* OUTLOOK.COM *
* *
* VERSION: 0.3.0 *
* DATE: 10-JAN-2018 *
* ASSEMBLER: MERLIN 8 PRO *
* LICENSE: APACHE 2.0 *
* OS: DOS 3.3 *
* *
*------------------------------*
* *
* THIS IS A MACRO LIBRARY FOR *
* COMMON.LIB, AND CAN BE USED *
* REGARDLESS OF WHETHER A *
* SPECIFIC FUNCTION IS *
* INCLUDED AS A PUT IN THE *
* MAIN SOURCE. *
* *
*------------------------------*
* *
* LIST OF MACROS *
* *
* MFILL :: FILL MEMORY BLOCK *
* MMOVE :: MOVE MEMORY BLOCK *
* BEEP :: RING MY BELL *
* DELAY :: DELAY IN MILLISECS *
* ZSAVE :: SAVE FREE ZERO PAGE *
* ZLOAD :: LOAD SAVE ZERO PAGE *
* MSWAP :: SWAP MEM RANGES *
* *
*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*
*
*``````````````````````````````*
* MFILL :: FILL MEMORY BLOCK *
*- -*
* FILL BLOCK OF MEMORY WITH *
* SPECIFIED VALUE. *
*- -*
* PARAMETERS: *
* *
* ]1 = STARTING ADDRESS *
* ]2 = LENGTH IN BYTES *
* ]3 = FILL VALUE *
*- -*
* SAMPLE USAGE: *
* MFILL $300;#256;#0 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
MFILL MAC
_ISLIT ]1
_ISLIT ]2
LDA ]3 ; FILL VALUE
PHA
JSR MEMFILL
<<<
*
*``````````````````````````````*
* BEEP :: RING BELL X TIMES *
*- -*
* RING THE STANDARD BELL. *
*- -*
* PARAMETERS: *
* *
* ]1 = NUMBER OF RINGS *
*- -*
* SAMPLE USAGE: BEEP 10 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
BEEP MAC
LUP ]1
JSR BELL
--^
<<<
*
*``````````````````````````````*
* MMOVE :: MOVE MEMORY BLOCK *
*- -*
* MOVE A BLOCK OF MEMORY FROM *
* A SOURCE TO DESTINATION. *
*- -*
* PARAMETERS: *
* ]1 = SOURCE ADDRESS *
* ]2 = DESTINATION ADDRESS *
* ]3 = NUMBER OF BYTES *
*- -*
* SAMPLE USAGE: *
* *
* MMOVE $6A00;$7B00;#1024 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
MMOVE MAC
LDA #>]1
PHA
LDA #<]1
PHA
LDA #>]2
PHA
LDA #<]2
PHA
_ISLIT ]3
JSR MEMMOVE
<<<
*
*``````````````````````````````*
* DELAY :: DELAY X MILLISECS *
*- -*
* DELAY FOR PASSED MILLISECS *
*- -*
* PARAMETERS: *
* *
* ]1 = NUM OF MILLISECONDS *
*- -*
* SAMPLE USAGE: DELAY #250 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
DELAY MAC
LDY ]1
JSR DELAYMS
<<<
*
*``````````````````````````````*
* ZSAVE :: SAVE ZERO PAGE *
*- -*
* SAVE ZERO PAGE FREE AREAS *
* FOR LATER RESTORE. *
*- -*
* PARAMETERS: *
* *
* ]1 = ADDRESS TO STORE AT *
*- -*
* SAMPLE USAGE: ZSAVE $300 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
ZSAVE MAC
LDA #>]1
PHA
LDA #<]1
PHA
JSR ZMSAVE
<<<
*
*``````````````````````````````*
* ZLOAD :: LOAD ZERO PAGE *
*- -*
* RESTORE PREVIOUSLY SAVED *
* FREE ZERO PAGE VALUES. *
*- -*
* PARAMETERS: *
* *
* ]1 = ADDR TO LOAD FROM *
*- -*
* SAMPLE USAGE: ZLOAD $300 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
ZLOAD MAC
LDA #>]1
PHA
LDA #<]1
PHA
JSR ZMLOAD
<<<
*
*``````````````````````````````*
* MSWAP :: SWAP MEMORY BLOCKS *
*- -*
* SWAPS THE VALUES STORE IN *
* ONE LOCATION WITH ANOTHER *
*- -*
* PARAMETERS: *
* *
* ]1 = FIRST ADDRESS *
* ]2 = SECOND ADDRESS *
* ]3 = LENGTH IN BYTES (BYTE) *
*- -*
* SAMPLE USAGE: *
* MSWAP $300;$400;#$90 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
MSWAP MAC
LDA #>]2
PHA
LDA #<]2
PHA
LDA #>]1
PHA
LDA #<]1
PHA
LDA ]3
PHA
JSR MEMSWAP
<<<