.INC reorg

This commit is contained in:
burniouf 2024-01-09 22:52:03 +01:00
parent 04e3901894
commit 50386f6c26
8 changed files with 430 additions and 210 deletions

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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
*--------------------------------------

View File

@ -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

39
INC/AS.I.txt Normal file
View File

@ -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

View File

@ -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

133
INC/MON.I.txt Normal file
View File

@ -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