rnd/src/macros.s
Bill Chatfield 6567db8527 Reorg
2020-05-04 01:09:29 -04:00

72 lines
1.6 KiB
ArmAsm

********************************
* *
* MACROS *
* *
* AUTHOR: BILL CHATFIELD *
* LICENSE: GPL2 *
* *
********************************
PUSHY .MACRO
TYA
PHA
.ENDM
POPY .MACRO
PLA
TAY
.ENDM
PUSHXY .MACRO
TXA
PHA
TYA
PHA
.ENDM
POPXY .MACRO
PLA
TAY
PLA
TAX
.ENDM
********************************
* *
* PUTS .MACRORO - OUTPUTS STRING *
* ]1 = ADDRESS OF NULL- *
* TERMINATED STRING *
* *
********************************
PUTS .MACRO
PUSHY
LDY #0 ; PREPARE LOOP INDEX
NEXT LDA \0,Y ; LOAD A CHARACTER
CMP #0 ; CHECK FOR END OF STRING
BEQ DONE
ORA #%10000000 ; SET HIGH BIT FOR OUTPUT
JSR COUT
INY
JMP NEXT
DONE POPY
.ENDM
********************************
* *
* PUTF - *
* PRINTS FLOATING POINT NUMBER *
* IN FAC. DESTROYS VALUE IN *
* FAC. DON'T KNOW WHY. *
* *
* ]1 - ABS ADDR FOR STRING *
* *
********************************
PUTF .MACRO
JSR FOUT ;CONVERT FAC TO STRING
STA \0 ;STORE LOW BYTE OF STRING
STY \0+1 ;STORE HIGH BYTE OF STRING
PUTS (\0) ;PRINT STRING
.ENDM