mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-10 09:30:40 +00:00
Kernel 0.93+
This commit is contained in:
parent
a6783d6e4a
commit
73fac18b13
Binary file not shown.
@ -172,6 +172,9 @@ CL.CHARIN.CTRL cpx #C.CR
|
||||
*--------------------------------------
|
||||
CL.CLR lda (ZPCLBuf)
|
||||
beq CL.RESET.1
|
||||
|
||||
>LDA.G bREAD.S
|
||||
bmi CL.RESET.1
|
||||
|
||||
.1 >LDA.G CL.Ptr
|
||||
>CMP.G CL.Len
|
||||
@ -201,20 +204,13 @@ CL.RESET.1 >STA.G CL.Ptr
|
||||
>STA.G CL.bReady
|
||||
>STA.G CL.bEscMode
|
||||
rts
|
||||
|
||||
*ldy #CL.Ptr
|
||||
|
||||
*.1 sta (pData),y
|
||||
* iny
|
||||
* cpx #CL.bEscMode+1
|
||||
* bne .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CL.BS >LDA.G CL.Ptr
|
||||
beq .9
|
||||
dec
|
||||
sta (pData),y
|
||||
>LDA.G bREAD.S
|
||||
bmi .9
|
||||
lda #C.BS
|
||||
>SYSCALL PutChar
|
||||
.9 rts
|
||||
@ -224,6 +220,8 @@ CL.NAK >LDA.G CL.Ptr
|
||||
beq .9
|
||||
inc
|
||||
>STA.G CL.Ptr
|
||||
>LDA.G bREAD.S
|
||||
bmi .9
|
||||
lda #C.FS
|
||||
>SYSCALL PutChar
|
||||
.9 rts
|
||||
|
@ -191,25 +191,33 @@ INCOMING sta hFrameIn
|
||||
|
||||
>PULLW ZPTmpPtr1
|
||||
ldy #S.IOCTL.BUFPTR+3
|
||||
ldx #3
|
||||
|
||||
.1 lda (ZPTmpPtr1),y Get Frame Ptr & Len
|
||||
sta ZPFrameInPtr-S.IOCTL.BUFPTR,y
|
||||
sta ZPFrameInPtr,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldy #S.ETH.EII.TYPE
|
||||
lda (ZPFrameInPtr),y
|
||||
cmp /S.ETH.EII.TYPE.IP
|
||||
bne .9
|
||||
|
||||
iny
|
||||
lda (ZPFrameInPtr),y
|
||||
cmp #S.ETH.EII.TYPE.ARP
|
||||
bne .2
|
||||
jmp ARP.IN
|
||||
.2 cmp #S.ETH.EII.TYPE.IP
|
||||
bne .9
|
||||
jmp IP.IN
|
||||
beq .2
|
||||
|
||||
|
||||
cmp #S.ETH.EII.TYPE.IP
|
||||
beq .3
|
||||
|
||||
.9 sec
|
||||
INCOMING.RTS
|
||||
rts
|
||||
|
||||
.2 jmp ARP.IN
|
||||
.3 jmp IP.IN
|
||||
*--------------------------------------
|
||||
* A = S.EVT.F
|
||||
* Expire = every sec
|
||||
|
@ -53,12 +53,8 @@ CCLK.START >SHORTMX 8 bit mode.
|
||||
rts
|
||||
savestate .HS 00 state of the state register
|
||||
.AS "JIMJAYKERRY&MIKE"
|
||||
.HS 0000000000000000 pad 0's until length
|
||||
.HS 0000000000000000 of driver = 125 bytes.
|
||||
.HS 000000000000
|
||||
CCLK.END .EQ * end of obj cclock_0.
|
||||
.HS 000000 pad to page boundary
|
||||
*--------------------------------------
|
||||
CCLK.LEN .EQ *-CCLK.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.CCLK
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -1,7 +1,7 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
H2E00 jmp GP.MLIENTRY $2E00-2EFF moved to $BF00
|
||||
GP.START jmp GP.MLIENTRY $2E00-2EFF moved to $BF00
|
||||
jspare jmp * will be changed to point to dispatcher.
|
||||
clockv rts changed to jmp ($4C) if clock present.
|
||||
.DA tclk_in clock routine entry address.
|
||||
@ -162,6 +162,7 @@ bnkbyt2 .DA #0
|
||||
.DA #0 preserved for System Utilities
|
||||
kversion .HS 23 represents release 2.0.3
|
||||
*--------------------------------------
|
||||
GP.LEN .EQ *-GP.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.GP
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -1,10 +1,11 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
licode jsr MLI check for file 'atinit'
|
||||
ILDR.START jsr MLI check for file 'atinit'
|
||||
.DA #MLIGETFILEINFO
|
||||
.DA gfi_list
|
||||
bcc gfi_ok branch if 'atinit' file found
|
||||
|
||||
cmp #$46 file not found?
|
||||
beq H23DF if so, continue loading interpreter
|
||||
bne H23E2
|
||||
@ -198,6 +199,7 @@ quitparm .HS 04
|
||||
.HS 0000
|
||||
iterp .AS -".SYSTEM" interpreter suffix that is required
|
||||
*--------------------------------------
|
||||
ILDR.LEN .EQ *-ILDR.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.ILDR
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -5,7 +5,7 @@ NEW
|
||||
* address $FFCB (ROM rts opcode) for rom switching to function.
|
||||
* $2D9B-2DFF moved to $FF9B-FFFF
|
||||
*--------------------------------------
|
||||
OLDROM.IRQV
|
||||
IRQ.START
|
||||
* pha
|
||||
* lda accsav
|
||||
* sta oldacc
|
||||
@ -82,6 +82,7 @@ IRQ.FREE2 .EQ $fffa-*
|
||||
irqv .DA * PATCHED with ROM vector by LDR
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
IRQ.LEN .EQ *-IRQ.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.IRQ
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,271 +1,6 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
* relocation subroutine. on entry, regs yx = address of parameter table
|
||||
* with the following parameters:
|
||||
*
|
||||
* (1) command: 0 = zero destination range
|
||||
* 1 = move data from src to dst
|
||||
* 2 = hi addr ref tbl, relocate and move
|
||||
* 3 = lo/hi addr ref tbl, relocate and move
|
||||
* 4 = program, relocate and move
|
||||
* >4 = end of sequence of commands
|
||||
* (2) destination
|
||||
* (2) length
|
||||
* (2) source
|
||||
* (1) # of address ranges (n) to be relocated
|
||||
* (n+1) list of low page addresses to be relocated
|
||||
* (n+1) list of high page addresses to be relocated
|
||||
* (n+1) list of offset amounts to be added to be added
|
||||
* if low and high limits have not been met
|
||||
*
|
||||
* on exit, carry set if error and yx = addr of error
|
||||
* with acc = $00 for table error or $FF if illegal opcode
|
||||
|
||||
reloc stx idxl save address of control table
|
||||
sty idxl+1
|
||||
rloop lda (idxl) get relocation command.
|
||||
cmp #$05
|
||||
bcs rlend taken if >= 5 then done.
|
||||
tax move destination to page 0
|
||||
ldy #$01 for indirect access.
|
||||
lda (idxl),y
|
||||
sta dst
|
||||
iny
|
||||
lda (idxl),y
|
||||
sta dst+1
|
||||
iny
|
||||
lda (idxl),y also the length (byte count)
|
||||
sta cnt of the destination area.
|
||||
iny
|
||||
lda (idxl),y
|
||||
sta cnt+1
|
||||
bmi rlerr branch if >= 32k.
|
||||
txa is it a request to zero destination?
|
||||
beq zero if yes.
|
||||
iny
|
||||
lda (idxl),y get source address.
|
||||
sta src used for move.
|
||||
sta cde used for relocation
|
||||
iny
|
||||
clc
|
||||
adc cnt add length to get final address
|
||||
sta ecde
|
||||
lda (idxl),y
|
||||
sta src+1
|
||||
sta cde+1
|
||||
adc cnt+1
|
||||
sta ecde+1
|
||||
dex test for 'move' command
|
||||
beq H2AA3 branch if move only (no relocation)
|
||||
stx wsize save element size (1,2,3)
|
||||
iny
|
||||
lda (idxl),y get # of ranges that are valid
|
||||
sta sgcnt relocation target addresses.
|
||||
tax separate serial range groups into tbls
|
||||
H2A42 iny
|
||||
lda (idxl),y transfer low limits to 'limlo' table
|
||||
sta limlo,x
|
||||
dex
|
||||
bpl H2A42
|
||||
ldx sgcnt # of ranges
|
||||
H2A4E iny
|
||||
lda (idxl),y transfer high limits to 'limhi' table
|
||||
sta limhi,x
|
||||
dex
|
||||
bpl H2A4E
|
||||
ldx sgcnt # of ranges
|
||||
H2A5A iny
|
||||
lda (idxl),y transfer offsets to 'ofset' table
|
||||
sta ofset,x
|
||||
dex
|
||||
bpl H2A5A
|
||||
jsr adjtbl adj index pointer to next entry.
|
||||
ldx wsize test for machine code relocation
|
||||
cpx #$03
|
||||
beq rlcode branch if program relocation
|
||||
jsr reladr otherwise, relocate addresses in
|
||||
H2A70 jsr moveSrcDst tables then move to destination.
|
||||
bra rloop do next table
|
||||
rlend clc
|
||||
rts
|
||||
rlerr jmp tblerr
|
||||
rlcode jsr rlprog relocate machine code refs
|
||||
bra H2A70
|
||||
|
||||
* fill destination range with 0's
|
||||
|
||||
zero jsr adjtbl adj table pointer to next entry.
|
||||
lda #$00
|
||||
ldy cnt+1 is it at least 1 page?
|
||||
beq H2A94 branch if not.
|
||||
tay
|
||||
H2A89 sta (dst),y
|
||||
iny
|
||||
bne H2A89
|
||||
inc dst+1 next page
|
||||
dec cnt+1
|
||||
bne H2A89 if more pages to clear.
|
||||
H2A94 ldy cnt any bytes left to 0?
|
||||
beq H2AA0 if not.
|
||||
tay
|
||||
H2A99 sta (dst),y zero out remainder
|
||||
iny
|
||||
cpy cnt
|
||||
bcc H2A99
|
||||
H2AA0 jmp rloop
|
||||
H2AA3 jsr adjtbl
|
||||
bra H2A70
|
||||
adjtbl tya add previous table length to
|
||||
sec get next entry position in table
|
||||
adc idxl
|
||||
sta idxl
|
||||
bcc H2AB2
|
||||
inc idxl+1
|
||||
H2AB2 rts
|
||||
moveSrcDst lda src+1 is move up, down or not at all?
|
||||
cmp dst+1
|
||||
bcc movup
|
||||
bne movdn
|
||||
lda src
|
||||
cmp dst
|
||||
bcc movup
|
||||
bne movdn
|
||||
rts no move.
|
||||
movup ldy cnt+1 calc highest page to move up
|
||||
tya and adj src and dst.
|
||||
clc
|
||||
adc src+1
|
||||
sta src+1
|
||||
tya
|
||||
clc
|
||||
adc dst+1
|
||||
sta dst+1
|
||||
ldy cnt move partial page 1st.
|
||||
beq H2ADE taken if no partial pages
|
||||
H2AD6 dey
|
||||
lda (src),y
|
||||
sta (dst),y
|
||||
tya end of page transfer?
|
||||
bne H2AD6 no
|
||||
H2ADE dec dst+1
|
||||
dec src+1
|
||||
dec cnt+1 done with all pages?
|
||||
bpl H2AD6 no
|
||||
rts
|
||||
movdn ldy #$00
|
||||
lda cnt+1 partial page move only?
|
||||
beq H2AFC taken if < 1 page to move
|
||||
H2AED lda (src),y
|
||||
sta (dst),y
|
||||
iny
|
||||
bne H2AED
|
||||
inc dst+1 next page
|
||||
inc src+1
|
||||
dec cnt+1 more pages?
|
||||
bne H2AED if more.
|
||||
H2AFC lda cnt move partial page.
|
||||
beq H2B09 if no more to move
|
||||
H2B00 lda (src),y
|
||||
sta (dst),y
|
||||
iny
|
||||
cpy cnt
|
||||
bne H2B00
|
||||
H2B09 rts
|
||||
|
||||
* relocate addresses
|
||||
|
||||
reladr ldy wsize 1 or 2 byte reference
|
||||
dey
|
||||
lda (cde),y
|
||||
jsr adjadr relocate reference.
|
||||
lda wsize update and test code pointer.
|
||||
jsr adjcde
|
||||
bcc reladr if more to do
|
||||
rts
|
||||
rlprog ldy #$00 get next opcode
|
||||
lda (cde),y
|
||||
jsr oplen determine if a 3 byte instruction.
|
||||
beq rperr branch if not an opcode
|
||||
cmp #$03
|
||||
bne H2B30
|
||||
ldy #$02
|
||||
jsr adjadr relocate address
|
||||
lda #$03
|
||||
H2B30 jsr adjcde update and test if done.
|
||||
bcc rlprog if more to do
|
||||
rts
|
||||
rperr pla
|
||||
pla
|
||||
ldx cde bad code address in y,x
|
||||
ldy cde+1
|
||||
lda #$FF indicates bad opcode
|
||||
sec
|
||||
rts
|
||||
tblerr ldx idxl bad table address in y,x
|
||||
ldy idxl+1
|
||||
lda #$00 indicates input table error
|
||||
sec
|
||||
rts
|
||||
adjadr lda (cde),y get page address and
|
||||
ldx sgcnt test against limits.
|
||||
H2B4D cmp limlo,x is it >= low?
|
||||
bcc H2B59 if not.
|
||||
cmp limhi,x is it <= high?
|
||||
bcc H2B5D branch if it is
|
||||
beq H2B5D
|
||||
H2B59 dex try next limit set
|
||||
bpl H2B4D
|
||||
rts return w/o adjustment.
|
||||
H2B5D clc add offset to form relocated
|
||||
adc ofset,x page address and replace
|
||||
sta (cde),y old address with result.
|
||||
rts
|
||||
adjcde clc update code pointer
|
||||
adc cde
|
||||
ldy cde+1
|
||||
bcc H2B6C branch if not page cross
|
||||
iny otherwise, update page#.
|
||||
H2B6C cpy ecde+1 has all code/data been processed?
|
||||
bcc H2B72 if not.
|
||||
cmp ecde
|
||||
H2B72 sta cde save updated values.
|
||||
sty cde+1
|
||||
rts return result (carry set = done).
|
||||
oplen pha form index to tbl & which 2-bit group.
|
||||
and #$03 low 2 bits specify group
|
||||
tay
|
||||
pla
|
||||
lsr upper 6 bits specify byte in table
|
||||
lsr
|
||||
tax
|
||||
lda opcodln,x
|
||||
nxgroup dey is opcode len in lowest 2 bits of acc?
|
||||
bmi H2B89 branch if it is
|
||||
lsr shift to next group.
|
||||
lsr (if length = 0 then error)
|
||||
bne nxgroup
|
||||
|
||||
H2B89 and #$03
|
||||
rts if z-set then error
|
||||
|
||||
* relocation table contains length of each opcode in 2-bit groups
|
||||
|
||||
opcodln .HS 0928193C0A280D3C
|
||||
.HS 0B2A193F0A280D3C
|
||||
.HS 0928193F0A280D3C
|
||||
.HS 0928193F0A280D3C
|
||||
.HS 082A113F0A2A1D0C
|
||||
.HS 2A2A193F0A2A1D3F
|
||||
.HS 0A2A193F0A280D3C
|
||||
.HS 0A2A193F0A280D3C
|
||||
|
||||
wsize .HS 00
|
||||
sgcnt .HS 00
|
||||
limlo .HS 0000000000000000
|
||||
limhi .HS 0000000000000000
|
||||
ofset .HS 0000000000000000
|
||||
|
||||
* patch to gsos vectors so error is returned for os calls - rev note #101
|
||||
|
||||
patch101 php
|
||||
@ -330,44 +65,6 @@ L2C4D lda 1,s
|
||||
sec
|
||||
rtl
|
||||
|
||||
.BS $2C80-*
|
||||
|
||||
RAMDRV.Install ldy #$99 move $9A bytesfrom lcsrc to lcdest.
|
||||
|
||||
.1 lda RAM,y transfer main bank portion of driver
|
||||
sta RAMDRV,y
|
||||
dey
|
||||
cpy #$FF
|
||||
bne .1
|
||||
|
||||
ldx #RAMX set up to move aux portion of driver
|
||||
stx A1L
|
||||
dex
|
||||
stx A2L
|
||||
ldx /RAMX
|
||||
stx A1L+1
|
||||
inx
|
||||
stx A2L+1
|
||||
lda #RAMXDRV
|
||||
sta A4L
|
||||
lda /RAMXDRV RAMX to RAMXDRV
|
||||
sta A4L+1
|
||||
sec irection = to aux bank.
|
||||
jsr auxmove move aux bank portion of driver.
|
||||
lda #RAMDRV put driver address into
|
||||
sta drivertbl2+6 slot 3, drive 2.
|
||||
lda /RAMDRV
|
||||
sta drivertbl2+7
|
||||
inc numdevs count (-1) active devices
|
||||
ldx numdevs
|
||||
lda #$BF unit num of /RAM
|
||||
sta devlist,x
|
||||
rts
|
||||
|
||||
RAM_1_END .EQ * end of /RAM installer
|
||||
.BS $2D00-* pad 0's to page boundary
|
||||
|
||||
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.LDR.B
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -1,9 +1,6 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
* object code = ram_2
|
||||
* /RAM driver (main bank portion)
|
||||
* origin = $FF00
|
||||
|
||||
RAM.START
|
||||
RAMDRV cld no decimal.
|
||||
ldx #$0B save 13 bytes of parms
|
||||
.1 lda A1L,x
|
||||
@ -76,12 +73,8 @@ H2D6A lda (A1L),y pointers set in card by 'setptr'
|
||||
jmp gocard
|
||||
sp1 .HS 0000
|
||||
a1l1 .BS 13 13 bytes of storage
|
||||
|
||||
* end of obj ram_2
|
||||
|
||||
RAMDRV.END .EQ *
|
||||
.BS $FF9B-* fill to lanirq ($FF9B see note below)
|
||||
*--------------------------------------
|
||||
RAM.LEN .EQ RAM.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.RAM
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -16,7 +16,7 @@ NEW
|
||||
* $60-$67: returns blocks $68-$7F in bank 1 of language card
|
||||
* $68-$7F: returns blocks $68-$7F in bank 2 of language card
|
||||
|
||||
H5100 lda RD80STORE read 80 store
|
||||
RAMX.START lda RD80STORE read 80 store
|
||||
pha save for later
|
||||
sta CLR80STORE turn off 80 store
|
||||
ldx #$04 move the parameters for use:
|
||||
@ -316,6 +316,7 @@ ex1 sta passit+1 also used by blockwrite
|
||||
|
||||
* end of obj ram_0
|
||||
*--------------------------------------
|
||||
RAMX.LEN .EQ *-RAMX.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.RAMX
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -291,6 +291,7 @@ dsp1pfx .DA #01 1 parameter
|
||||
|
||||
* end of obj sel_0
|
||||
*--------------------------------------
|
||||
SEL0.LEN .EQ SEL0.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.SEL0
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -3,6 +3,7 @@ NEW
|
||||
* object code = sel_1
|
||||
* Bird's Better Bye at org = dispadr
|
||||
*--------------------------------------
|
||||
SEL1.START
|
||||
birdbye cld
|
||||
lda RROMBNK2 read ROM
|
||||
stz softev
|
||||
@ -398,6 +399,7 @@ rd_refn .HS 01 reference number
|
||||
|
||||
dhdr_len .HS 00 directory header length (actually uses 2 bytes)
|
||||
*--------------------------------------
|
||||
SEL1.LEN .EQ SEL1.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.SEL1
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -13,6 +13,7 @@ NEW
|
||||
* (as other replacement quit code is supposed to do) because GQuit checks
|
||||
* this to see if this version of quit code is available.
|
||||
|
||||
SEL2.START
|
||||
GQdisp lda RRAMWRAMBNK1 read/write LC bank 1
|
||||
clc
|
||||
xce 16 bit native mode.
|
||||
@ -434,6 +435,7 @@ button1 .DA #$0D
|
||||
button2 .DA #$0B
|
||||
.AS "Cancel: Esc"
|
||||
*--------------------------------------
|
||||
SEL2.LEN .EQ SEL2.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.SEL2
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -110,6 +110,7 @@ yradj .DA #$12 Monday
|
||||
.DA #$13 Tuesday
|
||||
|
||||
TCLK.END .HS 000000 pad
|
||||
TCLK.LEN .EQ *-TCLK.START
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.TCLK
|
||||
|
@ -1,6 +1,7 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
XDOS.START
|
||||
XDOS.MLI cld no decimal.
|
||||
pla get processor status
|
||||
sta spare1 save it temporarily
|
||||
|
@ -761,6 +761,7 @@ XDOS.FREE .EQ $FEFD-* (ProDOS 2.0.3 = $0C)
|
||||
.DA calldisp
|
||||
cortflag .HS 00 cortland flag. 1 = Cortland system (must stay within page boundary)
|
||||
*--------------------------------------
|
||||
XDOS.LEN .EQ *-XDOS.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.XDOS.F
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -3,7 +3,7 @@ NEW
|
||||
*--------------------------------------
|
||||
FASTSEEK .EQ 0
|
||||
*--------------------------------------
|
||||
blockio cld $D8 to flag language card bank 1 (main)
|
||||
XRW.START cld $D8 to flag language card bank 1 (main)
|
||||
jsr rsetphse
|
||||
lda q7l,x turn off write enable
|
||||
nop
|
||||
@ -965,6 +965,7 @@ spunit .HS 0000000000000000 ref pathbuf-$10 smartport unit numbers
|
||||
|
||||
* pathname buffer starts at this page boundary (pathbuf = $D700)
|
||||
*--------------------------------------
|
||||
XRW.LEN .EQ *-XRW.START
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S.XRW
|
||||
LOAD USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -3,7 +3,8 @@ NEW
|
||||
.LIST OFF
|
||||
.OP 65816
|
||||
.OR $2000
|
||||
.TF PRODOS.FX,TSYS
|
||||
* .TF PRODOS,TSYS
|
||||
.TF PRODOS.FX
|
||||
*--------------------------------------
|
||||
.INB INC/ZP.I
|
||||
.INB INC/IO.I
|
||||
@ -49,6 +50,7 @@ P8QUIT .EQ $E0D000
|
||||
GSOS .EQ $E100A8
|
||||
GSOS2 .EQ $E100B0
|
||||
OS_BOOT .EQ $E100BD indicates O/S initially booted*--------------------------------------
|
||||
|
||||
lookptr .EQ $0A
|
||||
idapple .EQ $0C model machine id
|
||||
idxl .EQ $10 general use 16 bit index pointer
|
||||
@ -102,12 +104,10 @@ topname .EQ $73 index # of top name in display
|
||||
filetyps .EQ $74 128 byte table of filetypes
|
||||
errnum .EQ $DE
|
||||
*--------------------------------------
|
||||
tst128 .EQ $0080 temp page 0 routine for memory test
|
||||
auxsp .EQ $0101
|
||||
RAMXDRV .EQ $0200 load address for aux bank /RAM driver
|
||||
inbuf .EQ $0200 keyboard buffer
|
||||
pbuf .EQ $0280 prefix buffer
|
||||
p3vect .EQ $03F0 page 3 vectors (16 bytes)
|
||||
softev .EQ $03F2 RESET vector
|
||||
pwredup .EQ $03F4 power up byte
|
||||
nmivect .EQ $03FB nmi handler
|
||||
@ -159,47 +159,57 @@ vcbbuf .EQ $D900 vcb buffer
|
||||
bmbuf .EQ $DA00 512 byte bitmap buffer
|
||||
gbuf .EQ $DC00 general purpose 512 byte block buffer
|
||||
*--------------------------------------
|
||||
* $2000 mli_0 mli loader/relocator
|
||||
* $2C80 ram_1 installer for /RAM
|
||||
* $2D00 ram_2 /RAM driver in main lc
|
||||
* $2D9B mli_3 interrupts
|
||||
* $2E00 mli_1 global page
|
||||
* $2F00 tclock_0 Thunderclock driver
|
||||
* $2F80 cclock_0 Cortland clock driver
|
||||
* $3000 mli_2 xdos mli & block file manager
|
||||
* $5100 ram_0 /RAM driver in aux mem
|
||||
* $5300 xrw_0 disk core routines
|
||||
* $5A00 sel_0 dispatcher
|
||||
* $5D00 sel_1 enhanced quit code (Bird's Better Bye)
|
||||
* $6000 sel_2 GQuit dispatcher support
|
||||
.DUMMY
|
||||
.OR $10
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
ZPInBufPtr .BS 2
|
||||
ZPOutBufPtr .BS 2
|
||||
|
||||
ZPnCnt .BS 2
|
||||
ZPInMask .BS 1
|
||||
ZPBLOfsLBits .BS 1
|
||||
ZPBLOfsHBits .BS 1
|
||||
ZPBLLenBits .BS 1
|
||||
.ED
|
||||
*--------------------------------------
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.LDR.A
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.LDR.B
|
||||
.INB USR/SRC/SHARED/X.UNPAK.S
|
||||
PAKME.Table
|
||||
PAKME.ILDR .DA ILDR
|
||||
PAKME.GP .DA GP
|
||||
PAKME.XRW .DA XRW
|
||||
PAKME.XDOS .DA XDOS
|
||||
PAKME.IRQ .DA IRQ
|
||||
PAKME.RAM .DA RAM
|
||||
PAKME.RAMX .DA RAMX
|
||||
PAKME.TCLK .DA TCLK
|
||||
PAKME.CCLK .DA CCLK
|
||||
PAKME.SEL1 .DA SEL1
|
||||
PAKME.SEL2 .DA SEL2
|
||||
|
||||
ILDR .PH $800
|
||||
ILDR .DA #0
|
||||
.DA ILDR.LEN
|
||||
.PH $800
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.ILDR
|
||||
.EP
|
||||
|
||||
RAM .PH $FF00
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.RAM
|
||||
.EP
|
||||
|
||||
IRQ .PH $FF9B
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.IRQ
|
||||
.EP
|
||||
|
||||
GP .PH $BF00
|
||||
GP .DA #0
|
||||
.DA GP.LEN
|
||||
.PH $BF00
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.GP
|
||||
.EP
|
||||
|
||||
TCLK .PH $D742
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.TCLK
|
||||
.EP
|
||||
CCLK .PH $D742
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.CCLK
|
||||
XRW .DA #0
|
||||
.DA XRW.LEN
|
||||
.PH $D000
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.XRW
|
||||
.EP
|
||||
|
||||
XDOS .PH $DE00
|
||||
XDOS .DA #0
|
||||
.DA XDOS.LEN
|
||||
.PH $DE00
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.XDOS.A
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.XDOS.B
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.XDOS.C
|
||||
@ -208,25 +218,52 @@ XDOS .PH $DE00
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.XDOS.F
|
||||
.EP
|
||||
|
||||
RAMX .PH $200
|
||||
IRQ .DA #0
|
||||
.DA IRQ.LEN
|
||||
.PH $FF9B
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.IRQ
|
||||
.EP
|
||||
|
||||
RAM .DA #0
|
||||
.DA RAM.LEN
|
||||
.PH $FF00
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.RAM
|
||||
.EP
|
||||
|
||||
RAMX .DA #0
|
||||
.DA RAMX.LEN
|
||||
.PH $200
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.RAMX
|
||||
.EP
|
||||
|
||||
XRW .PH $D000
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.XRW
|
||||
TCLK .DA #0
|
||||
.DA TCLK.LEN
|
||||
.PH $D742
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.TCLK
|
||||
.EP
|
||||
|
||||
SEL0 .PH $1000
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.SEL0
|
||||
CCLK .DA #0
|
||||
.DA CCLK.LEN
|
||||
.PH $D742
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.CCLK
|
||||
.EP
|
||||
|
||||
SEL1 .PH $1000
|
||||
SEL1 .DA #0
|
||||
.DA SEL1.LEN
|
||||
.PH $1000
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.SEL1
|
||||
.EP
|
||||
|
||||
SEL2 .PH $1000
|
||||
SEL2 .DA #0
|
||||
.DA SEL2.LEN
|
||||
.PH $1000
|
||||
.INB USR/SRC/PRODOS.FX/PRODOS.S.SEL2
|
||||
.EP
|
||||
*--------------------------------------
|
||||
.AS "PAKME" TAG
|
||||
.DA $2000 BIN ORG
|
||||
.DA #11 Chunk Count
|
||||
.DA PAKME.Table Chunks
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.FX/PRODOS.S
|
||||
|
@ -359,12 +359,12 @@ MSG.TOPBAR .AZ "\e[37;100m\ec\e[7m\e[1;1HA2osX Kernel Config Utility : "
|
||||
MSG.TOPBAR.OK .AZ "KCONFIG File Successfully Loaded. \e[0m"
|
||||
MSG.TOPBAR.KO .AZ "Invalid/missing KCONFIG File. \e[0m"
|
||||
MSG.STATUSBAR .AZ "\e[37;100m\e[7m\e[24;1HSlot 1-7:En/Dis Ctrl:(Q)uit,(S)ave,(T)iming,(C)HRoot,(P)reemptive,TT(Y)s \e[0m"
|
||||
MSG.KCONF .AZ "\e[93;44m\e[2;1H------ Actual Kernel Configuration ------\r\n"
|
||||
MSG.FCONF .AZ "\e[93;44m\e[13;1H------ KCONFIG File Configuration -------\r\n"
|
||||
MSG.HZ .AZ " Machine Timing : %d0 Hz\r\n"
|
||||
MSG.KCONF .AZ "\e[93;44m\e[2;1H------ Actual Kernel Configuration ------\e[K\r\n"
|
||||
MSG.FCONF .AZ "\e[93;44m\e[13;1H------ KCONFIG File Configuration -------\e[K\r\n"
|
||||
MSG.HZ .AZ " Machine Timing : %d0 Hz\e[K\r\n"
|
||||
MSG.CHROOT .AZ " CHRoot to /RAMx : %10s"
|
||||
MSG.PMODE .AZ " Preemptive Mode : %s\r\n"
|
||||
MSG.TTYS .AZ " #TTYs : %d\r\n"
|
||||
MSG.PMODE .AZ " Preemptive Mode : %s\e[K\r\n"
|
||||
MSG.TTYS .AZ " #TTYs : %d\e[K\r\n"
|
||||
MSG.ENABLED .AZ "Enabled "
|
||||
MSG.DISABLED .AZ "Disabled"
|
||||
MSG.SLOT .AZ " Slot #%d : %s\e[K\r\n"
|
||||
|
@ -110,7 +110,6 @@ DevMgr.FreeMem .EQ *
|
||||
.LIST OFF
|
||||
.EP
|
||||
A2osX.E0.E .EQ *
|
||||
|
||||
*--------------------------------------
|
||||
.AS "PAKME" TAG
|
||||
.DA $2000 BIN ORG
|
||||
|
Loading…
x
Reference in New Issue
Block a user