NEW PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BUILD/ROOT/TEST *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/LIBPAK.I *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #64 SS .DA #0 ZP .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.LIBPAK .DA LIBPAK L.FLOAT1 .DA FLOAT1 L.FLOAT2 .DA FLOAT2 L.FLOAT3 .DA FLOAT3 L.FLOAT4 .DA FLOAT4 L.FLOAT5 .DA FLOAT5 L.CONST1 .DA CONST1 L.CONST2 .DA CONST2 L.LONG1 .DA LONG1 L.MSG1 .DA MSG1 L.MSG2 .DA MSG2 L.MSG3 .DA MSG3 L.MSG4 .DA MSG4 L.MSG5 .DA MSG5 L.MSG6 .DA MSG6 .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBPAK >SYSCALL LoadLib.YA bcs .9 sta hLIBPAK clc .9 rts *-------------------------------------- CS.RUN ldy #S.PS.ARGC lda (pPs),y bne CS.RUN.Pak jmp CS.RUN.Math *-------------------------------------- CS.RUN.Pak >PUSHWI 0 Aux type >PUSHBI 0 >PUSHBI SYS.FOpen.R lda #1 >SYSCALL GetArg.A >SYSCALL RealPath.YA >PUSHYA txa >STA.G PAK.hFileName >SYSCALL LoadFile bcs .9 >STYA.G PAK.FileSize txa >STA.G PAK.hFileBuf >LDYA.G PAK.FileSize >SYSCALL GetMem.YA bcs .9 txa >STA.G PAK.hOutBuf >LDA.G PAK.hFileBuf >SYSCALL GetMemPtr.A >PUSHYA >PUSHW.G PAK.FileSize >LDA.G PAK.hOutBuf >SYSCALL GetMemPtr.A >PUSHYA >PUSHEA.G PAK.Stat >LIBCALL hLIBPAK,LIBPAK.Pak bcc .1 .9 rts .1 >PUSHW.G PAK.Stat+S.PAKSTAT.STORE >PUSHW.G PAK.Stat+S.PAKSTAT.S4 >PUSHW.G PAK.Stat+S.PAKSTAT.S3 >PUSHW.G PAK.Stat+S.PAKSTAT.REP >PUSHW.G PAK.Stat+S.PAKSTAT.BL >PUSHW.G PAK.Stat+S.PAKSTAT.SIZE >PUSHW.G PAK.FileSize >LDYA L.MSG6 >SYSCALL PrintF.YA lda #0 sec rts *-------------------------------------- CS.RUN.Math >PUSHEA.G ENDPTR >PUSHW L.CONST2 >PUSHEA.G MYFLOAT2 >SYSCALL StrToF >PUSHEA.G ENDPTR >PUSHW L.CONST1 >PUSHEA.G MYFLOAT1 >SYSCALL StrToF >PUSHEA.G MYFLOAT2 >PUSHEA.G MYFLOAT1 >PUSHW L.FLOAT5 >PUSHW L.FLOAT4 >PUSHW L.FLOAT3 >PUSHW L.FLOAT2 >PUSHW L.FLOAT1 >LDYA L.MSG1 >SYSCALL PrintF.YA *-------------------------------------- >PUSHEA.G MYFLOAT1 >PUSHEA.G MYFLOAT2 >LEA.G MYFLOAT3 >SYSCALL FDiv >PUSHEA.G MYFLOAT3 >LDYA L.MSG2 >SYSCALL PrintF.YA *-------------------------------------- >PUSHEA.G MYFLOAT3 >LEA.G MYFLOAT3 >SYSCALL Cos >PUSHEA.G MYFLOAT3 >LDYA L.MSG3 >SYSCALL PrintF.YA *-------------------------------------- >PUSHW L.FLOAT1 >LEA.G MYLONG >SYSCALL LRIntF >PUSHEA.G MYLONG >LDYA L.MSG4 >SYSCALL PrintF.YA *-------------------------------------- >PUSHW L.LONG1 >LEA.G MYFLOAT1 >SYSCALL Float >PUSHEA.G MYFLOAT1 >LDYA L.MSG5 >SYSCALL PrintF.YA lda #0 sec rts *-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- CS.QUIT >LDA.G PAK.hFileName beq .1 >SYSCALL FreeMem.A .1 >LDA.G PAK.hFileBuf beq .2 >SYSCALL FreeMem.A .2 >LDA.G PAK.hOutBuf beq .8 >SYSCALL FreeMem.A .8 lda hLIBPAK >SYSCALL UnloadLib.A clc rts *-------------------------------------- CS.END LIBPAK .AZ "libpak.o" hLIBPAK .BS 1 MSG1 .AS "PrintF:%e, %e, %e\r\n" .AS "%e, %e\r\n" .AZ "StrToF:%e, %e\r\n" FLOAT1 .HS 9B3EBC1FFD 99,999,999.9 FLOAT2 .HS 9E6E6B27FD 999,999,999 FLOAT3 .HS 9E6E6B2800 1,000,000,000 FLOAT4 .HS 8100000000 1 FLOAT5 .HS 9080000000 -32768 CONST1 .AZ "3.141592653" CONST2 .AZ "3" LONG1 .DA >123456789 MSG2 .AZ "PI/3=%e\r\n" MSG3 .AZ "COS(PI/3)=%e\r\n" MSG4 .AZ "Long=%L\r\n" MSG5 .AZ "Float=%e\r\n" MSG6 .AS "Src Length : %D\r\n" .AS "Compressed : %D\r\n" .AS "BL Count : %D\r\n" .AS "REP Count : %D\r\n" .AS "S3 Count : %D\r\n" .AS "S4 Count : %D\r\n" .AZ "STO Count : %D\r\n" *-------------------------------------- .DUMMY .OR 0 DS.START MYFLOAT1 .BS 5 MYFLOAT2 .BS 5 MYFLOAT3 .BS 5 MYLONG .BS 4 ENDPTR .BS 2 PAK.hFileName .BS 1 PAK.FileSize .BS 2 PAK.hFileBuf .BS 1 PAK.hOutBuf .BS 1 PAK.Stat .BS S.PAKSTAT DS.END .ED *-------------------------------------- MAN SAVE /A2OSX.BUILD/ROOT/TEST.S ASM