mirror of
https://github.com/nathanriggs/AppleIIAsm-Collection.git
synced 2024-12-12 01:30:00 +00:00
146 lines
3.2 KiB
Plaintext
146 lines
3.2 KiB
Plaintext
|
*
|
||
|
*``````````````````````````````*
|
||
|
* ZMSAVE :: SAVE 0-PAGE FREE *
|
||
|
*- -*
|
||
|
* STORES THE VALUES IN THE *
|
||
|
* LITTLE FREE SPACE ON THE *
|
||
|
* ZERO PAGE AT AN ALTERNATE *
|
||
|
* MEMORY LOCATION TO BE *
|
||
|
* RETRIEVED AND RESTORED AT A *
|
||
|
* LATER POINT. *
|
||
|
*- -*
|
||
|
* CLOBBERS: *
|
||
|
* *
|
||
|
* FLAGS: ????---- REG: AXYM *
|
||
|
*- -*
|
||
|
* CYCLES: ??? *
|
||
|
* SIZE: *
|
||
|
*- -*
|
||
|
* USAGE: *
|
||
|
* *
|
||
|
* LDA #>$6A00 *
|
||
|
* PHA *
|
||
|
* LDA #<$6A00 *
|
||
|
* PHA *
|
||
|
* JSR ZMSAVE *
|
||
|
*- -*
|
||
|
* ENTRY *
|
||
|
* *
|
||
|
* TOP OF STACK *
|
||
|
* *
|
||
|
* LOW BYTE OF RETURN ADDRESS *
|
||
|
* HI BYTE OF RETURN ADDRESS *
|
||
|
* LOW BYTE OF DESTINATION *
|
||
|
* HIGH BYTE OF DESTINATION *
|
||
|
*- -*
|
||
|
* EXIT *
|
||
|
* *
|
||
|
* TOP OF STACK *
|
||
|
* *
|
||
|
* LOW BYTE OF RETURN ADDRESS *
|
||
|
* HI BYTE OF RETURN ADDRESS *
|
||
|
* *
|
||
|
* Y = TRASH *
|
||
|
* X = TRASH *
|
||
|
* A = LOW BYTE OF RET ADDR *
|
||
|
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
|
||
|
*
|
||
|
ZMSAVE
|
||
|
*
|
||
|
** LOAD ADDR1 ZERO PAGE AREA FIRST,
|
||
|
** SINCE WE'LL BE USING THAT
|
||
|
*
|
||
|
** NOTE THAT THIS SHOULD ALWAYS BE
|
||
|
** $06 AND $07, OR ELSE CODE WILL
|
||
|
** HAVE TO CHANGE.
|
||
|
*
|
||
|
LDX ADDR1
|
||
|
LDY ADDR1+1
|
||
|
*
|
||
|
** SAVE RETURN ADDRESS
|
||
|
*
|
||
|
PLA
|
||
|
STA :RETADR ; LOCAL BECAUSE RETADDR
|
||
|
PLA ; IS STORED ON ZERO PAGE
|
||
|
STA :RETADR+1
|
||
|
*
|
||
|
** GET PARAMETERS
|
||
|
*
|
||
|
PLA
|
||
|
STA ADDR1
|
||
|
PLA
|
||
|
STA ADDR1+1
|
||
|
*
|
||
|
** COPY ZERO PAGE TO SPECIFIED
|
||
|
** NON-ZERO LOCATION (ONLY THE
|
||
|
** FREE ONES..)
|
||
|
*
|
||
|
TYA ; STORE ADDR1 VALS
|
||
|
LDY #1 ; FIRST
|
||
|
STA (ADDR1),Y
|
||
|
LDY #0
|
||
|
TXA
|
||
|
STA (ADDR1),Y
|
||
|
LDY #2
|
||
|
LDA $08
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $09
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $19
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $1E
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $E3
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $EB
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $EC
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $ED
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $EE
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $EF
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $FA
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $FB
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $FC
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $FD
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $FE
|
||
|
STA (ADDR1),Y
|
||
|
INY
|
||
|
LDA $FF
|
||
|
STA (ADDR1),Y
|
||
|
*
|
||
|
** RESTORE RETURN ADDRESS
|
||
|
*
|
||
|
LDA :RETADR+1
|
||
|
PHA
|
||
|
LDA :RETADR
|
||
|
PHA
|
||
|
*
|
||
|
RTS
|
||
|
*
|
||
|
** DATA
|
||
|
*
|
||
|
:RETADR DS 2
|
||
|
*
|