mirror of
https://github.com/Michaelangel007/apple2_printm.git
synced 2024-12-20 05:29:38 +00:00
Ver 6
This commit is contained in:
parent
17c138f8ed
commit
ea442989bf
80
printm.s
80
printm.s
@ -111,7 +111,7 @@ TEXT
|
|||||||
APPLE "X="
|
APPLE "X="
|
||||||
.byte "#"
|
.byte "#"
|
||||||
APPLE " Y="
|
APPLE " Y="
|
||||||
.byte "#"
|
.byte "d"
|
||||||
APPLE " $="
|
APPLE " $="
|
||||||
.byte "x"
|
.byte "x"
|
||||||
APPLE ":"
|
APPLE ":"
|
||||||
@ -182,7 +182,7 @@ NextArg
|
|||||||
|
|
||||||
; x Hex 2 Byte
|
; x Hex 2 Byte
|
||||||
; $ Hex 4 Byte
|
; $ Hex 4 Byte
|
||||||
; =-=-=-=-=-=-=-=-=-=-
|
;========================================================================
|
||||||
PrintHex4
|
PrintHex4
|
||||||
LDA #4
|
LDA #4
|
||||||
BNE _PrintHex
|
BNE _PrintHex
|
||||||
@ -222,16 +222,20 @@ HexNibbles
|
|||||||
CPX #0 ; _nHexNibbles NOTE: self-modifying!
|
CPX #0 ; _nHexNibbles NOTE: self-modifying!
|
||||||
BNE _HexDigit
|
BNE _HexDigit
|
||||||
|
|
||||||
PrintHexDigit
|
; PHX
|
||||||
|
; PLY
|
||||||
|
; Intentional fall into reverse BCD
|
||||||
|
|
||||||
|
PrintReverseBCD
|
||||||
DEX
|
DEX
|
||||||
BMI NextFormat
|
BMI NextFormat
|
||||||
LDA _bcd, X
|
LDA _bcd, X
|
||||||
JSR PutChar
|
JSR PutChar
|
||||||
BRA PrintHexDigit
|
BRA PrintReverseBCD
|
||||||
|
|
||||||
; @ Ptr 2 Byte
|
; @ Ptr 2 Byte
|
||||||
; & Ptr 4 Byte
|
; & Ptr 4 Byte
|
||||||
; =-=-=-=-=-=-=-=-=-=-
|
;========================================================================
|
||||||
PrintPtr4
|
PrintPtr4
|
||||||
LDA #4
|
LDA #4
|
||||||
BNE _PrintPtr
|
BNE _PrintPtr
|
||||||
@ -259,8 +263,12 @@ _PrintPtr
|
|||||||
|
|
||||||
Print
|
Print
|
||||||
JSR PutChar
|
JSR PutChar
|
||||||
|
|
||||||
|
; Adjust pointer to next char in format
|
||||||
NextFormat
|
NextFormat
|
||||||
JSR IncFormat
|
INC _pFormat+0
|
||||||
|
BNE GetFormat
|
||||||
|
INC _pFormat+1
|
||||||
GetFormat
|
GetFormat
|
||||||
LDA $C0DE ; _pFormat NOTE: self-modifying!
|
LDA $C0DE ; _pFormat NOTE: self-modifying!
|
||||||
BEQ _Done
|
BEQ _Done
|
||||||
@ -282,9 +290,10 @@ _Done
|
|||||||
|
|
||||||
; === Meta Ops ===
|
; === Meta Ops ===
|
||||||
|
|
||||||
; # Dec 1 Byte (max 3 digits)
|
; # Dec 1 Byte (max 2 digits)
|
||||||
; d Dec 2 Byte (max 5 digits)
|
; d Dec 2 Byte (max 3 digits)
|
||||||
; =-=-=-=-=-=-=-=-=-=-
|
; u Dec 2 Byte (max 5 digits)
|
||||||
|
;========================================================================
|
||||||
PrintDec2
|
PrintDec2
|
||||||
LDA #2 ; skip first 2 digits
|
LDA #2 ; skip first 2 digits
|
||||||
_PrintDec
|
_PrintDec
|
||||||
@ -344,33 +353,17 @@ _BCD2Char
|
|||||||
DEX
|
DEX
|
||||||
BPL _BCD2Char
|
BPL _BCD2Char
|
||||||
|
|
||||||
LDX _bcd+0
|
|
||||||
LDY _bcd+1
|
|
||||||
LDA _bcd+2
|
|
||||||
STX $600
|
|
||||||
STY $601
|
|
||||||
STA $602
|
|
||||||
RTS
|
|
||||||
|
|
||||||
DecDigits
|
DecDigits
|
||||||
LDY #0 ; _DecDigits
|
LDX #0 ; _DecDigits
|
||||||
_PrintDecDigit
|
JMP PrintReverseBCD
|
||||||
LDA _bcd,Y
|
|
||||||
JSR PutChar
|
|
||||||
INY
|
|
||||||
CPY #6
|
|
||||||
BNE _PrintDecDigit
|
|
||||||
_JumpNextFormat
|
|
||||||
; BRA NextFormat ; always
|
|
||||||
JMP NextFormat ; JMP :-(
|
|
||||||
|
|
||||||
PrintDec4
|
PrintDec4
|
||||||
LDA #0 ; skip 0 digits
|
LDA #4 ; skip 0 digits
|
||||||
BNE _PrintDec ; always
|
BNE _PrintDec ; always
|
||||||
|
|
||||||
; % Bin 1 Byte normal 1
|
; % Bin 1 Byte normal 1
|
||||||
; d Bin 1 Byte inverse 1
|
; d Bin 1 Byte inverse 1
|
||||||
; =-=-=-=-=-=-=-=-=-=-
|
;========================================================================
|
||||||
PrintBinInv
|
PrintBinInv
|
||||||
LDA #$81
|
LDA #$81
|
||||||
BNE _PrintBin
|
BNE _PrintBin
|
||||||
@ -395,7 +388,9 @@ _FlipBit
|
|||||||
TAX
|
TAX
|
||||||
DEY
|
DEY
|
||||||
BNE _Bit2Asc
|
BNE _Bit2Asc
|
||||||
BRA _JumpNextFormat ; always
|
_JumpNextFormat
|
||||||
|
; BRA NextFormat ; always
|
||||||
|
JMP NextFormat ; JMP :-(
|
||||||
|
|
||||||
/*
|
/*
|
||||||
JSR GetWidth
|
JSR GetWidth
|
||||||
@ -404,6 +399,17 @@ _FlipBit
|
|||||||
JSR PrintBuf
|
JSR PrintBuf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
|
;DEBUG
|
||||||
|
;LDX _bcd+0
|
||||||
|
;LDY _bcd+1
|
||||||
|
;LDA _bcd+2
|
||||||
|
;STX $600
|
||||||
|
;STY $601
|
||||||
|
;STA $602
|
||||||
|
;RTS
|
||||||
|
; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
|
|
||||||
; === Utility ===
|
; === Utility ===
|
||||||
/*
|
/*
|
||||||
_CmpMeta = CmpMeta+1
|
_CmpMeta = CmpMeta+1
|
||||||
@ -426,17 +432,20 @@ CmpMeta
|
|||||||
BRA IncWidth
|
BRA IncWidth
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
;========================================================================
|
||||||
PutChar
|
PutChar
|
||||||
STA $400 ; NOTE: self-modifying!
|
STA $400 ; NOTE: self-modifying!
|
||||||
INC PutChar+1 ; inc lo
|
INC PutChar+1 ; inc lo
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
;========================================================================
|
||||||
; @return &aArg[ iArg ] -> XY
|
; @return &aArg[ iArg ] -> XY
|
||||||
GetArgAddr
|
GetArgAddr
|
||||||
LDX _pArg+0 ; Low Byte
|
LDX _pArg+0 ; Low Byte
|
||||||
LDY _pArg+1 ; High Byte
|
LDY _pArg+1 ; High Byte
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
;========================================================================
|
||||||
; @return _Arg[ _Num ]
|
; @return _Arg[ _Num ]
|
||||||
NxtArgByte
|
NxtArgByte
|
||||||
LDY #00 ; _iArg NOTE: self-modifying!
|
LDY #00 ; _iArg NOTE: self-modifying!
|
||||||
@ -448,6 +457,7 @@ IncArg
|
|||||||
@_SamePage
|
@_SamePage
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
;========================================================================
|
||||||
; @return X,Y 16-bit arg value
|
; @return X,Y 16-bit arg value
|
||||||
NxtArgXY
|
NxtArgXY
|
||||||
JSR NxtArgByte
|
JSR NxtArgByte
|
||||||
@ -456,16 +466,6 @@ NxtArgXY
|
|||||||
TAY
|
TAY
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
; printf( format, ... )
|
|
||||||
; Adjust pointer to next char in format
|
|
||||||
IncFormat
|
|
||||||
INC _pFormat+0
|
|
||||||
BNE _SamePage
|
|
||||||
INC _pFormat+1
|
|
||||||
_SamePage
|
|
||||||
RTS
|
|
||||||
|
|
||||||
ToHexXY
|
|
||||||
; Hex2/Hex4 temp
|
; Hex2/Hex4 temp
|
||||||
_bcd ds 6 ; 6 chars for printing dec
|
_bcd ds 6 ; 6 chars for printing dec
|
||||||
_val dw 0
|
_val dw 0
|
||||||
|
Loading…
Reference in New Issue
Block a user