mirror of
https://github.com/A2osX/A2osX.git
synced 2024-12-28 10:29:49 +00:00
Kernel 0.93+
This commit is contained in:
parent
e9beaf983c
commit
230fed8d88
Binary file not shown.
@ -31,8 +31,8 @@ ZPBufPtr2 .BS 2
|
||||
bSkip2 .BS 1
|
||||
|
||||
Offset .BS 2
|
||||
|
||||
BufCnt .BS 2
|
||||
SeekOfs .BS 4
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
@ -114,14 +114,13 @@ CS.RUN
|
||||
stx hBuf2
|
||||
bra .1
|
||||
|
||||
.4 lda #$ff
|
||||
|
||||
bit bSkip1
|
||||
.4 bit bSkip1
|
||||
bmi .5
|
||||
|
||||
sta bSkip1
|
||||
jsr CS.RUN.SEEK
|
||||
bcs .9
|
||||
sec
|
||||
ror bSkip1
|
||||
bra .1
|
||||
|
||||
.5 bit bSkip2
|
||||
@ -130,6 +129,8 @@ CS.RUN
|
||||
sta bSkip2
|
||||
jsr CS.RUN.SEEK
|
||||
bcs .9
|
||||
sec
|
||||
ror bSkip2
|
||||
jmp .1
|
||||
|
||||
.7 lda hFile2
|
||||
@ -221,8 +222,27 @@ CS.RUN.OPEN >PUSHWZ Aux type
|
||||
>SYSCALL FOpen
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.SEEK clc
|
||||
rts
|
||||
CS.RUN.SEEK >LDYA ZPPtr1
|
||||
>SYSCALL atol
|
||||
bcs .9
|
||||
|
||||
>PULLL SeekOfs
|
||||
|
||||
lda bSkip1
|
||||
bmi .1
|
||||
|
||||
>PUSHBI SEEK.SET
|
||||
>PUSHL SeekOfs
|
||||
lda hFile1
|
||||
>SYSCALL fseek
|
||||
bcs .9
|
||||
|
||||
.1 >PUSHBI SEEK.SET
|
||||
>PUSHL SeekOfs
|
||||
lda hFile2
|
||||
>SYSCALL fseek
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.READ1 >PUSHWI 256
|
||||
>PUSHW ZPBufPtr1
|
||||
|
@ -77,7 +77,7 @@ LIST .EQ $FE5E DISASSEMBLE 20 INSTRUCTIONS
|
||||
LIST2 .EQ $FE63 DISASSEMBLE •A• INSTRUCTIONS
|
||||
SETINV .EQ $FE80 PRINT INVERSE TEXT TO SCREEN
|
||||
SETNORM .EQ $FE84 PRINT NORMAL TEXT TO SCREEN
|
||||
SETKBD .EQ $FE93 GRAB INPUT HOOKS FOR KEYBOARD
|
||||
SETKBD .EQ $FE89 GRAB INPUT HOOKS FOR KEYBOARD
|
||||
SETVID .EQ $FE93 GRAB OUTPUT HOOKS FOR SCREEN
|
||||
XBASIC .EQ $FEB0 GO BASIC, DESTROYING OLD
|
||||
BASCON .EQ $FEB3 GO BASIC, CONTINUING OLD
|
||||
|
@ -7,21 +7,21 @@ NEW
|
||||
ofsC .EQ *-tclk_in offset to Cortland clock org
|
||||
|
||||
cclock_0
|
||||
* SHORT I,M 8 bit mode.
|
||||
>SHORTMX 8 bit mode.
|
||||
lda statereg state register.
|
||||
sta savestate save for restore after tool call.
|
||||
and #$CF clear the read/write aux memory bits.
|
||||
sta statereg make it real
|
||||
clc set e = 0 to set native mode
|
||||
xce
|
||||
* LONG I,M 16 bit mode.
|
||||
>LONGMX 16 bit mode.
|
||||
lda ##$0000 zero out result space.
|
||||
pha push 4 words for hex time result
|
||||
pha
|
||||
pha
|
||||
pha
|
||||
>IIGS ReadTimeHex
|
||||
* SHORT M back to 8 bit to get results from stack
|
||||
>SHORTM back to 8 bit to get results from stack
|
||||
lda savestate restore state register
|
||||
sta statereg
|
||||
pla pull off seconds and ignore
|
||||
@ -61,7 +61,6 @@ savestate .EQ *-ofsC
|
||||
.HS 000000000000
|
||||
cclk_end .EQ * end of obj cclock_0.
|
||||
.HS 000000 pad to page boundary
|
||||
* LONG I OFF
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.203/PRODOS.S.CCLK
|
||||
|
@ -748,7 +748,7 @@ wrefa6 .EQ *-ofsD
|
||||
bcc L5881 (3-) branch if not the last.
|
||||
bcs L58B1 (3) waste 3 cycles, branch always.
|
||||
L58B1 bcs L58C0 (3) branch always.
|
||||
L58B3 lda pch (4) absolute reference to zero page
|
||||
L58B3 lda >pch (4) absolute reference to zero page
|
||||
sta q6h,x (5)
|
||||
lda q6l,x (4)
|
||||
pha (3) waste 14 micro-seconds total
|
||||
|
@ -4,7 +4,7 @@ NEW
|
||||
* global page
|
||||
|
||||
ofsG .EQ $2E00-MLI offset to global org
|
||||
|
||||
.BS $2E00-*
|
||||
H2E00 jmp mlient1 $2E00-2EFF moved to $BF00
|
||||
jspare .EQ *-ofsG
|
||||
jmp jspare will be changed to point to dispatcher.
|
||||
@ -36,13 +36,13 @@ drivertbl2 .EQ *-ofsG device driver table 2
|
||||
.DA nodevice
|
||||
.DA nodevice
|
||||
*devnum .EQ *-ofsG most recent accessed device
|
||||
.DA #0
|
||||
.DA #0
|
||||
numdevs .EQ *-ofsG count (-1) active devices
|
||||
.DA #$ff
|
||||
devlist .EQ *-ofsG active device list
|
||||
.HS 00000000000000 up to 14 units may be active
|
||||
.HS 00000000000000
|
||||
.DA #0
|
||||
.DA #0
|
||||
|
||||
.AS "(C)APPLE "
|
||||
mlient1 .EQ *-ofsG
|
||||
@ -53,27 +53,27 @@ aftirq .EQ *-ofsG irq returns here.
|
||||
sta RRAMWRAMBNK1 read/write RAM bank 1
|
||||
jmp fix45 restore $45 after interrupt in LC
|
||||
oldacc .EQ *-ofsG
|
||||
.DA #0
|
||||
.DA #0
|
||||
afbank .EQ *-ofsG
|
||||
.HS 00
|
||||
|
||||
* memory map of lower 48k. each bit represents 1 page.
|
||||
* protected pages = 1, unprotected = 0
|
||||
|
||||
memmap .EQ *-ofsG P8 memory bitmap
|
||||
memmap .EQ *-ofsG P8 memory bitmap
|
||||
.HS C000000000000000
|
||||
.HS 0000000000000000
|
||||
.HS 0000000000000001
|
||||
.HS 0000000000000001
|
||||
|
||||
* table of buffer addresses for currently open files.
|
||||
* these can only be changed thru the mli call setbuf.
|
||||
|
||||
buftbl .EQ *-ofsG
|
||||
buftbl .EQ *-ofsG
|
||||
.HS 0000 file #1
|
||||
.HS 0000 file #2
|
||||
.HS 0000 file #3
|
||||
.HS 0000 file #4
|
||||
.HS 0000 file #5
|
||||
.HS 0000 file #5
|
||||
.HS 0000 file #6
|
||||
.HS 0000 file #7
|
||||
.HS 0000 file #8
|
||||
@ -83,32 +83,32 @@ buftbl .EQ *-ofsG
|
||||
* at the time of the most recent interrupt are stored here along
|
||||
* with the address interrupted.
|
||||
|
||||
inttbl .EQ *-ofsG interrupt table
|
||||
.HS 0000 int #1
|
||||
inttbl .EQ *-ofsG interrupt table
|
||||
.HS 0000 int #1
|
||||
.HS 0000 int #2
|
||||
.HS 0000 int #3
|
||||
.HS 0000 int #4
|
||||
p8areg .EQ *-ofsG A register savearea
|
||||
.DA #0
|
||||
p8xreg .EQ *-ofsG X register savearea
|
||||
p8areg .EQ *-ofsG A register savearea
|
||||
.DA #0
|
||||
p8yreg .EQ *-ofsG Y register savearea
|
||||
p8xreg .EQ *-ofsG X register savearea
|
||||
.DA #0
|
||||
p8sreg .EQ *-ofsG S register savearea
|
||||
p8yreg .EQ *-ofsG Y register savearea
|
||||
.DA #0
|
||||
p8preg .EQ *-ofsG P register savearea
|
||||
p8sreg .EQ *-ofsG S register savearea
|
||||
.DA #0
|
||||
p8preg .EQ *-ofsG P register savearea
|
||||
.DA #0
|
||||
bankid .EQ *-ofsG bank ID byte (ROM/RAM)
|
||||
.DA #1
|
||||
intadr .EQ *-ofsG interrupt return address
|
||||
intadr .EQ *-ofsG interrupt return address
|
||||
.HS 0000
|
||||
p8date .EQ *-ofsG bits 15-9=yr, 8-5=mo, 4-0=day
|
||||
p8date .EQ *-ofsG bits 15-9=yr, 8-5=mo, 4-0=day
|
||||
.HS 0000
|
||||
p8time .EQ *-ofsG bits 12-8=hr, 5-0=min, low-hi format
|
||||
p8time .EQ *-ofsG bits 12-8=hr, 5-0=min, low-hi format
|
||||
.HS 0000
|
||||
flevel .EQ *-ofsG current file level
|
||||
.DA #0
|
||||
bubit .EQ *-ofsG backup bit disable, setfileinfo only
|
||||
bubit .EQ *-ofsG backup bit disable, setfileinfo only
|
||||
.DA #0
|
||||
spare1 .EQ *-ofsG used to save acc
|
||||
.DA #0
|
||||
@ -116,17 +116,17 @@ newpfxptr .EQ *-ofsG appletalk alternate prefix ptr
|
||||
.DA #0
|
||||
*machid .EQ *-ofsG machine ID byte
|
||||
.DA #0
|
||||
rommap .EQ *-ofsG slot ROM bit map
|
||||
rommap .EQ *-ofsG slot ROM bit map
|
||||
.DA #0
|
||||
preflag .EQ *-ofsG prefix active flag
|
||||
.DA #0
|
||||
mliact .EQ *-ofsG MLI active flag
|
||||
mliact .EQ *-ofsG MLI active flag
|
||||
.DA #0
|
||||
mliretn .EQ *-ofsG last MLI call return address
|
||||
.DA 0
|
||||
mlix .EQ *-ofsG MLI X register savearea
|
||||
mlix .EQ *-ofsG MLI X register savearea
|
||||
.DA #0
|
||||
mliy .EQ *-ofsG MLI Y register savearea
|
||||
mliy .EQ *-ofsG MLI Y register savearea
|
||||
.DA #0
|
||||
|
||||
* language card bank switching routines which must reside at $BFA0 because
|
||||
@ -134,15 +134,15 @@ mliy .EQ *-ofsG MLI Y register savearea
|
||||
|
||||
HBFA0 .EQ *-ofsG
|
||||
GP.HBFA0 eor $E000 test for rom enable
|
||||
beq .1 taken if ram enabled
|
||||
beq .1 taken if ram enabled
|
||||
sta RROMBNK2 read ROM
|
||||
bne .2 always
|
||||
.1 lda bnkbyt2 for alternate ram
|
||||
eor $D000 test
|
||||
beq .2 branch if not alternate ram
|
||||
bne .2 always
|
||||
.1 lda bnkbyt2 for alternate ram
|
||||
eor $D000 test
|
||||
beq .2 branch if not alternate ram
|
||||
lda RRAMWRAMBNK2 else enable alt $D000
|
||||
.2 pla return code
|
||||
rti re-enable interrupts and return
|
||||
.2 pla return code
|
||||
rti re-enable interrupts and return
|
||||
|
||||
mlicont .EQ *-ofsG
|
||||
sec
|
||||
@ -156,13 +156,13 @@ mlicont .EQ *-ofsG
|
||||
jmp xdosmli
|
||||
|
||||
irqexit .EQ *-ofsG
|
||||
lda bankid determine state of ram card (ROM/RAM)
|
||||
lda bankid determine state of ram card (ROM/RAM)
|
||||
|
||||
irqxit0 .EQ *-ofsG
|
||||
GP.irqxit0 beq .2 branch if ram card enabled.
|
||||
bmi .1 branch if alternate $D000 enabled.
|
||||
GP.irqxit0 beq .2 branch if ram card enabled.
|
||||
bmi .1 branch if alternate $D000 enabled.
|
||||
|
||||
lsr determine if no ram card present.
|
||||
lsr determine if no ram card present.
|
||||
bcc .3 branch if rom only system.
|
||||
|
||||
lda RROMWRAMBNK2 enable rom
|
||||
@ -185,7 +185,7 @@ bnkbyt2 .EQ *-ofsG
|
||||
.DA #0
|
||||
.HS 00000000 pad to before $BFFA
|
||||
.DA #4 gsos compatibility byte ($BFFA)
|
||||
.DA #0 pad
|
||||
.DA #0 pad
|
||||
.DA #0 reserved
|
||||
.DA #0 version # of running interpreter
|
||||
.DA #0 preserved for System Utilities
|
||||
|
@ -6,29 +6,29 @@ NEW
|
||||
* address $FFCB (ROM rts opcode) for rom switching to function.
|
||||
|
||||
lanirq .EQ *-ofsR2
|
||||
|
||||
H2D9B pha $2D9B-2DFF moved to $FF9B-FFFF
|
||||
.BS $2D9B-*
|
||||
H2D9B pha $2D9B-2DFF moved to $FF9B-FFFF
|
||||
lda accsav
|
||||
sta oldacc
|
||||
pla
|
||||
sta accsav
|
||||
pla get status register from stack
|
||||
pha and put it back.
|
||||
and #$10 is it a break or interrupt?
|
||||
bne H2DC2 branch if break.
|
||||
lda $D000 get ram bankid (LC1 = $D8, LC2=$EE)
|
||||
eor #$D8 is the system active? ($D8)
|
||||
beq sysactv branch if it is
|
||||
pla get status register from stack
|
||||
pha and put it back.
|
||||
and #$10 is it a break or interrupt?
|
||||
bne H2DC2 branch if break.
|
||||
lda $D000 get ram bankid (LC1 = $D8, LC2=$EE)
|
||||
eor #$D8 is the system active? ($D8)
|
||||
beq sysactv branch if it is
|
||||
lda #$FF
|
||||
sysactv sta bankid
|
||||
sta afbank
|
||||
lda /aftirq setup return address
|
||||
lda /aftirq setup return address
|
||||
pha
|
||||
lda #aftirq
|
||||
pha
|
||||
lda #$04 status reg with interrupt flag set
|
||||
lda #$04 status reg with interrupt flag set
|
||||
pha
|
||||
H2DC2 lda /romirq setup ROM re-entry
|
||||
H2DC2 lda /romirq setup ROM re-entry
|
||||
pha
|
||||
lda #romirq
|
||||
pha
|
||||
@ -64,8 +64,8 @@ stapfx .EQ *-ofsR2
|
||||
|
||||
* these 3 vectors hard-coded into processor
|
||||
|
||||
.DA nmivect nmi handler
|
||||
.DA lreset reset handler
|
||||
.DA nmivect nmi handler
|
||||
.DA lreset reset handler
|
||||
irqv .EQ *-ofsR2
|
||||
.DA lanirq irq handler
|
||||
|
||||
|
@ -164,7 +164,7 @@ H216E jsr reloc
|
||||
sei no interrupts.
|
||||
sta SETALTZP use alt zero page/stack
|
||||
stx auxsp init aux sp to $FF
|
||||
sta SETALTZP use main zero page/stack
|
||||
sta CLRALTZP use main zero page/stack
|
||||
pha restore interrupt status
|
||||
plp
|
||||
sta CLRC3ROM enable internal slot 3 ROM
|
||||
@ -184,7 +184,7 @@ noramdsk lda RROMWRAMBNK2 read ROM/write RAM bank 2
|
||||
sta auxsp
|
||||
stx irqv+1 interrupt vector
|
||||
sty irqv save irq vector in aux lc
|
||||
sta SETALTZP use main zero page/stack
|
||||
sta CLRALTZP use main zero page/stack
|
||||
stx irqv+1 save irq vector in main lc
|
||||
sty irqv
|
||||
lda #$01
|
||||
|
@ -817,7 +817,7 @@ nxgroup dey is opcode len in lowest 2 bits of acc?
|
||||
lsr (if length = 0 then error)
|
||||
bne nxgroup
|
||||
|
||||
.LIST ON
|
||||
.BS $2B89-*
|
||||
|
||||
H2B89 and #$03
|
||||
rts if z-set then error
|
||||
@ -845,7 +845,7 @@ patch101 php
|
||||
sei disable interrupts
|
||||
clc
|
||||
xce full native mode
|
||||
|
||||
>LONGMX
|
||||
phb save DBR
|
||||
pha
|
||||
pha
|
||||
@ -869,9 +869,9 @@ patch101 php
|
||||
>IIGS PtrToHand
|
||||
plx low word of handle
|
||||
plb set DBR to handle's bank
|
||||
lda 1,x get upper 16 bits of 24 bit address
|
||||
lda >1,x get upper 16 bits of 24 bit address
|
||||
tay save in y
|
||||
lda 0,x get low 8 bits of address
|
||||
lda >0,x get low 8 bits of address
|
||||
and ##$00FF clear high byte
|
||||
xba put address in high byte
|
||||
ora ##$005C include JML opcode
|
||||
@ -903,7 +903,8 @@ L2C4D lda 1,s
|
||||
sec
|
||||
rtl
|
||||
|
||||
.BS $2C80-*
|
||||
.BS $2C80-*
|
||||
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.203/PRODOS.S.LDR.B
|
||||
LOAD USR/SRC/PRODOS.203/PRODOS.S
|
||||
|
@ -9,7 +9,7 @@ RAM_1 .BS $2C80-*
|
||||
|
||||
H2C80 ldy #$99 move $9A bytesfrom lcsrc to lcdest.
|
||||
|
||||
.1 lda lcsrc,y transfer main bank portion of driver
|
||||
.1 lda lcsrc,y transfer main bank portion of driver
|
||||
sta lcdest,y
|
||||
dey
|
||||
cpy #$FF
|
||||
@ -19,7 +19,7 @@ H2C80 ldy #$99 move $9A bytesfrom lcsrc to lcdest.
|
||||
stx A1L
|
||||
dex
|
||||
stx A2L
|
||||
ldx ramsrc
|
||||
ldx /ramsrc
|
||||
stx A1L+1
|
||||
inx
|
||||
stx A2L+1
|
||||
|
@ -99,7 +99,7 @@ L5194 lda (A1L),y move A1,A2 to A4,A3
|
||||
sta (A3L),y
|
||||
dey
|
||||
bne L5194
|
||||
sta SETALTZP use main zero page/stack
|
||||
sta CLRALTZP use main zero page/stack
|
||||
L51A2 stx R2L
|
||||
pla restore R2
|
||||
sta R2H
|
||||
|
@ -260,22 +260,22 @@ L5C0B jsr prntmsg
|
||||
|
||||
dsp1msgs .EQ *-ofsS
|
||||
dsp1msg0 .EQ *-ofsS
|
||||
.AS "ENTER PREFIX (PRESS "RETURN" TO ACCEPT)"
|
||||
.AS -"ENTER PREFIX (PRESS "RETURN" TO ACCEPT)"
|
||||
.HS 00
|
||||
disp1msg .EQ *-ofsS
|
||||
.AS "ENTER PATHNAME OF NEXT APPLICATION"
|
||||
.AS -"ENTER PATHNAME OF NEXT APPLICATION"
|
||||
.HS 00
|
||||
dsp1err1 .EQ *-ofsS
|
||||
.DA #$87
|
||||
.AS "NOT A TYPE "SYS" FILE"
|
||||
.AS -'NOT A TYPE "SYS" FILE'
|
||||
.HS 00
|
||||
dsp1err2 .EQ *-ofsS
|
||||
.DA #$87
|
||||
.AS "I/O ERROR "
|
||||
.AS -"I/O ERROR "
|
||||
.HS 00
|
||||
dsp1err3 .EQ *-ofsS
|
||||
.DA #$87
|
||||
.AS "FILE/PATH NOT FOUND "
|
||||
.AS -"FILE/PATH NOT FOUND "
|
||||
.HS 00
|
||||
dsp1info .EQ *-ofsS get file info parms
|
||||
.DA #$0A 10 parameters
|
||||
|
@ -381,13 +381,13 @@ doread .EQ *-ofsB
|
||||
* data area
|
||||
|
||||
dsp2msg .EQ *-ofsB
|
||||
.AS "RETURN: Select | TAB: Chg Vol | "
|
||||
.AS "ESC: Back"
|
||||
.AS -"RETURN: Select | TAB: Chg Vol | "
|
||||
.AS -"ESC: Back"
|
||||
.DA #$00
|
||||
fldrmsg .EQ *-ofsB
|
||||
.DA #$0F inverse control code
|
||||
.HS 1B enable mousetext
|
||||
.AS "XY" folder characters
|
||||
.AS -"XY" folder characters
|
||||
.HS 18 disable mousetext
|
||||
.HS 0E normal control code
|
||||
.HS 00
|
||||
|
@ -19,7 +19,7 @@ GQdisp lda RRAMWRAMBNK1 read/write LC bank 1
|
||||
clc
|
||||
xce 16 bit native mode.
|
||||
jmp P8QUIT go to GQuit.
|
||||
.DA #0000000000 offset to paragraph boundary.
|
||||
.HS 0000000000 offset to paragraph boundary.
|
||||
.AS "GQ" id bytes so GQuit can identify this
|
||||
|
||||
* load application
|
||||
@ -39,10 +39,10 @@ GQdisp lda RRAMWRAMBNK1 read/write LC bank 1
|
||||
* so in case of an error setting the P8 prefix, it can be displayed in the
|
||||
* error message.
|
||||
|
||||
* SHORT M 8 bit accumulator
|
||||
* LONG I ON
|
||||
>SHORTM 8 bit accumulator
|
||||
|
||||
pha save the switch status.
|
||||
ldx #inbuf point to passed prefix.
|
||||
ldx ##inbuf point to passed prefix.
|
||||
jsr copyvol copy the name into the buffer.
|
||||
pla retrieve the switch status
|
||||
|
||||
@ -66,11 +66,11 @@ L6020 jsr MLI set prefix
|
||||
* load application at $2000
|
||||
|
||||
L602D xce native mode (carry clear)
|
||||
* LONG I 16 bit regs, 8 bit acc.
|
||||
>LONGX 16 bit regs, 8 bit acc.
|
||||
lda pbuf+1 is the application name
|
||||
cmp #$2F a complete pathname ?
|
||||
bne L603D no, use prefix as volume name
|
||||
ldx #pbuf else use the application name.
|
||||
ldx ##pbuf else use the application name.
|
||||
jsr copyvol copy the volume name to buffer.
|
||||
L603D sec back to emulation mode.
|
||||
xce
|
||||
@ -124,7 +124,7 @@ L6099 lda RROMBNK2 enable ROM
|
||||
gqerror .EQ *-ofsQ
|
||||
clc
|
||||
xce 16 bit native mode
|
||||
* LONG I,M
|
||||
>LONGMX
|
||||
jsr mountvol mount volume.
|
||||
bcs L60AB if error.
|
||||
sec back to emulation mode.
|
||||
@ -136,8 +136,8 @@ gqerror .EQ *-ofsQ
|
||||
|
||||
L60AB clc native mode
|
||||
xce
|
||||
* LONG I,M
|
||||
and #$00FF mask off high byte of error code.
|
||||
>LONGMX
|
||||
and ##$00FF mask off high byte of error code.
|
||||
pha put on stack for IntMath tool call.
|
||||
pea $0000 errval>>16
|
||||
pea errval push address of string buffer.
|
||||
@ -167,16 +167,16 @@ L60AB clc native mode
|
||||
* carry set if no window displayed or if had window and 'esc' pressed.
|
||||
|
||||
mountvol .EQ *-ofsQ
|
||||
ldy #$0000 volbuf>>16
|
||||
ldx #volbuf set up pointer to volume name.
|
||||
ldy ##$0000 volbuf>>16
|
||||
ldx ##volbuf set up pointer to volume name.
|
||||
|
||||
* if error is 'volume not found' or 'no disk in drive' then display the
|
||||
* Mount Volume window, otherwise return with carry set.
|
||||
|
||||
and #$00FF mask just in case.
|
||||
cmp #$0045 volume not found ?
|
||||
and ##$00FF mask just in case.
|
||||
cmp ##$0045 volume not found ?
|
||||
beq L6101 yes
|
||||
cmp #$002F no disk in drive ?
|
||||
cmp ##$002F no disk in drive ?
|
||||
beq L6101 yes
|
||||
sec indicate error not handled.
|
||||
rts return with error code still in acc.
|
||||
@ -210,7 +210,7 @@ L6101 pha save error code in case esc pressed.
|
||||
pld restore D reg.
|
||||
plx pull volume name pointer off stack
|
||||
plx
|
||||
cmp #$0001 which button was pressed ?
|
||||
cmp ##$0001 which button was pressed ?
|
||||
bne L613C if Escape pressed.
|
||||
clc indicate Return was pressed.
|
||||
pla pull original error code off stack.
|
||||
@ -225,21 +225,20 @@ L613C sec indicate Escape was pressed.
|
||||
* output: volume name is stored in volbuf.
|
||||
|
||||
copyvol .EQ *-ofsQ
|
||||
lda 1,x get the first slash
|
||||
lda >1,x get the first slash
|
||||
sta volbuf+1
|
||||
ldy #$0002 initialize the length count.
|
||||
* LONGI OFF
|
||||
* LONGA OFF
|
||||
L6148 lda 2,x now copy the volume name up to
|
||||
cmp #$2F the separating slash.
|
||||
ldy ##$0002 initialize the length count.
|
||||
|
||||
L6148 lda >2,x now copy the volume name up to
|
||||
cmp #$2F the separating slash.
|
||||
beq L6156
|
||||
sta volbuf,y
|
||||
inx
|
||||
iny
|
||||
bra L6148
|
||||
bra L6148
|
||||
L6156 dey fix character count.
|
||||
tya length.
|
||||
sta volbuf store the resultant string length.
|
||||
tya length.
|
||||
sta volbuf store the resultant string length.
|
||||
rts
|
||||
|
||||
* translate a filename message from the message center to the currently
|
||||
@ -263,7 +262,7 @@ L6170 lda #$FF put flag conditioning value on
|
||||
pha the stack (assume error).
|
||||
clc native 16-bit mode.
|
||||
xce
|
||||
* LONG I,M
|
||||
>LONGMX
|
||||
pha make room on stack for user id.
|
||||
>IIGS MMStartUp start up the memory manager.
|
||||
pla get the user id and
|
||||
@ -288,70 +287,70 @@ L6170 lda #$FF put flag conditioning value on
|
||||
pha (still in acc and x regs)
|
||||
>IIGS MessageCenter
|
||||
bcs L6203 branch if no message.
|
||||
pha leave 4 bytes free on stack
|
||||
pha (will be used as a direct page pointer)
|
||||
tsc get the stack pointer.
|
||||
phd save current direct register.
|
||||
inc point to new direct page space.
|
||||
tcd make a new direct page.
|
||||
pha leave 4 bytes free on stack
|
||||
pha (will be used as a direct page pointer)
|
||||
tsc get the stack pointer.
|
||||
phd save current direct register.
|
||||
inc point to new direct page space.
|
||||
tcd make a new direct page.
|
||||
lda [$04] de-reference the handle.
|
||||
sta $00
|
||||
ldy #$0002
|
||||
lda [$04],y
|
||||
sta $02
|
||||
ldy #$0006 get the message command.
|
||||
lda [$00],y
|
||||
bne bad_msg if print, then skip it.
|
||||
lda $00 adjust pointer to filename string.
|
||||
sta $00
|
||||
ldy ##$0002
|
||||
lda [$04],y
|
||||
sta $02
|
||||
ldy ##$0006 get the message command.
|
||||
lda [$00],y
|
||||
bne bad_msg if print, then skip it.
|
||||
lda $00 adjust pointer to filename string.
|
||||
clc
|
||||
adc #$0008
|
||||
sta $00
|
||||
bcc L61D1
|
||||
inc $02
|
||||
L61D1 lda [$00] get the length of the string.
|
||||
and #$00FF mask off high (leaving just the length)
|
||||
* SHORT M 8 bit accumulator
|
||||
cmp sysentry+5 check against length of app buffer.
|
||||
beq L61DF if equal then continue with move.
|
||||
bcs bad_msg if too long then bad message.
|
||||
L61DF tay string length.
|
||||
L61E0 lda [$00],y get a character.
|
||||
sta sysentry+6,y store it in the app's filename buffer
|
||||
sta inbuf,y and in prefix buffer.
|
||||
adc ##$0008
|
||||
sta $00
|
||||
bcc L61D1
|
||||
inc $02
|
||||
L61D1 lda [$00] get the length of the string.
|
||||
and ##$00FF mask off high (leaving just the length)
|
||||
>SHORTM 8 bit accumulator
|
||||
cmp sysentry+5 check against length of app buffer.
|
||||
beq L61DF if equal then continue with move.
|
||||
bcs bad_msg if too long then bad message.
|
||||
L61DF tay string length.
|
||||
L61E0 lda [$00],y get a character.
|
||||
sta sysentry+6,y store it in the app's filename buffer
|
||||
sta inbuf,y and in prefix buffer.
|
||||
dey
|
||||
bpl L61E0
|
||||
lda #$00 change flag conditioning value on stack
|
||||
sta $0D,s to indicate a filename is passed.
|
||||
bpl L61E0
|
||||
lda #$00 change flag conditioning value on stack
|
||||
sta $0D,s to indicate a filename is passed.
|
||||
bad_msg
|
||||
* LONG M 16-bit acc.
|
||||
pld restore direct register.
|
||||
pla fix stack because handle and userid
|
||||
pla still on stack.
|
||||
>LONGM 16-bit acc.
|
||||
pld restore direct register.
|
||||
pla fix stack because handle and userid
|
||||
pla still on stack.
|
||||
pea $0003 now delete the message (done with it).
|
||||
pea $0001 message type 1.
|
||||
pha garbage handle (not used).
|
||||
pha garbage handle (not used).
|
||||
pha
|
||||
>IIGS MessageCenter go delete the message.
|
||||
L6203 >IIGS DisposeHandle throw away message (handle is on stack)
|
||||
L620A >IIGS MMShutDown shutdown the memory manager (userid is
|
||||
sec on stack).
|
||||
xce back to emulation mode.
|
||||
* LONGA OFF
|
||||
|
||||
pla condition z-flag with value on stack.
|
||||
bne L6231 then done.
|
||||
ldx inbuf get length of pathname.
|
||||
lda #$2F look for slash.
|
||||
bne L6231 then done.
|
||||
ldx inbuf get length of pathname.
|
||||
lda #$2F look for slash.
|
||||
L621B cmp inbuf,x
|
||||
beq L6225 when found, set prefix.
|
||||
beq L6225 when found, set prefix.
|
||||
dex
|
||||
bne L621B
|
||||
bra L6231 if no slash, just skip it.
|
||||
L6225 dex don't include trailing slash.
|
||||
stx inbuf set new length.
|
||||
jsr MLI set the P8 prefix.
|
||||
bne L621B
|
||||
bra L6231 if no slash, just skip it.
|
||||
L6225 dex don't include trailing slash.
|
||||
stx inbuf set new length.
|
||||
jsr MLI set the P8 prefix.
|
||||
.DA #$C6
|
||||
.DA pfxparms
|
||||
lda #$00 set z-flag
|
||||
lda #$00 set z-flag
|
||||
L6231 rts and go launch the app.
|
||||
|
||||
* check for disk volume
|
||||
@ -363,23 +362,23 @@ L6231 rts and go launch the app.
|
||||
ckfordrv .EQ *-ofsQ
|
||||
SEL2.ckfordrv clc native mode
|
||||
xce
|
||||
* LONG I 16-bit regs, 8-bit acc.
|
||||
ldx #sysentry+6 point to pathname buffer.
|
||||
>LONGX 16-bit regs, 8-bit acc.
|
||||
ldx ##sysentry+6 point to pathname buffer.
|
||||
jsr copyvol copy volume name to pathname buffer.
|
||||
.1 sec emulation mode.
|
||||
.1 sec emulation mode.
|
||||
xce
|
||||
jsr MLI get info on the volume.
|
||||
.DA #$C4
|
||||
.DA gfiparms
|
||||
bcc .2 branch if volume found,
|
||||
clc (native mode)
|
||||
bcc .2 branch if volume found,
|
||||
clc (native mode)
|
||||
xce
|
||||
* LONG I,M
|
||||
>LONGMX
|
||||
jsr mountvol else ask user to mount the volume.
|
||||
bcc .1 if <return> pressed, then try again.
|
||||
sec emulation mode.
|
||||
sec emulation mode.
|
||||
xce
|
||||
sec disk not found.
|
||||
sec disk not found.
|
||||
.2 rts
|
||||
|
||||
* Prodos 8 parameter lists
|
||||
@ -435,12 +434,12 @@ gfiparms .EQ *-ofsQ get file info parms.
|
||||
|
||||
quitstr1 .EQ *-ofsQ
|
||||
.DA #$1B
|
||||
.AS 'Can't run next application.'
|
||||
.AS "Can't run next application."
|
||||
quitstr2 .EQ *-ofsQ
|
||||
.DA #$14
|
||||
.AS "ProDOS Error = $"
|
||||
errval .EQ *-ofsQ hex error code gets stored here
|
||||
.AS ' '
|
||||
.AS " "
|
||||
quitbtn2 .EQ *-ofsQ null string (no 2nd button)
|
||||
.HS 00
|
||||
|
||||
|
@ -92,13 +92,13 @@ tdays .EQ *-ofsT
|
||||
* the days of the week.
|
||||
|
||||
yradj .EQ *-ofsT
|
||||
.DA #$60 Monday
|
||||
.DA #$5F Sunday
|
||||
.DA #$5E Saturday
|
||||
.DA #$5D Friday
|
||||
.DA #$62 Thursday
|
||||
.DA #$61 Wednesday
|
||||
.DA #$60 Tuesday
|
||||
.DA #$07 Monday
|
||||
.DA #$0C Sunday
|
||||
.DA #$0B Saturday
|
||||
.DA #$0A Friday
|
||||
.DA #$09 Thursday
|
||||
.DA #$08 Wednesday
|
||||
.DA #$08 Tuesday
|
||||
tclk_end .EQ * end of obj tclock_0.
|
||||
.HS 000000 pad
|
||||
*--------------------------------------
|
||||
|
@ -4,8 +4,8 @@ NEW
|
||||
* xdos mli system call processor
|
||||
|
||||
ofsX .EQ *-xdosorg offset to xdos org
|
||||
|
||||
xdosmli .EQ *-ofsX xdos MLI in aux ram
|
||||
|
||||
xdosobj cld no decimal.
|
||||
pla get processor status
|
||||
sta spare1 save it temporarily
|
||||
@ -109,7 +109,7 @@ devmgr .EQ *-ofsX
|
||||
php do not allow interrupts.
|
||||
sei the call spec for devices must
|
||||
H30B9 lda (A3L),y be passed to drivers in page zero:
|
||||
sta (A4L),y sta $0042,y
|
||||
sta >$0042,y
|
||||
dey
|
||||
bne H30B9
|
||||
ldx buf+1 buffer page
|
||||
|
@ -32,7 +32,7 @@ L4DED dex test for conflicts.
|
||||
inx
|
||||
inx
|
||||
inx
|
||||
L4DFE dex set proper bits to 1
|
||||
L4DFE dex set proper bits to 1
|
||||
jsr cmembit
|
||||
ora memmap,y to mark it's allocation.
|
||||
sta memmap,y
|
||||
@ -47,7 +47,7 @@ L4DFE dex set proper bits to 1
|
||||
sta buftbl-1,x validated as good. store hi addr
|
||||
clc (entnums start at 1, not 0)
|
||||
rts
|
||||
L4E1E lda #$56 buffer is in use or not legal
|
||||
L4E1E lda #$56 buffer is in use or not legal
|
||||
sec
|
||||
rts
|
||||
getbufadr .EQ *-ofsX
|
||||
@ -69,21 +69,21 @@ freebuf .EQ *-ofsX
|
||||
inx
|
||||
inx
|
||||
inx
|
||||
L4E43 dex drop to next lower page.
|
||||
L4E43 dex drop to next lower page.
|
||||
jsr cmembit get bit and position to memtable of
|
||||
eor #$FF this page. invert mask.
|
||||
and memmap,y mark address as free space.
|
||||
sta memmap,y
|
||||
cpx bufaddrh all pages freed ?
|
||||
bne L4E43 no.
|
||||
L4E54 clc no error.
|
||||
L4E54 clc no error.
|
||||
rts
|
||||
|
||||
* calculate memory allocation bit position.
|
||||
* on entry: x = high address of buffer, low address assumed zero.
|
||||
* on exit: acc = allocation bit mask, x = unchanged, y = pointer to memtabl byte
|
||||
|
||||
cmembit .EQ *-ofsX
|
||||
cmembit .EQ *-ofsX
|
||||
txa page address
|
||||
and #$07 which page in any 2k set ?
|
||||
tay use as index to determine
|
||||
@ -105,7 +105,7 @@ valdbuf .EQ *-ofsX
|
||||
sbc #$01 (carry is set)
|
||||
bcs L4E76
|
||||
dex
|
||||
L4E76 clc
|
||||
L4E76 clc
|
||||
adc usrbuf calculate end of request address.
|
||||
txa do high address.
|
||||
adc usrbuf+1 the final address
|
||||
@ -113,8 +113,8 @@ L4E76 clc
|
||||
cpx #$BF
|
||||
bcs L4E1E report bad buffer.
|
||||
inx loop thru all affected pages.
|
||||
vldbuf1 .EQ *-ofsX
|
||||
L4E82 dex check next lower page.
|
||||
vldbuf1 .EQ *-ofsX
|
||||
L4E82 dex check next lower page.
|
||||
jsr cmembit
|
||||
and memmap,y if 0 then no conflict.
|
||||
bne L4E1E branch if conflict.
|
||||
@ -123,7 +123,7 @@ L4E82 dex check next lower page.
|
||||
clc all pages ok.
|
||||
rts
|
||||
|
||||
getbuf .EQ *-ofsX give user address of file buffer
|
||||
getbuf .EQ *-ofsX give user address of file buffer
|
||||
ldy #$02 referenced by refnum.
|
||||
lda bufaddrl
|
||||
sta (A3L),y
|
||||
@ -133,7 +133,7 @@ getbuf .EQ *-ofsX give user address of file buffer
|
||||
clc no errors possible
|
||||
rts
|
||||
|
||||
setbuf .EQ *-ofsX
|
||||
setbuf .EQ *-ofsX
|
||||
ldy #$03
|
||||
jsr alcbufr1 allocate new buffer address over old one
|
||||
bcs L4EC7 report any errors immediately
|
||||
@ -144,7 +144,7 @@ setbuf .EQ *-ofsX
|
||||
jsr freebuf free address space of old buffer
|
||||
ldy #$00
|
||||
ldx #$03
|
||||
L4EB8 lda (usrbuf),y move all 4 pages of the buffer to
|
||||
L4EB8 lda (usrbuf),y move all 4 pages of the buffer to
|
||||
sta (datptr),y new location.
|
||||
iny
|
||||
bne L4EB8
|
||||
@ -153,7 +153,7 @@ L4EB8 lda (usrbuf),y move all 4 pages of the buffer to
|
||||
dex
|
||||
bpl L4EB8
|
||||
clc no errors
|
||||
L4EC7 rts
|
||||
L4EC7 rts
|
||||
|
||||
|
||||
* move 3 pages of dispatcher from 'displc2' to 'dispadr'
|
||||
@ -171,7 +171,7 @@ calldisp .EQ *-ofsX
|
||||
stz A1L
|
||||
ldy #$00
|
||||
ldx #$03 3 pages to move.
|
||||
L4EE0 dey move a page of code.
|
||||
L4EE0 dey move a page of code.
|
||||
lda (A1L),y
|
||||
sta (A2L),y
|
||||
tya
|
||||
@ -193,7 +193,7 @@ L4EE0 dey move a page of code.
|
||||
* translate a prodos call into a smartport call
|
||||
* to access unseen smartport devices
|
||||
|
||||
remap_sp .EQ *-ofsX
|
||||
remap_sp .EQ *-ofsX
|
||||
ldx #$03 assume 3 parameters.
|
||||
lda A4L command number
|
||||
sta cmdnum
|
||||
@ -203,10 +203,10 @@ remap_sp .EQ *-ofsX
|
||||
ldy /spstatlist
|
||||
sty buf+1
|
||||
stz bloknml set statcode = 0 for simple status call
|
||||
L4F1B cmp #$03 format command ?
|
||||
L4F1B cmp #$03 format command ?
|
||||
bne L4F21 no.
|
||||
ldx #$01 format has only 1 parameter.
|
||||
L4F21 stx statparms set # of parms.
|
||||
L4F21 stx statparms set # of parms.
|
||||
lda unitnum
|
||||
lsr turn unit number into an index
|
||||
lsr
|
||||
@ -220,13 +220,13 @@ L4F21 stx statparms set # of parms.
|
||||
lda spvecthi-1,x
|
||||
sta sp_vector+2
|
||||
ldx #$04 copy buffer pointer and block #
|
||||
L4F3F lda buf-1,x from prodos parameters
|
||||
L4F3F lda buf-1,x from prodos parameters
|
||||
sta sp_bufptr-1,x to smartport parameter block
|
||||
dex
|
||||
bne L4F3F
|
||||
sp_vector .EQ *-ofsX smartport call
|
||||
sp_vector .EQ *-ofsX smartport call
|
||||
jsr $0000 (entry address gets modified)
|
||||
cmdnum .EQ *-ofsX
|
||||
cmdnum .EQ *-ofsX
|
||||
.HS 00 command #
|
||||
.DA statparms
|
||||
bcs L4F6E
|
||||
@ -239,294 +239,293 @@ cmdnum .EQ *-ofsX
|
||||
bne L4F65 yes, check for write protected.
|
||||
lda #$2F return offline error.
|
||||
bra L4F6D
|
||||
L4F65 and #$44 mask all but write allowed and write
|
||||
L4F65 and #$44 mask all but write allowed and write
|
||||
eor #$40 protected bits. if allowed and not
|
||||
beq L4F6E protected, exit with carry clear
|
||||
lda #$2B else return write protected error.
|
||||
L4F6D sec
|
||||
L4F6E rts
|
||||
spvectlo .EQ *-ofsX storage for low byte of smartport
|
||||
.HS 0000000000000000 entry.
|
||||
.HS 00000000000000
|
||||
spvecthi .EQ *-ofsX storage for high byte of smartport
|
||||
.HS 0000000000000000 entry.
|
||||
.HS 00000000000000
|
||||
statparms .EQ *-ofsX # of parms (always 3 except format)
|
||||
.HS 03
|
||||
sp_unitnum .EQ *-ofsX
|
||||
.HS 00 unit number
|
||||
sp_bufptr .EQ *-ofsX
|
||||
.HS 0000 data buffer
|
||||
L4F6D sec
|
||||
L4F6E rts
|
||||
spvectlo .EQ *-ofsX storage for low byte of smartport
|
||||
.HS 0000000000000000 entry.
|
||||
.HS 00000000000000
|
||||
spvecthi .EQ *-ofsX storage for high byte of smartport
|
||||
.HS 0000000000000000 entry.
|
||||
.HS 00000000000000
|
||||
statparms .EQ *-ofsX # of parms (always 3 except format)
|
||||
.HS 03
|
||||
sp_unitnum .EQ *-ofsX
|
||||
.HS 00 unit number
|
||||
sp_bufptr .EQ *-ofsX
|
||||
.HS 0000 data buffer
|
||||
.HS 000000 block number (3 bytes)
|
||||
|
||||
* data tables
|
||||
|
||||
scnums .EQ *-ofsX table of valid mli command numbers.
|
||||
.HS D3000000
|
||||
.HS 40410000808182
|
||||
.HS 65C0C1C2C3C4C5C6
|
||||
.HS C7C8C9CACBCCCDCE
|
||||
.HS CF00D0D1D2
|
||||
pcntbl .EQ *-ofsX parameter counts for the calls
|
||||
.HS 02FFFF
|
||||
.HS FF0201FFFF030300
|
||||
.HS 04070102070A0201
|
||||
.HS 0103030404010102
|
||||
.HS 02FF020202
|
||||
scnums .EQ *-ofsX table of valid mli command numbers.
|
||||
.HS D3000000
|
||||
.HS 40410000808182
|
||||
.HS 65C0C1C2C3C4C5C6
|
||||
.HS C7C8C9CACBCCCDCE
|
||||
.HS CF00D0D1D2
|
||||
pcntbl .EQ *-ofsX parameter counts for the calls
|
||||
.HS 02FFFF
|
||||
.HS FF0201FFFF030300
|
||||
.HS 04070102070A0201
|
||||
.HS 0103030404010102
|
||||
.HS 02FF020202
|
||||
|
||||
* command table
|
||||
|
||||
cmdtable .EQ *-ofsX
|
||||
.DA create create
|
||||
.DA destroy destroy
|
||||
.DA rename rename
|
||||
.DA setinfo setinfo
|
||||
.DA getinfo getinfo
|
||||
.DA online online
|
||||
.DA setprefx set prefix
|
||||
.DA getprefx get prefix
|
||||
.DA openf open
|
||||
.DA newline newline
|
||||
.DA readf read
|
||||
.DA writef write
|
||||
.DA closef close
|
||||
.DA flushf flush
|
||||
.DA setmark set mark
|
||||
.DA getmark get mark
|
||||
.DA seteof seteof
|
||||
.DA geteof geteof
|
||||
.DA setbuf setbuf
|
||||
.DA getbuf getbuf
|
||||
cmdtable .EQ *-ofsX
|
||||
.DA create create
|
||||
.DA destroy destroy
|
||||
.DA rename rename
|
||||
.DA setinfo setinfo
|
||||
.DA getinfo getinfo
|
||||
.DA online online
|
||||
.DA setprefx set prefix
|
||||
.DA getprefx get prefix
|
||||
.DA openf open
|
||||
.DA newline newline
|
||||
.DA readf read
|
||||
.DA writef write
|
||||
.DA closef close
|
||||
.DA flushf flush
|
||||
.DA setmark set mark
|
||||
.DA getmark get mark
|
||||
.DA seteof seteof
|
||||
.DA geteof geteof
|
||||
.DA setbuf setbuf
|
||||
.DA getbuf getbuf
|
||||
|
||||
* corresponding command function bytes
|
||||
|
||||
disptch .EQ *-ofsX
|
||||
.HS A0A1A2A3
|
||||
.HS 84050607
|
||||
disptch .EQ *-ofsX
|
||||
.HS A0A1A2A3
|
||||
.HS 84050607
|
||||
.HS 88494A4B
|
||||
.HS 2C2D4E4F
|
||||
.HS 50515253
|
||||
.HS 2C2D4E4F
|
||||
.HS 50515253
|
||||
|
||||
dinctbl .EQ *-ofsX table to increment
|
||||
.HS 0100000200 directory usage/eof counts
|
||||
pass .EQ *-ofsX
|
||||
.HS 75
|
||||
xdosver .EQ *-ofsX
|
||||
.HS 00
|
||||
compat .EQ *-ofsX
|
||||
dinctbl .EQ *-ofsX table to increment
|
||||
.HS 0100000200 directory usage/eof counts
|
||||
pass .EQ *-ofsX
|
||||
.HS 75
|
||||
xdosver .EQ *-ofsX
|
||||
.HS 00
|
||||
compat .EQ *-ofsX
|
||||
.HS 00
|
||||
.HS C3270D000000
|
||||
rootstuf .EQ *-ofsX
|
||||
.HS 0F02000400000800
|
||||
whichbit .EQ *-ofsX
|
||||
.HS 8040201008040201
|
||||
ofcbtbl .EQ *-ofsX
|
||||
.HS 0C0D1819151617
|
||||
inftabl .EQ *-ofsX
|
||||
.HS 1E101F2080939421
|
||||
.HS 22232418191A1B
|
||||
deathmsg .EQ *-ofsX
|
||||
.HS 20
|
||||
|
||||
.AS 'RESTART SYSTEM-$01'
|
||||
.HS 20
|
||||
rootstuf .EQ *-ofsX
|
||||
.HS 0F02000400000800
|
||||
whichbit .EQ *-ofsX
|
||||
.HS 8040201008040201
|
||||
ofcbtbl .EQ *-ofsX
|
||||
.HS 0C0D1819151617
|
||||
inftabl .EQ *-ofsX
|
||||
.HS 1E101F2080939421
|
||||
.HS 22232418191A1B
|
||||
deathmsg .EQ *-ofsX
|
||||
.HS 20
|
||||
.AS -"RESTART SYSTEM-$01"
|
||||
.HS 20
|
||||
|
||||
*** work space ***
|
||||
|
||||
* note: this area is accessed by code that depends on the order of these
|
||||
* variables in the file control block and temporary directory.
|
||||
|
||||
own_blk .EQ *-ofsX
|
||||
.HS 0000
|
||||
own_ent .EQ *-ofsX
|
||||
.HS 00
|
||||
own_len .EQ *-ofsX
|
||||
.HS 00
|
||||
h_credt .EQ *-ofsX
|
||||
.HS 0000 directory creation date
|
||||
.HS 0000 directory creation time
|
||||
.HS 00 version under which this dir created
|
||||
.HS 00 earliest version that it's compatible
|
||||
h_attr .EQ *-ofsX attributes (protect bit, etc.)
|
||||
.HS 00
|
||||
h_entln .EQ *-ofsX length of each entry in this directory
|
||||
.HS 00
|
||||
h_maxent .EQ *-ofsX maximum number of entries per block
|
||||
.HS 00
|
||||
h_fcnt .EQ *-ofsX current # of files in this directory
|
||||
.HS 0000
|
||||
h_bmap .EQ *-ofsX address of first allocation bitmap
|
||||
.HS 0000
|
||||
h_tblk .EQ *-ofsX total number of blocks on this unit
|
||||
.HS 0000
|
||||
d_dev .EQ *-ofsX device number of this directory entry
|
||||
.HS 00
|
||||
d_head .EQ *-ofsX address of <sub> directory header
|
||||
.HS 0000
|
||||
d_entblk .EQ *-ofsX address of block which contains entry
|
||||
.HS 0000
|
||||
d_entnum .EQ *-ofsX entry number within block
|
||||
.HS 00
|
||||
d_stor .EQ *-ofsX
|
||||
.HS 0000000000000000 file name
|
||||
.HS 0000000000000000
|
||||
d_filid .EQ *-ofsX user's identification byte
|
||||
.HS 00
|
||||
d_frst .EQ *-ofsX first block of file
|
||||
.HS 0000
|
||||
d_usage .EQ *-ofsX # of blocks allocated to this file
|
||||
.HS 0000
|
||||
d_eof .EQ *-ofsX current end of file marker
|
||||
.HS 000000
|
||||
d_credt .EQ *-ofsX
|
||||
.HS 0000 file creation date
|
||||
.HS 0000 file creation time
|
||||
d_sosver .EQ *-ofsX sos version that created this file
|
||||
.HS 00
|
||||
d_comp .EQ *-ofsX backward version compatibility
|
||||
.HS 00
|
||||
d_attr .EQ *-ofsX attributes (protect, r/w, enable, etc.)
|
||||
.HS 00
|
||||
d_auxid .EQ *-ofsX user auxilliary identification
|
||||
.HS 0000
|
||||
d_moddt .EQ *-ofsX
|
||||
.HS 0000 file's last modification date
|
||||
.HS 0000 file's last modification time
|
||||
d_dhdr .EQ *-ofsX file directory header block address
|
||||
.HS 0000
|
||||
scrtch .EQ *-ofsX scratch area for
|
||||
.DA #00000000 allocation address conversion.
|
||||
oldeof .EQ *-ofsX temp used in r/w
|
||||
.HS 000000
|
||||
oldmark .EQ *-ofsX
|
||||
.DA #000000
|
||||
xvcbptr .EQ *-ofsX used in 'cmpvcb' as a temp
|
||||
.HS 00
|
||||
vcbptr .EQ *-ofsX
|
||||
.HS 00
|
||||
fcbptr .EQ *-ofsX
|
||||
.HS 00
|
||||
fcbflg .EQ *-ofsX
|
||||
.HS 00
|
||||
reql .EQ *-ofsX
|
||||
.HS 00
|
||||
reqh .EQ *-ofsX
|
||||
.HS 00
|
||||
levels .EQ *-ofsX
|
||||
.HS 00
|
||||
totent .EQ *-ofsX
|
||||
.HS 00
|
||||
entcntl .EQ *-ofsX
|
||||
.HS 00
|
||||
entcnth .EQ *-ofsX
|
||||
.HS 00
|
||||
cntent .EQ *-ofsX
|
||||
.HS 00
|
||||
nofree .EQ *-ofsX
|
||||
.HS 00
|
||||
bmcnt .EQ *-ofsX
|
||||
.HS 00
|
||||
saptr .EQ *-ofsX
|
||||
.HS 00
|
||||
pathcnt .EQ *-ofsX
|
||||
.HS 00
|
||||
p_dev .EQ *-ofsX
|
||||
.HS 00
|
||||
p_blok .EQ *-ofsX
|
||||
.HS 0000
|
||||
bmptr .EQ *-ofsX
|
||||
.HS 00
|
||||
basval .EQ *-ofsX
|
||||
.HS 00
|
||||
half .EQ *-ofsX
|
||||
.HS 00
|
||||
own_blk .EQ *-ofsX
|
||||
.HS 0000
|
||||
own_ent .EQ *-ofsX
|
||||
.HS 00
|
||||
own_len .EQ *-ofsX
|
||||
.HS 00
|
||||
h_credt .EQ *-ofsX
|
||||
.HS 0000 directory creation date
|
||||
.HS 0000 directory creation time
|
||||
.HS 00 version under which this dir created
|
||||
.HS 00 earliest version that it's compatible
|
||||
h_attr .EQ *-ofsX attributes (protect bit, etc.)
|
||||
.HS 00
|
||||
h_entln .EQ *-ofsX length of each entry in this directory
|
||||
.HS 00
|
||||
h_maxent .EQ *-ofsX maximum number of entries per block
|
||||
.HS 00
|
||||
h_fcnt .EQ *-ofsX current # of files in this directory
|
||||
.HS 0000
|
||||
h_bmap .EQ *-ofsX address of first allocation bitmap
|
||||
.HS 0000
|
||||
h_tblk .EQ *-ofsX total number of blocks on this unit
|
||||
.HS 0000
|
||||
d_dev .EQ *-ofsX device number of this directory entry
|
||||
.HS 00
|
||||
d_head .EQ *-ofsX address of <sub> directory header
|
||||
.HS 0000
|
||||
d_entblk .EQ *-ofsX address of block which contains entry
|
||||
.HS 0000
|
||||
d_entnum .EQ *-ofsX entry number within block
|
||||
.HS 00
|
||||
d_stor .EQ *-ofsX
|
||||
.HS 0000000000000000 file name
|
||||
.HS 0000000000000000
|
||||
d_filid .EQ *-ofsX user's identification byte
|
||||
.HS 00
|
||||
d_frst .EQ *-ofsX first block of file
|
||||
.HS 0000
|
||||
d_usage .EQ *-ofsX # of blocks allocated to this file
|
||||
.HS 0000
|
||||
d_eof .EQ *-ofsX current end of file marker
|
||||
.HS 000000
|
||||
d_credt .EQ *-ofsX
|
||||
.HS 0000 file creation date
|
||||
.HS 0000 file creation time
|
||||
d_sosver .EQ *-ofsX sos version that created this file
|
||||
.HS 00
|
||||
d_comp .EQ *-ofsX backward version compatibility
|
||||
.HS 00
|
||||
d_attr .EQ *-ofsX attributes (protect, r/w, enable, etc.)
|
||||
.HS 00
|
||||
d_auxid .EQ *-ofsX user auxilliary identification
|
||||
.HS 0000
|
||||
d_moddt .EQ *-ofsX
|
||||
.HS 0000 file's last modification date
|
||||
.HS 0000 file's last modification time
|
||||
d_dhdr .EQ *-ofsX file directory header block address
|
||||
.HS 0000
|
||||
scrtch .EQ *-ofsX scratch area for
|
||||
.HS 00000000 allocation address conversion.
|
||||
oldeof .EQ *-ofsX temp used in r/w
|
||||
.HS 000000
|
||||
oldmark .EQ *-ofsX
|
||||
.HS 000000
|
||||
xvcbptr .EQ *-ofsX used in 'cmpvcb' as a temp
|
||||
.HS 00
|
||||
vcbptr .EQ *-ofsX
|
||||
.HS 00
|
||||
fcbptr .EQ *-ofsX
|
||||
.HS 00
|
||||
fcbflg .EQ *-ofsX
|
||||
.HS 00
|
||||
reql .EQ *-ofsX
|
||||
.HS 00
|
||||
reqh .EQ *-ofsX
|
||||
.HS 00
|
||||
levels .EQ *-ofsX
|
||||
.HS 00
|
||||
totent .EQ *-ofsX
|
||||
.HS 00
|
||||
entcntl .EQ *-ofsX
|
||||
.HS 00
|
||||
entcnth .EQ *-ofsX
|
||||
.HS 00
|
||||
cntent .EQ *-ofsX
|
||||
.HS 00
|
||||
nofree .EQ *-ofsX
|
||||
.HS 00
|
||||
bmcnt .EQ *-ofsX
|
||||
.HS 00
|
||||
saptr .EQ *-ofsX
|
||||
.HS 00
|
||||
pathcnt .EQ *-ofsX
|
||||
.HS 00
|
||||
p_dev .EQ *-ofsX
|
||||
.HS 00
|
||||
p_blok .EQ *-ofsX
|
||||
.HS 0000
|
||||
bmptr .EQ *-ofsX
|
||||
.HS 00
|
||||
basval .EQ *-ofsX
|
||||
.HS 00
|
||||
half .EQ *-ofsX
|
||||
.HS 00
|
||||
|
||||
* bitmap info tables
|
||||
|
||||
bmastat .EQ *-ofsX
|
||||
.HS 00
|
||||
bmadev .EQ *-ofsX
|
||||
.HS 00
|
||||
bmadadr .EQ *-ofsX
|
||||
.HS 0000
|
||||
bmacmap .EQ *-ofsX
|
||||
.HS 00
|
||||
tposll .EQ *-ofsX
|
||||
.HS 00
|
||||
tposlh .EQ *-ofsX
|
||||
.HS 00
|
||||
tposhi .EQ *-ofsX
|
||||
.HS 00
|
||||
rwreql .EQ *-ofsX
|
||||
.HS 00
|
||||
rwreqh .EQ *-ofsX
|
||||
.HS 00
|
||||
nlchar .EQ *-ofsX
|
||||
.HS 00
|
||||
nlmask .EQ *-ofsX
|
||||
.HS 00
|
||||
ioaccess .EQ *-ofsX has a call been made to
|
||||
.HS 00 disk device handler ?
|
||||
cmdtemp .EQ *-ofsX
|
||||
.HS 00
|
||||
bkbitflg .EQ *-ofsX used to set or clear backup bit
|
||||
.HS 00
|
||||
duplflag .EQ *-ofsX
|
||||
.HS 00
|
||||
vcbentry .EQ *-ofsX
|
||||
.HS 00
|
||||
bmastat .EQ *-ofsX
|
||||
.HS 00
|
||||
bmadev .EQ *-ofsX
|
||||
.HS 00
|
||||
bmadadr .EQ *-ofsX
|
||||
.HS 0000
|
||||
bmacmap .EQ *-ofsX
|
||||
.HS 00
|
||||
tposll .EQ *-ofsX
|
||||
.HS 00
|
||||
tposlh .EQ *-ofsX
|
||||
.HS 00
|
||||
tposhi .EQ *-ofsX
|
||||
.HS 00
|
||||
rwreql .EQ *-ofsX
|
||||
.HS 00
|
||||
rwreqh .EQ *-ofsX
|
||||
.HS 00
|
||||
nlchar .EQ *-ofsX
|
||||
.HS 00
|
||||
nlmask .EQ *-ofsX
|
||||
.HS 00
|
||||
ioaccess .EQ *-ofsX has a call been made to
|
||||
.HS 00 disk device handler ?
|
||||
cmdtemp .EQ *-ofsX
|
||||
.HS 00
|
||||
bkbitflg .EQ *-ofsX used to set or clear backup bit
|
||||
.HS 00
|
||||
duplflag .EQ *-ofsX
|
||||
.HS 00
|
||||
vcbentry .EQ *-ofsX
|
||||
.HS 00
|
||||
|
||||
* xdos temporary variables
|
||||
|
||||
namcnt .EQ *-ofsX
|
||||
.HS 00
|
||||
rnptr .EQ *-ofsX
|
||||
.HS 00
|
||||
namptr .EQ *-ofsX
|
||||
.HS 00
|
||||
vnptr .EQ *-ofsX
|
||||
.HS 00
|
||||
prfxflg .EQ *-ofsX
|
||||
.HS 00
|
||||
cferr .EQ *-ofsX
|
||||
.HS 00
|
||||
namcnt .EQ *-ofsX
|
||||
.HS 00
|
||||
rnptr .EQ *-ofsX
|
||||
.HS 00
|
||||
namptr .EQ *-ofsX
|
||||
.HS 00
|
||||
vnptr .EQ *-ofsX
|
||||
.HS 00
|
||||
prfxflg .EQ *-ofsX
|
||||
.HS 00
|
||||
cferr .EQ *-ofsX
|
||||
.HS 00
|
||||
|
||||
* deallocation temporary variables
|
||||
|
||||
firstbl .EQ *-ofsX
|
||||
.HS 00
|
||||
firstbh .EQ *-ofsX
|
||||
.HS 00
|
||||
stortyp .EQ *-ofsX
|
||||
.HS 00
|
||||
deblock .EQ *-ofsX
|
||||
.HS 0000
|
||||
dtree .EQ *-ofsX
|
||||
.HS 00
|
||||
dsap .EQ *-ofsX
|
||||
.HS 00
|
||||
dseed .EQ *-ofsX
|
||||
.HS 0000
|
||||
topdest .EQ *-ofsX
|
||||
.HS 00
|
||||
dtmpx .EQ *-ofsX
|
||||
.HS 00
|
||||
loklst .EQ *-ofsX look list of recognized device numbers
|
||||
dealbufl .EQ *-ofsX
|
||||
firstbl .EQ *-ofsX
|
||||
.HS 00
|
||||
firstbh .EQ *-ofsX
|
||||
.HS 00
|
||||
stortyp .EQ *-ofsX
|
||||
.HS 00
|
||||
deblock .EQ *-ofsX
|
||||
.HS 0000
|
||||
dtree .EQ *-ofsX
|
||||
.HS 00
|
||||
dsap .EQ *-ofsX
|
||||
.HS 00
|
||||
dseed .EQ *-ofsX
|
||||
.HS 0000
|
||||
topdest .EQ *-ofsX
|
||||
.HS 00
|
||||
dtmpx .EQ *-ofsX
|
||||
.HS 00
|
||||
loklst .EQ *-ofsX look list of recognized device numbers
|
||||
dealbufl .EQ *-ofsX
|
||||
.HS 0000000000000000
|
||||
dealbufh .EQ *-ofsX
|
||||
.HS 0000000000000000
|
||||
cbytes .EQ *-ofsX
|
||||
.HS 0000
|
||||
.HS 00 cbytes+2 must = 0
|
||||
bufaddrl .EQ *-ofsX
|
||||
.HS 00
|
||||
bufaddrh .EQ *-ofsX
|
||||
.HS 00
|
||||
goadr .EQ *-ofsX
|
||||
.HS 0000
|
||||
delflag .EQ *-ofsX used by 'detree' to know if called
|
||||
.HS 00 from delete (destroy).
|
||||
dealbufh .EQ *-ofsX
|
||||
.HS 0000000000000000
|
||||
cbytes .EQ *-ofsX
|
||||
.HS 0000
|
||||
.HS 00 cbytes+2 must = 0
|
||||
bufaddrl .EQ *-ofsX
|
||||
.HS 00
|
||||
bufaddrh .EQ *-ofsX
|
||||
.HS 00
|
||||
goadr .EQ *-ofsX
|
||||
.HS 0000
|
||||
delflag .EQ *-ofsX used by 'detree' to know if called
|
||||
.HS 00 from delete (destroy).
|
||||
|
||||
* zero fill to page boundary - 3 ($FEFD). so that cortland flag stays
|
||||
* within page boundary.
|
||||
@ -535,8 +534,8 @@ delflag .EQ *-ofsX used by 'detree' to know if called
|
||||
.HS 0000000000
|
||||
|
||||
.DA calldisp
|
||||
cortflag .EQ *-ofsX cortland flag. 1 = Cortland system
|
||||
.HS 00 (must stay within page boundary)
|
||||
cortflag .EQ *-ofsX cortland flag. 1 = Cortland system
|
||||
.HS 00 (must stay within page boundary)
|
||||
|
||||
* end of obj mli_2
|
||||
*--------------------------------------
|
||||
|
@ -20,6 +20,25 @@ MMShutDown .EQ $0303
|
||||
ReadTimeHex .EQ $0D03
|
||||
Int2Hex .EQ $220B
|
||||
TLTextMountVolume .EQ $1201
|
||||
*--------------------------------------
|
||||
.MA SHORTMX
|
||||
sep #$30
|
||||
.EM
|
||||
.MA SHORTM
|
||||
sep #$20
|
||||
.EM
|
||||
.MA SHORTX
|
||||
sep #$10
|
||||
.EM
|
||||
.MA LONGMX
|
||||
rep #$30
|
||||
.EM
|
||||
.MA LONGM
|
||||
rep #$20
|
||||
.EM
|
||||
.MA LONGX
|
||||
rep #$10
|
||||
.EM
|
||||
*--------------------------------------
|
||||
.MA IIGS
|
||||
ldx ##]1
|
||||
|
Loading…
Reference in New Issue
Block a user