From 50386f6c269aa5c3232180b7cb33b686fb0fe1f8 Mon Sep 17 00:00:00 2001 From: burniouf Date: Tue, 9 Jan 2024 22:52:03 +0100 Subject: [PATCH] .INC reorg --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BASIC.FX/BASIC.S.GP..txt | 225 +++++++++++++++++++-------------------- BASIC.FX/BASIC.S.LDR.txt | 7 +- BASIC.FX/BASIC.S.txt | 91 +--------------- BASIC.FX/TEST.S.txt | 18 +++- INC/AS.I.txt | 39 +++++++ INC/BS.I.txt | 127 +++++++++++++++++++++- INC/MON.I.txt | 133 +++++++++++++++++++++++ 8 files changed, 430 insertions(+), 210 deletions(-) create mode 100644 INC/AS.I.txt create mode 100644 INC/MON.I.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index eb4bfe92bea607847d39f383cd0a3fb3adcd06dd..928d63b62b73a70467d2bb117f1b2a4299165cff 100644 GIT binary patch delta 371404 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 _jRkf*K*Y$Wqo@;cx z$J^@JtPl2h*U7H}pX`x!w(7s?@otn~1^%?hyW!daHFNmRshPXXt~}Y6jzuF6%MVAV zjvbyUO0+mReQf4lwQaB(qm#$(F7?sVS?1xvKJWU%HkFUX zcRuNyM(KEWT=_G~RQq;i6V6Yg+S2i!v|4wax_ffwsGRKP?2<{u<6Y$em}6<`Kylx_ z$0pUf?dra%1Lk8XF%f>>#LdG>&fkPy((mo|jObLq3~5v!?)SEN#`H7&-i`9Z!kw9< zym6n?A#ZiNch&VOp40kfZ*_CkrmU{JM(}ewZvM&ZyUag3^o!TX+;{3%uJNv2*tg38 z-8MFodQ87#8g}cB&E9o$_o(5t)^Ai-udWL1)emg;Zt!;AU~=_lU-gEn@QwPPHhV+f z?wg$01z+{1s^HD~8?Oum7H#@~)2ICnj*e}S9e<0S+~VCdZ$c$vqlwh;IUSoPWxMD; z{kL1ZomHFm>z}_eP_KPky-l72x^=5}gJ)8YZalOg>bGN>6P>!j4^y7ol z;|cwjgWh%3_bNGxlTYgZy-3QFq5Jfrn6!ORZ;r_j?$`Tb-VIfsd&69Ces}Q$L!JfZ z`jm{y3vT0bUHGs8S3)0%uVp`3MTP{E1UL}%!a-V5h zrQeVrqy|@;_R+EINX-4UYr0dajg77PrWfU!)uuaM8ECpRbFt%`=Tb}3^E&@W009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 d009ILKmY**5I_I{1Q0*~f&Z@pPlxAS_`g`@oC5#= delta 241937 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 z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## YAOHafKmY;|fB*#k9tFPiNKn)MA0nr1#{d8T diff --git a/BASIC.FX/BASIC.S.GP..txt b/BASIC.FX/BASIC.S.GP..txt index d91d8ca4..467c80a8 100644 --- a/BASIC.FX/BASIC.S.GP..txt +++ b/BASIC.FX/BASIC.S.GP..txt @@ -8,69 +8,69 @@ NEW jmp BS.PRINTERR GP.PRINTERR .BS 1 GP.ERRCODE *-------------------------------------- -GP.OUTVECT0 .DA MON.COUT1 -GP.OUTVECT1 .DA BS.NODEVERR -GP.OUTVECT2 .DA BS.NODEVERR -GP.OUTVECT3 .DA BS.NODEVERR -GP.OUTVECT4 .DA BS.NODEVERR -GP.OUTVECT5 .DA BS.NODEVERR -GP.OUTVECT6 .DA BS.NODEVERR -GP.OUTVECT7 .DA BS.NODEVERR -GP.INVECT0 .DA MON.KEYIN -GP.INVECT1 .DA BS.NODEVERR -GP.INVECT2 .DA BS.NODEVERR -GP.INVECT3 .DA BS.NODEVERR -GP.INVECT4 .DA BS.NODEVERR -GP.INVECT5 .DA BS.NODEVERR -GP.INVECT6 .DA BS.NODEVERR -GP.INVECT7 .DA BS.NODEVERR -GP.VECTOUT .DA MON.COUT1 -GP.VECTIN .DA MON.KEYIN -GP.VDOSO .DA BS.JMP.GP.VSYSO -GP.VDOSI .DA BS.JMP.GP.VSYSI -GP.VSYSO .BS 2 -GP.VSYSI .BS 2 -GP.VDEFSLT .DA #6 -GP.VDEFDRV .DA #1 -GP.PREGA .BS 1 -GP.PREGX .BS 1 -GP.PREGY .BS 1 -GP.DTRACE .BS 1 -GP.STATE .BS 1 -GP.EXECACTV .BS 1 -GP.IFILACTV .BS 1 -GP.OFILACTV .BS 1 -GP.PFXACTV .BS 1 -GP.DIRFLG .BS 1 -GP.EDIRFLG .BS 1 -GP.STRINGS .BS 1 -GP.TBUFPTR .BS 1 -GP.INPTR .BS 1 -GP.CHRLAST .BS 1 -GP.OPENCNT .BS 1 -GP.EXECFILE .BS 1 -GP.CATFLAG .BS 1 -GP.XTRNADDR .BS 2 -GP.XLEN .BS 1 -GP.XCNUM .BS 1 -GP.AllowedBITS .BS 2 -GP.FoundBITS .BS 2 -GP.ParamA .BS 2 -GP.ParamB .BS 3 -GP.ParamE .BS 2 -GP.ParamL .BS 2 -GP.ParamS .BS 1 -GP.ParamD .BS 1 -GP.ParamF .BS 2 -GP.ParamR .BS 2 -GP.ParamV .BS 1 -GP.ParamAT .BS 2 -GP.ParamT .BS 1 -GP.ParamINPR .BS 1 -GP.VPATH1 .DA BS.CMDBUF.LEN -GP.VPATH2 .DA MLI.PATHBUF + .DA MON.COUT1 GP.OUTVECT0 + .DA BS.NODEVERR GP.OUTVECT1 + .DA BS.NODEVERR GP.OUTVECT2 + .DA BS.NODEVERR GP.OUTVECT3 + .DA BS.NODEVERR GP.OUTVECT4 + .DA BS.NODEVERR GP.OUTVECT5 + .DA BS.NODEVERR GP.OUTVECT6 + .DA BS.NODEVERR GP.OUTVECT7 + .DA MON.KEYIN GP.INVECT0 + .DA BS.NODEVERR GP.INVECT1 + .DA BS.NODEVERR GP.INVECT2 + .DA BS.NODEVERR GP.INVECT3 + .DA BS.NODEVERR GP.INVECT4 + .DA BS.NODEVERR GP.INVECT5 + .DA BS.NODEVERR GP.INVECT6 + .DA BS.NODEVERR GP.INVECT7 + .DA MON.COUT1 GP.VECTOUT + .DA MON.KEYIN GP.VECTIN + .DA BS.JMP.GP.VSYSO GP.VDOSO + .DA BS.JMP.GP.VSYSI GP.VDOSI + .BS 2 GP.VSYSO + .BS 2 GP.VSYSI + .DA #6 GP.VDEFSLT + .DA #1 GP.VDEFDRV + .BS 1 GP.PREGA + .BS 1 GP.PREGX + .BS 1 GP.PREGY + .BS 1 GP.DTRACE + .BS 1 GP.STATE + .BS 1 GP.EXECACTV + .BS 1 GP.IFILACTV + .BS 1 GP.OFILACTV + .BS 1 GP.PFXACTV + .BS 1 GP.DIRFLG + .BS 1 GP.EDIRFLG + .BS 1 GP.STRINGS + .BS 1 GP.TBUFPTR + .BS 1 GP.INPTR + .BS 1 GP.CHRLAST + .BS 1 GP.OPENCNT + .BS 1 GP.EXECFILE + .BS 1 GP.CATFLAG + .BS 2 GP.XTRNADDR + .BS 1 GP.XLEN + .BS 1 GP.XCNUM + .BS 2 GP.AllowedBITS + .BS 2 GP.FoundBITS + .BS 2 GP.ParamA + .BS 3 GP.ParamB + .BS 2 GP.ParamE + .BS 2 GP.ParamL + .BS 1 GP.ParamS + .BS 1 GP.ParamD + .BS 2 GP.ParamF + .BS 2 GP.ParamR + .BS 1 GP.ParamV + .BS 2 GP.ParamAT + .BS 1 GP.ParamT + .BS 1 GP.ParamINPR + .DA BS.CMDBUF.LEN GP.VPATH1 + .DA MLI.PATHBUF GP.VPATH2 *-------------------------------------- -GP.GOSYSTEM sta GP.GOSYSTEM.C + sta GP.GOSYSTEM.C GP.GOSYSTEM stx BS.CALLX and #$1F tax @@ -78,84 +78,83 @@ GP.GOSYSTEM sta GP.GOSYSTEM.C sta GP.GOSYSTEM.P ldx BS.CALLX jsr MLI -GP.GOSYSTEM.C .BS 1 -GP.GOSYSTEM.P .DA GP.GOSYSTEM.P + .BS 1 GP.GOSYSTEM.C + .DA GP.GOSYSTEM.P GP.GOSYSTEM.P bcs GP.BADCALL rts *-------------------------------------- -GP.BADCALL ldx #$12 + ldx #$12 GP.BADCALL -.1 cmp BS.MLIERTBL,x - beq .2 +GP.MLIERR1 cmp BS.MLIERTBL,x + beq GP.MLIERR2 dex - bpl .1 + bpl GP.MLIERR1 ldx #$13 -.2 lda BS.BIERRTBL,x +GP.MLIERR2 lda BS.BIERRTBL,x ldx BS.CALLX sec -GP.RTS rts + rts GP.RTS *-------------------------------------- -GP.CISPARE1 .BS 1 + .BS 1 GP.CISPARE1 *-------------------------------------- -GP.SCREATE .DA #7 -GP.SCREATEPATH .DA BS.CMDBUF.LEN -GP.CRACCESS .DA #$C3 -GP.CRTYPE .BS 1 -GP.CRAUXTYPE .BS 2 -GP.CRSTTYPE .BS 1 -GP.DATETIME .BS 4 + .DA #7 GP.SCREATE + .DA BS.CMDBUF.LEN GP.SCREATEPATH + .DA #$C3 GP.CRACCESS + .BS 1 GP.CRTYPE + .BS 2 GP.CRAUXTYPE + .BS 1 GP.CRSTTYPE + .BS 4 GP.DATETIME *-------------------------------------- -GP.SDSTROY .DA #1 -GP.SDSTROYPATH .DA BS.CMDBUF.LEN + .DA #1 GP.SDSTROY + .DA BS.CMDBUF.LEN GP.SDSTROYPATH *-------------------------------------- -GP.SRECNAME .DA #2 -GP.SRECNAMEOLD .DA BS.CMDBUF.LEN -GP.SRECNAMENEW .DA MLI.PATHBUF + .DA #2 GP.SRECNAME + .DA BS.CMDBUF.LEN GP.SRECNAMEOLD + .DA MLI.PATHBUF GP.SRECNAMENEW *-------------------------------------- -GP.SSGINFO .BS 1 -GP.SSGINFOPATH .DA BS.CMDBUF.LEN -GP.FIACCESS .BS 1 -GP.FITYPE .BS 1 -GP.FIAUXTYPE .BS 2 -GP.STTYPE .BS 1 -GP.FIBLOKS .BS 2 -GP.FIMDATE .BS 4 -GP.FICDATE .BS 4 + .BS 1 GP.SSGINFO + .DA BS.CMDBUF.LEN GP.SSGINFOPATH + .BS 1 GP.FIACCESS + .BS 1 GP.FITYPE + .BS 2 GP.FIAUXTYPE + .BS 1 GP.STTYPE + .BS 2 GP.FIBLOKS + .BS 4 GP.FIMDATE + .BS 4 GP.FICDATE *-------------------------------------- -GP.MLIMRKEOFBUF .DA #2 -GP.MLIMRKEOFBUF.REFNUM - .BS 1 -GP.SBUFADR .BS 3 + .DA #2 GP.MLIMRKEOFBUF + .BS 1 GP.MLIMRKEOFBUF.REFNUM + .BS 3 GP.SBUFADR *-------------------------------------- -GP.SOPEN .DA #3 -GP.TXTBUF .DA BS.CMDBUF.LEN -GP.OSYSBUF .BS 2 -GP.OREFNUM .BS 1 + .DA #3 GP.SOPEN + .DA BS.CMDBUF.LEN GP.TXTBUF + .BS 2 GP.OSYSBUF + .BS 1 GP.OREFNUM *-------------------------------------- -GP.SNEWLIN .DA #3 -GP.NEWLREF .BS 1 -GP.NLINEMASK .DA #$7F -GP.NLINECHAR .DA #13 + .DA #3 GP.SNEWLIN + .BS 1 GP.NEWLREF + .DA #$7F GP.NLINEMASK + .DA #13 GP.NLINECHAR *-------------------------------------- -GP.MLIRW .DA #4 -GP.MLIRW.REFNUM .BS 1 -GP.MLIRW.DATAPTR .BS 2 -GP.MLIRW.COUNT .BS 2 -GP.MLIRW.TRANS .BS 2 + .DA #4 GP.MLIRW + .BS 1 GP.MLIRW.REFNUM + .BS 2 GP.MLIRW.DATAPTR + .BS 2 GP.MLIRW.COUNT + .BS 2 GP.MLIRW.TRANS *-------------------------------------- -GP.MLICF .DA #1 -GP.MLICF.REFNUM .BS 1 + .DA #1 GP.MLICF + .BS 1 GP.MLICF.REFNUM *-------------------------------------- -GP.CCCSPARE .BS 1 + .BS 1 GP.CCCSPARE *-------------------------------------- GP.COPYRIGHT .AS -"COPYRIGHT APPLE, 1983" jmp BS.GETBUFR GP.GETBUFR jmp BS.FREEBUFR GP.FREEBUFR -GP.RSHIMEM .BS 5 + .BS 5 GP.RSHIMEM *-------------------------------------- MAN SAVE usr/src/basic.fx/basic.s.gp diff --git a/BASIC.FX/BASIC.S.LDR.txt b/BASIC.FX/BASIC.S.LDR.txt index fbee90b3..166e07fa 100644 --- a/BASIC.FX/BASIC.S.LDR.txt +++ b/BASIC.FX/BASIC.S.LDR.txt @@ -255,8 +255,8 @@ L21C3 lda LDR.JMP.GP.ENTRY,x sta DOS.WARMSTART,x sta DOS.COLDSTART,x sta MON.USRJMP,x - lda LDR.AMPERSANDJMP,x - sta MON.AMPERSANDJMP,x + lda LDR.AMPJMP,x + sta MON.AMPJMP,x dex bpl L21C3 @@ -280,8 +280,7 @@ L21C3 lda LDR.JMP.GP.ENTRY,x LDR.JMP.GP.ENTRY jmp GP.ENTRY -LDR.AMPERSANDJMP - jmp GP.DOSCMD +LDR.AMPJMP jmp GP.DOSCMD *-------------------------------------- LDR.KSW lda GP.INVECT0 sta ZP.KSW diff --git a/BASIC.FX/BASIC.S.txt b/BASIC.FX/BASIC.S.txt index 5e1a21c4..7cd0aa16 100644 --- a/BASIC.FX/BASIC.S.txt +++ b/BASIC.FX/BASIC.S.txt @@ -11,11 +11,12 @@ NEW sta $C010 .EM *-------------------------------------- - .INB inc/monitor.i + .INB inc/bs.i + .INB inc/mli.i .INB inc/io.i .INB inc/io.d2.i - .INB inc/mli.i - .INB inc/bs.i + .INB inc/as.i + .INB inc/mon.i *-------------------------------------- HIMEM .EQ $A000 LOWERCASE .EQ 1 @@ -34,53 +35,6 @@ ZPBLLenBits .EQ 13 bRAMFlag .EQ 14 ZPCode .EQ 15 - -ZP.WNDLFT .EQ $20 -ZP.WNDWDT .EQ $21 -ZP.WNDTOP .EQ $22 -ZP.WNDBOT .EQ $23 -ZP.CH .EQ $24 -ZP.CV .EQ $25 -ZP.BASL .EQ $28 -ZP.BASH .EQ $29 - -ZP.PROMPT .EQ $33 - -ZP.CSW .EQ $36 -ZP.KSW .EQ $38 - -ZP.PCL .EQ $3A -ZP.PCH .EQ $3B -ZP.A1L .EQ $3C -ZP.A1H .EQ $3D -ZP.A2L .EQ $3E -ZP.A2H .EQ $3F -ZP.A4L .EQ $40 -ZP.A4H .EQ $41 - -ZP.CMD .EQ $42 -ZP.UNITNUM .EQ $43 -ZP.BUFPTR .EQ $44 -ZP.BLKNUM .EQ $46 - -AS.LINNUM .EQ $50 - -AS.PGRMSTART .EQ $67 -AS.VARSTART .EQ $69 -AS.ARRAYSTART .EQ $6B -AS.ARRAYEND .EQ $6D -AS.STRINGSTART .EQ $6F -AS.STRINGPTR .EQ $71 -AS.HIMEM .EQ $73 - -AS.CURLINE .EQ $75 -AS.LOWTR .EQ $9B -AS.PGRMEND .EQ $AF -AS.TXTPTR .EQ $B8 -AS.ERRFLG .EQ $D8 -AS.ERRNUM .EQ $DE -AS.TRCFLG .EQ $F2 -AS.REMSTK .EQ $F8 *-------------------------------------- ZPXPtr1 .EQ 0 ZPXPtr2 .EQ 2 @@ -109,14 +63,6 @@ DOS.FILEMGRPARM .EQ $03DC DOS.RWTSPARM .EQ $03E3 DOS.RECONNECT .EQ $03DA DOS.JMPBRKVECT .EQ $03EF - -MON.AMPERSANDJMP .EQ $03F5 -MON.USRJMP .EQ $03F8 -MON.NMIJMP .EQ $03FB -MON.IRQVECT .EQ $03FE -MON.BRKVECT .EQ $03F0 -MON.POWERUP .EQ $03F2 -MON.POWERUPBYTE .EQ $03F4 *-------------------------------------- MLI.DEVPTRS .EQ $BF10 MLI.DEVPTRS3D2 .EQ $BF26 @@ -131,35 +77,6 @@ MLI.SLTBYT .EQ $BF99 MLI.PFIXPTR .EQ $BF9A MLI.MLIACTV .EQ $BF9B MLI.IVERSION .EQ $BFFD -*-------------------------------------- -AS.RESTART .EQ $D43C -AS.RESTART1 .EQ $D43F -AS.FINDLINE .EQ $D61A -AS.CLEAR1 .EQ $D665 -AS.NEXTSTMT .EQ $D7D2 -AS.EXECSTMT .EQ $D820 -AS.BITERRFLG .EQ $D865 -AS.NORMAL .EQ $F273 -AS.COLDBOOT .EQ $E000 -AS.INTPRINTAX .EQ $ED24 -*-------------------------------------- -MON.BREAKV .EQ $FA59 -MON.INIT .EQ $FB2F -MON.HOME .EQ $FC58 -MON.CLREOL .EQ $FC9C -MON.RDKEY .EQ $FD0C -MON.KEYIN0 .EQ $FD10 -MON.KEYIN .EQ $FD1B -MON.GETLN .EQ $FD6A -MON.CROUT .EQ $FD8E -MON.COUT .EQ $FDED -MON.COUT1 .EQ $FDF0 -MON.IIGSID .EQ $FE1F -MON.SETINV .EQ $FE80 -MON.SETNORM .EQ $FE84 -MON.SETKBD .EQ $FE89 -MON.SETVID .EQ $FE93 -MON.ENTERMON .EQ $FF69 *-------------------------------------- .INB usr/src/basic.fx/basic.s.ldr *-------------------------------------- diff --git a/BASIC.FX/TEST.S.txt b/BASIC.FX/TEST.S.txt index 989ed404..c3bbc17d 100644 --- a/BASIC.FX/TEST.S.txt +++ b/BASIC.FX/TEST.S.txt @@ -5,8 +5,14 @@ NEW .OR $2000 .TF BIN/test *-------------------------------------- - .INB inc/monitor.i + .MA DEBUG +:1 bit $C000 + bpl :1 + sta $C010 + .EM +*-------------------------------------- .INB inc/bs.i + .INB inc/mon.i *-------------------------------------- HEADER cld Allows BRUN at ORG=$2000 jmp CODE.START for debugging without relocation @@ -24,11 +30,15 @@ R.MSG .DA MSG CODE.START ldx #0 .1 lda MSG,x ABS relocation required - beq .8 + beq .2 - jsr COUT + jsr MON.COUT inx - jmp .1 ABS relocation required + bne .1 + +.2 + + .8 clc diff --git a/INC/AS.I.txt b/INC/AS.I.txt new file mode 100644 index 00000000..17ad2a20 --- /dev/null +++ b/INC/AS.I.txt @@ -0,0 +1,39 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +* AppleSoft ZP +* http://www.txbobsc.com/scsc/scdocumentor/index.html#toc +*-------------------------------------- +AS.LINNUM .EQ $50 + +AS.PGRMSTART .EQ $67 +AS.VARSTART .EQ $69 +AS.ARRAYSTART .EQ $6B +AS.ARRAYEND .EQ $6D +AS.STRINGSTART .EQ $6F +AS.STRINGPTR .EQ $71 +AS.HIMEM .EQ $73 + +AS.CURLINE .EQ $75 +AS.LOWTR .EQ $9B +AS.PGRMEND .EQ $AF +AS.TXTPTR .EQ $B8 +AS.ERRFLG .EQ $D8 +AS.ERRNUM .EQ $DE +AS.TRCFLG .EQ $F2 +AS.REMSTK .EQ $F8 +*-------------------------------------- +AS.RESTART .EQ $D43C +AS.RESTART1 .EQ $D43F +AS.FINDLINE .EQ $D61A +AS.CLEAR1 .EQ $D665 +AS.NEXTSTMT .EQ $D7D2 +AS.EXECSTMT .EQ $D820 +AS.BITERRFLG .EQ $D865 +AS.NORMAL .EQ $F273 +AS.COLDBOOT .EQ $E000 +AS.INTPRINTAX .EQ $ED24 +*-------------------------------------- +MAN +SAVE inc/as.i diff --git a/INC/BS.I.txt b/INC/BS.I.txt index 3f953233..63054f93 100644 --- a/INC/BS.I.txt +++ b/INC/BS.I.txt @@ -53,10 +53,133 @@ GP.EXTRNCMD .EQ $BE06 GP.ERROUT .EQ $BE09 GP.PRINTERR .EQ $BE0C GP.ERRCODE .EQ $BE0F - - +*-------------------------------------- +GP.OUTVECT0 .EQ $BE10 +GP.OUTVECT1 .EQ $BE12 +GP.OUTVECT2 .EQ $BE14 +GP.OUTVECT3 .EQ $BE16 +GP.OUTVECT4 .EQ $BE18 +GP.OUTVECT5 .EQ $BE1A +GP.OUTVECT6 .EQ $BE1C +GP.OUTVECT7 .EQ $BE1E +GP.INVECT0 .EQ $BE20 +GP.INVECT1 .EQ $BE22 +GP.INVECT2 .EQ $BE24 +GP.INVECT3 .EQ $BE26 +GP.INVECT4 .EQ $BE28 +GP.INVECT5 .EQ $BE2A +GP.INVECT6 .EQ $BE2C +GP.INVECT7 .EQ $BE2E +*-------------------------------------- +GP.VECTOUT .EQ $BE30 +GP.VECTIN .EQ $BE32 +GP.VDOSO .EQ $BE34 +GP.VDOSI .EQ $BE36 +GP.VSYSO .EQ $BE38 +GP.VSYSI .EQ $BE3A +*-------------------------------------- +GP.VDEFSLT .EQ $BE3C +GP.VDEFDRV .EQ $BE3D +GP.PREGA .EQ $BE3E +GP.PREGX .EQ $BE3F +GP.PREGY .EQ $BE40 +GP.DTRACE .EQ $BE41 +GP.STATE .EQ $BE42 +GP.EXECACTV .EQ $BE43 +GP.IFILACTV .EQ $BE44 +GP.OFILACTV .EQ $BE45 +GP.PFXACTV .EQ $BE46 +GP.DIRFLG .EQ $BE47 +GP.EDIRFLG .EQ $BE48 +GP.STRINGS .EQ $BE49 +GP.TBUFPTR .EQ $BE4A +GP.INPTR .EQ $BE4B +GP.CHRLAST .EQ $BE4C +GP.OPENCNT .EQ $BE4D +GP.EXECFILE .EQ $BE4E +GP.CATFLAG .EQ $BE4F +*-------------------------------------- +GP.XTRNADDR .EQ $BE50 +GP.XLEN .EQ $BE52 +GP.XCNUM .EQ $BE53 +*-------------------------------------- +GP.AllowedBITS .EQ $BE54 +GP.FoundBITS .EQ $BE56 +GP.ParamA .EQ $BE58 +GP.ParamB .EQ $BE5A +GP.ParamE .EQ $BE5D +GP.ParamL .EQ $BE5F +GP.ParamS .EQ $BE61 +GP.ParamD .EQ $BE62 +GP.ParamF .EQ $BE63 +GP.ParamR .EQ $BE65 +GP.ParamV .EQ $BE67 +GP.ParamAT .EQ $BE68 +GP.ParamT .EQ $BE6A +GP.ParamINPR .EQ $BE6B +GP.VPATH1 .EQ $BE6C +GP.VPATH2 .EQ $BE6E +*-------------------------------------- +GP.GOSYSTEM .EQ $BE70 +GP.GOSYSTEM.C .EQ $BE85 +GP.GOSYSTEM.P .EQ $BE86 +GP.BADCALL .EQ $BE8B +GP.RTS .EQ $BE9E +GP.CISPARE1 .EQ $BE9F +*-------------------------------------- +GP.SCREATE .EQ $BEA0 +GP.SCREATEPATH .EQ $BEA1 +GP.CRACCESS .EQ $BEA3 +GP.CRTYPE .EQ $BEA4 +GP.CRAUXTYPE .EQ $BEA5 +GP.CRSTTYPE .EQ $BEA7 +GP.DATETIME .EQ $BEA8 +*-------------------------------------- +GP.SDSTROY .EQ $BEAC +GP.SDSTROYPATH .EQ $BEAD +*-------------------------------------- +GP.SRECNAME .EQ $BEAF +GP.SRECNAMEOLD .EQ $BEB0 +GP.SRECNAMENEW .EQ $BEB2 +*-------------------------------------- +GP.SSGINFO .EQ $BEB4 +GP.SSGINFOPATH .EQ $BEB5 +GP.FIACCESS .EQ $BEB7 +GP.FITYPE .EQ $BEB8 +GP.FIAUXTYPE .EQ $BEB9 +GP.STTYPE .EQ $BEBB +GP.FIBLOKS .EQ $BEBC +GP.FIMDATE .EQ $BEBE +GP.FICDATE .EQ $BEC2 +*-------------------------------------- +GP.MLIMRKEOFBUF .EQ $BEC6 +GP.MLIMRKEOFBUF.REFNUM .EQ $BEC7 +GP.SBUFADR .EQ $BEC8 +*-------------------------------------- +GP.SOPEN .EQ $BECB +GP.TXTBUF .EQ $BECC +GP.OSYSBUF .EQ $BECE +GP.OREFNUM .EQ $BED0 +*-------------------------------------- +GP.SNEWLIN .EQ $BED1 +GP.NEWLREF .EQ $BED2 +GP.NLINEMASK .EQ $BED3 +GP.NLINECHAR .EQ $BED4 +*-------------------------------------- +GP.MLIRW .EQ $BED5 +GP.MLIRW.REFNUM .EQ $BED6 +GP.MLIRW.DATAPTR .EQ $BED7 +GP.MLIRW.COUNT .EQ $BED9 +GP.MLIRW.TRANS .EQ $BEDB +*-------------------------------------- +GP.MLICF .EQ $BEDD +GP.MLICF.REFNUM .EQ $BEDE +*-------------------------------------- +GP.CCCSPARE .EQ $BEDF +*-------------------------------------- GP.GETBUFR .EQ $BEF5 GP.FREEBUFR .EQ $BEF8 +GP.RSHIMEM .EQ $BEFB *-------------------------------------- MAN SAVE inc/bs.i diff --git a/INC/MON.I.txt b/INC/MON.I.txt new file mode 100644 index 00000000..0b522861 --- /dev/null +++ b/INC/MON.I.txt @@ -0,0 +1,133 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +* MON ZP locations +*-------------------------------------- +ZP.WNDLFT .EQ $20 +ZP.WNDWDT .EQ $21 +ZP.WNDTOP .EQ $22 +ZP.WNDBOT .EQ $23 +ZP.CH .EQ $24 +ZP.CV .EQ $25 +ZP.BASL .EQ $28 +ZP.BASH .EQ $29 + +ZP.PROMPT .EQ $33 + +ZP.CSW .EQ $36 +ZP.KSW .EQ $38 + +ZP.PCL .EQ $3A +ZP.PCH .EQ $3B +ZP.A1L .EQ $3C +ZP.A1H .EQ $3D +ZP.A2L .EQ $3E +ZP.A2H .EQ $3F +ZP.A4L .EQ $40 +ZP.A4H .EQ $41 + +ZP.CMD .EQ $42 +ZP.UNITNUM .EQ $43 +ZP.BUFPTR .EQ $44 +ZP.BLKNUM .EQ $46 +*-------------------------------------- +* ROM Standard Routines +*-------------------------------------- +MON.BRKVECT .EQ $03F0 +MON.POWERUP .EQ $03F2 +MON.POWERUPBYTE .EQ $03F4 +MON.AMPJMP .EQ $03F5 +MON.USRJMP .EQ $03F8 +MON.NMIJMP .EQ $03FB +MON.IRQVECT .EQ $03FE +*-------------------------------------- +MSLOT .EQ $7F8 $Cn n=slot using $C800 +*-------------------------------------- +COL80FIRM .EQ $C300 +*-------------------------------------- +MON.ENTERMON .EQ $FF69 +*-------------------------------------- +PLOT .EQ $F800 PLOT LORES BLOCK +HLINE .EQ $F819 HORIZ LORES LINE +VLINE .EQ $F828 VERTICAL LORES LINE +CLRSCR .EQ $F832 CLEAR FULL LORES SCREEN +CLRTOP .EQ $FB36 CLEAR TOP. LORES SCREEN +GBSCALC .EQ $F847 LORES BASE CALCULATION +NEXTCOL .EQ $F85F INCREASE LORES COLOR BY 3 +SETCOL .EQ $F864 SET LORES COLOR +SCRN .EQ $F871 READ LORES SCREEN COLOR +PRNTAX .EQ $F941 OUTPUT A THEN X. AS HEX +PRBLNK .EQ $F948 OUTPUT 3 SPACES VIA BOOKS +PRBL2 .EQ $F94A OUTPUT X BLANKS VIA HOOKS +romirq .EQ $FA41 monitor irq entry +MON.BREAKV .EQ $FA59 Monitor break vector +resetv .EQ $FA62 monitor reset entry +REGDSP .EQ $FAD7 DISPLAY WORKING REGISTERS +PREAD .EQ $FB1E READ GAME PADDLE X +MON.INIT .EQ $FB2F INITIALIZE TEXT SCREEN +SETTXT .EQ $FB39 SET UP TEXT SCREEN (NOT 2E!) +SETGR .EQ $FB40 SET UP GRAPHICS SCREEN +SETWND .EQ $FB4B SET NORMAL TEXT WINDOW +TABV .EQ $FB5B +SETPWRC .EQ $FB6F +version .EQ $FBB3 monitor ROM id byte +zidbyte .EQ $FBC0 monitor ROM id byte +BASCALC .EQ $FBC1 CALCULATE TEXT BASE ADDRESS (NOT 2E!} +BELL1 .EQ $FBDD BEEP SPEAKER IF CTRL-G +BELL2 .EQ $FBE4 BEEP SPEAKER ONCE +ADVANCE .EQ $FBF4 TEXT CURSOR ONE TO RIGHT +VIDOUT .EQ $FBFD OUTPUT ASCII TO SCREEN ONLY +BS .EQ $FC10 BACKSPACE SCREEN +UP .EQ $FC1A MOVE SCREEN CURSOR UP ONE LINE +VTAB .EQ $FC22 VERTICAL SCREEN TAB USING CV +VTABA .EQ $FC24 VERTICAL SCREEN TAB USING A +ESC1 .EQ $FC66 PROCESS ESCAPE CURSOR MOVES +CLREOP .EQ $FC42 CLEAR TO END OF PAGE +MON.HOME .EQ $FC58 CLEAR TEXT SCREEN AND HOME CURSOR +CR .EQ $FC62 CARRIAGE RETURN TO SCREEN +LF .EQ $FC66 LINEFEED TO SCREEN ONLY +SCROLL .EQ $FC70 SCROLL TEXT SCREEN UP ONE +MON.CLREOL .EQ $FC9C CLEAR TEXT TO END OF LINE +WAIT .EQ $FCA8 TIME DELAY SET BY ACCUMULATOR +MON.RDKEY .EQ $FD0C GET INPUT CHARACTER VIA HOOKS +MON.KEYIN0 .EQ $FD10 +MON.KEYIN .EQ $FD1B READ THE APPLE KEYBOARD +RDCHAR .EQ $FD35 GET KEY AND PROCESS ESC A-F +CANCEL .EQ $FD62 CANCEL KEYBOARD LINE ENTRY +GETLNZ .EQ $FD67 CR THEN GET KEYBOARD INPUT LINE +MON.GETLN .EQ $FD6A GET KEYBOARD INPUT LINE +GETLN1 .EQ $FD6F GET KBD INPUT, NO PROMPT +CROUT1 .EQ $FD8B CLEAR EOL THEN CR VIA BOOKS +MON.CROUT .EQ $FD8E OUTPUT CR VIA HOOKS +PRBYTE .EQ $FDDA OUTPUT FULL A IN HEX TO HOOKS +PRHEX .EQ $FDE3 OUTPUT LOW A IN HEX TO HOOKS +MON.COUT .EQ $FDED OUTPUT CHARACTER VIA HOOKS +MON.COUT1 .EQ $FDF0 OUTPUT CHARACTER TO SCREEN +MON.IIGSID .EQ $FE1F returns system info +MOVE .EQ $FE2C MOVE BLOCK OF MEMORY +VERIFY .EQ $FE36 VERIFY BLOCK OF MEMORY +LIST .EQ $FE5E DISASSEMBLE 20 INSTRUCTIONS +LIST2 .EQ $FE63 DISASSEMBLE •A• INSTRUCTIONS +MON.SETINV .EQ $FE80 PRINT INVERSE TEXT TO SCREEN +MON.SETNORM .EQ $FE84 PRINT NORMAL TEXT TO SCREEN +MON.SETKBD .EQ $FE89 GRAB INPUT HOOKS FOR KEYBOARD +MON.SETVID .EQ $FE93 GRAB OUTPUT HOOKS FOR SCREEN +XBASIC .EQ $FEB0 GO BASIC, DESTROYING OLD +BASCON .EQ $FEB3 GO BASIC, CONTINUING OLD +TRACE .EQ $FEC2 START TRACING (OLD ROM ONLY!) +STEP .EQ $FEC4 SINGLE STEP (OLD ROM ONLY!) +WRITE .EQ $FECD WRITE TO CASSETTE TAPE +READ .EQ $FEF0 READ TO CASSETTE TAPE +PRERR .EQ $FF2D PRINT "ERR" TO OUTPUT HOOK +BELL .EQ $FF3A OUTPUT BELL TO HOOKS +IORESR .EQ $FF3F RESTORE ALL WORKING REGISTER +IOSAVE .EQ $FF4A SAVE ALL WORKING REGISTERS +RETURN .EQ $FF58 "GUARANTEED" RETURN +OLDRST .EQ $FF59 OLD RESET, NO AUTOSTART +MON .EQ $FF65 ENTER MONITOR AND BEEP SPEAKER +MONZ .EQ $FF69 ENTER MONITOR QUIETLY +GETNUM .EQ $FFA7 ASCII TO HEX IN 3E & 3F +*-------------------------------------- +MAN +SAVE inc/mon.i