NEW PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF *-------------------------------------- .MA DEBUG :1 bit $C000 bpl :1 sta $C010 .EM *-------------------------------------- .MA DEBUGOA bit $C061 bpl :1 >DEBUG :1 .EQ * .EM *-------------------------------------- * SYSCALLs Macros *-------------------------------------- .MA SLEEP jsr A2osX.SLEEP .EM *-------------------------------------- .MA SYSCALL ldx #SYS.]1 jsr A2osX.SYSCALL .EM *-------------------------------------- .MA LIBCALL ldy ]1 ldx #]2 jsr A2osX.LIBCALL .EM *-------------------------------------- .MA MLICALL ldx #]1 .DO ]1=MLIALLOCIRQ lda #2 .FIN .DO ]1=MLIDEALLOCIRQ lda #1 .FIN .DO ]1=MLIATALK lda #1 .FIN .DO ]1=MLIREADBLOCK lda #3 .FIN .DO ]1=MLIWRITEBLOCK lda #3 .FIN .DO ]1=MLICREATE lda #7 .FIN .DO ]1=MLIDESTROY lda #1 .FIN .DO ]1=MLIRENAME lda #2 .FIN .DO ]1=MLISETFILEINFO lda #7 .FIN .DO ]1=MLIGETFILEINFO lda #10 .FIN .DO ]1=MLIONLINE lda #2 .FIN .DO ]1=MLISETPREFIX lda #1 .FIN .DO ]1=MLIGETPREFIX lda #1 .FIN .DO ]1=MLIOPEN lda #3 .FIN .DO ]1=MLINEWLINE lda #3 .FIN .DO ]1=MLIREAD lda #4 .FIN .DO ]1=MLIWRITE lda #4 .FIN .DO ]1=MLICLOSE lda #1 .FIN .DO ]1=MLIFLUSH lda #1 .FIN .DO ]1=MLISETMARK lda #2 .FIN .DO ]1=MLIGETMARK lda #2 .FIN .DO ]1=MLISETEOF lda #2 .FIN .DO ]1=MLIGETEOF lda #2 .FIN .DO ]1=MLISETBUF lda #2 .FIN .DO ]1=MLIGETBUF lda #2 .FIN jsr GP.MLICall .EM *-------------------------------------- .MA ROMCALL ldx #ROM.]1 jsr A2osX.ROMCALL .EM *-------------------------------------- * Global DATA Segment Access *-------------------------------------- .MA LEA.G clc lda pData adc #]1 tay lda pData+1 adc /]1 .EM *-------------------------------------- .MA PUSHEA.G >LEA.G ]1 >PUSHYA .EM *-------------------------------------- .MA PUSHW.G ldy #]1+1 lda (pData),y >PUSHA dey lda (pData),y >PUSHA .EM *-------------------------------------- .MA LDA.G ldy #]1 lda (pData),y .EM *-------------------------------------- .MA STZ.G ldy #]1 lda #0 sta (pData),y .EM *-------------------------------------- .MA STA.G ldy #]1 sta (pData),y .EM *-------------------------------------- .MA ORA.G ldy #]1 ora (pData),y .EM *-------------------------------------- .MA CMP.G ldy #]1 cmp (pData),y .EM *-------------------------------------- .MA ADC.G ldy #]1 adc (pData),y .EM *-------------------------------------- .MA SBC.G ldy #]1 sbc (pData),y .EM *-------------------------------------- .MA DEC.G >LDA.G ]1 dec sta (pData),y .EM *-------------------------------------- .MA INC.G >LDA.G ]1 inc sta (pData),y .EM *-------------------------------------- .MA INCW.G >INC.G ]1 bne :1 iny lda (pData),y inc sta (pData),y :1 .EQ * .EM *-------------------------------------- .MA LDYA.G >LDA.G ]1 pha iny lda (pData),y ply .EM *-------------------------------------- .MA STYA.G phy ldy #]1+1 sta (pData),y dey pla sta (pData),y .EM *-------------------------------------- * STACK PUSH/PULL *-------------------------------------- .MA PUSHA dec pStack sta (pStack) .EM *-------------------------------------- .MA PULLA lda (pStack) inc pStack .EM *-------------------------------------- .MA PUSHYA >PUSHA tya >PUSHA .EM *-------------------------------------- .MA PULLYA >PULLA tay >PULLA .EM *-------------------------------------- .MA PUSHBI lda #]1 >PUSHA .EM *-------------------------------------- .MA PUSHB .DO ]#=2 lda ]1,]2 >PUSHA .ELSE lda ]1 >PUSHA .FIN .EM *-------------------------------------- .MA PULLB .DO ]#=2 >PULLA sta ]1,]2 .ELSE >PULLA sta ]1 .FIN .EM *-------------------------------------- .MA PUSHWI lda /]1 >PUSHA lda #]1 >PUSHA .EM *-------------------------------------- .MA PUSHW lda ]1+1 >PUSHA lda ]1 >PUSHA .EM *-------------------------------------- .MA PULLW >PULLA sta ]1 >PULLA sta ]1+1 .EM *-------------------------------------- * General WORD Manipulation Macros *-------------------------------------- .MA LDYAI ldy #]1 lda /]1 .EM *-------------------------------------- .MA LDAXI lda #]1 ldx /]1 .EM *-------------------------------------- .MA LDYA .DO ]#=2 ldy ]1,]2 lda ]1+1,]2 .ELSE ldy ]1 lda ]1+1 .FIN .EM *-------------------------------------- .MA STYA .DO ]#=2 sta ]1+1,]2 tya sta ]1,]2 .ELSE sta ]1+1 sty ]1 .FIN .EM *-------------------------------------- * General Strings Macros *-------------------------------------- .MA CSTR .AS "]1" .HS 00 .EM *-------------------------------------- .MA PSTR .DA #:1-*-1 .AS "]1" :1 .EQ * .EM MAN SAVE /A2OSX.BUILD/INC/MACROS.I