mirror of
https://github.com/nathanriggs/AppleIIAsm-Collection.git
synced 2024-11-28 03:52:10 +00:00
82d0e74c1a
some minor bugfixes, directory shuffling, added demo and utility disks
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
|
|
*
|