mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-07 13:29:56 +00:00
Kernel 0.93+
This commit is contained in:
parent
a35dde3f8d
commit
5d0ce8f1e4
Binary file not shown.
10
INC/IO.I.txt
10
INC/IO.I.txt
@ -16,8 +16,8 @@ CLRCXROM .EQ $C006 W
|
||||
SETCXROM .EQ $C007 W
|
||||
CLRALTZP .EQ $C008 W
|
||||
SETALTZP .EQ $C009 W
|
||||
*CLRC3ROM .EQ $C00A W
|
||||
*SETC3ROM .EQ $C00B W
|
||||
CLRC3ROM .EQ $C00A W
|
||||
SETC3ROM .EQ $C00B W
|
||||
CLR80DISP .EQ $C00C W
|
||||
SET80DISP .EQ $C00D W
|
||||
CLRALTCHAR .EQ $C00E W
|
||||
@ -39,6 +39,7 @@ RDHIRES .EQ $C01D R
|
||||
RDALTCHAR .EQ $C01E R
|
||||
RD80DISP .EQ $C01F R
|
||||
*TAPEOUT .EQ $C020 W
|
||||
newvideo .EQ $C029 video mode select
|
||||
SPEAKER .EQ $C030 W, toggle speaker diaphragm
|
||||
*STROBE .EQ $C040 R, generate .5 uS low pulse @ Game pin 5
|
||||
*RDVBLIIC .EQ $C05A R, VBL switch Status (IIc)
|
||||
@ -78,6 +79,7 @@ SOLIDAPPLE .EQ $C062 R
|
||||
*PADDLE1 .EQ $C065 R, bit 7 = status of pdl-1 timer
|
||||
*PADDLE2 .EQ $C066 R, bit 7 = status of pdl-2 timer
|
||||
*PADDLE3 .EQ $C067 R, bit 7 = status of pdl-3 timer
|
||||
statereg .EQ $C068 memory state register
|
||||
*PDLTRIG .EQ $C070 W, trigger paddles
|
||||
|
||||
SETIOUDIS .EQ $C07E W, enable DHIRES & disable $C058-5F
|
||||
@ -85,7 +87,7 @@ RDIOUDIS .EQ $C07E R, bit 7 = IOUDIS status
|
||||
CLRIOUDIS .EQ $C07F W, disable DHIRES & enable $C058-5F
|
||||
*--------------------------------------
|
||||
*RRAMBNK2 .EQ $C080 R
|
||||
*RROMWRAMBNK2 .EQ $C081 RR
|
||||
RROMWRAMBNK2 .EQ $C081 RR
|
||||
RROMBNK2 .EQ $C082 R
|
||||
RRAMWRAMBNK2 .EQ $C083 RR
|
||||
*RRAMBNK1 .EQ $C088 R
|
||||
@ -93,6 +95,6 @@ RRAMWRAMBNK2 .EQ $C083 RR
|
||||
RROMBNK1 .EQ $C08A R
|
||||
RRAMWRAMBNK1 .EQ $C08B RR
|
||||
*--------------------------------------
|
||||
*CLRC8ROM .EQ $CFFF R, Release C800-CFFF Rom Space for all cards
|
||||
CLRC8ROM .EQ $CFFF R, Release C800-CFFF Rom Space for all cards
|
||||
MAN
|
||||
SAVE INC/IO.I
|
||||
|
@ -27,13 +27,18 @@ 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
|
||||
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
|
||||
INIT .EQ $FB2F INITIALIZE TEXT SCREEN
|
||||
SETTXT .EQ $FB93 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
|
||||
BASCALC .EQ $FBC1 CALCULATE TEXT BASE ADDRESS (NOT 2E!}
|
||||
BELL1 .EQ $FBD9 BEEP SPEAKER IF CTRL-G
|
||||
BELL2 .EQ $FBE4 BEEP SPEAKER ONCE
|
||||
@ -49,7 +54,7 @@ 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
|
||||
CLEOL .EQ $FC9C CLEAR TEXT TO END OF LINE
|
||||
CLREOL .EQ $FC9C CLEAR TEXT TO END OF LINE
|
||||
WAIT .EQ $FCA8 TIME DELAY SET BY ACCUMULATOR
|
||||
RDKEY .EQ $FD0C GET INPUT CHARACTER VIA HOOKS
|
||||
KEYIN .EQ $FD1B READ THE APPLE KEYBOARD
|
||||
@ -64,12 +69,14 @@ PRBYTE .EQ $FDDA OUTPUT FULL A IN HEX TO HOOKS
|
||||
PRHEX .EQ $FDE3 OUTPUT LOW A IN HEX TO HOOKS
|
||||
COUT .EQ $FDED OUTPUT CHARACTER VIA HOOKS
|
||||
COUTl .EQ $FDF0 OUTPUT CHARACTER TO SCREEN
|
||||
idroutine .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
|
||||
SETINV .EQ $FE80 PRINT INVERSE TEXT TO SCREEN
|
||||
SETNORM .EQ $FE84 PRINT NORMAL TEXT TO SCREEN
|
||||
SETKBD .EQ $FE93 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
|
||||
|
@ -712,7 +712,7 @@ wrefa2 .EQ *-ofsD
|
||||
beq L58C0 (2+) branch if code written was page aligned.
|
||||
lda A2H (3) get byte address of last byte to be written.
|
||||
beq L58B3 (2+) branch if only 1 byte left to write.
|
||||
lsr (2) test for odd or even last byte (carry set/clear)
|
||||
lsr (2) test for odd or even last byte (carry set/clear)
|
||||
lda pch (3) restore nibl to acc.
|
||||
sta q6h,x (5)
|
||||
lda q6l,x (4)
|
||||
|
@ -3,7 +3,7 @@ NEW
|
||||
* object code = mli_1
|
||||
* global page
|
||||
|
||||
ofsG .EQ H2E00-MLI offset to global org
|
||||
ofsG .EQ $E00-MLI offset to global org
|
||||
|
||||
H2E00 jmp mlient1 $2E00-2EFF moved to $BF00
|
||||
jspare .EQ *-ofsG
|
||||
@ -16,7 +16,7 @@ p8errv .EQ *-ofsG error reporting hook.
|
||||
sysdeath .EQ *-ofsG
|
||||
jmp sysdeath1 system failure hook.
|
||||
p8error .EQ *-ofsG P8 error code
|
||||
.DA #0
|
||||
.DA #0
|
||||
drivertbl1 .EQ *-ofsG device driver table 1
|
||||
.DA nodevice
|
||||
.DA nodevice
|
||||
@ -35,7 +35,7 @@ drivertbl2 .EQ *-ofsG device driver table 2
|
||||
.DA nodevice
|
||||
.DA nodevice
|
||||
.DA nodevice
|
||||
devnum .EQ *-ofsG most recent accessed device
|
||||
*devnum .EQ *-ofsG most recent accessed device
|
||||
.DA #0
|
||||
numdevs .EQ *-ofsG count (-1) active devices
|
||||
.DA #$ff
|
||||
@ -50,7 +50,7 @@ mlient1 .EQ *-ofsG
|
||||
sei
|
||||
jmp mlicont
|
||||
aftirq .EQ *-ofsG irq returns here.
|
||||
sta ramin read/write RAM bank 1
|
||||
sta RRAMWRAMBNK1 read/write RAM bank 1
|
||||
jmp fix45 restore $45 after interrupt in LC
|
||||
oldacc .EQ *-ofsG
|
||||
.DA #0
|
||||
@ -114,7 +114,7 @@ spare1 .EQ *-ofsG used to save acc
|
||||
.DA #0
|
||||
newpfxptr .EQ *-ofsG appletalk alternate prefix ptr
|
||||
.DA #0
|
||||
machid .EQ *-ofsG machine ID byte
|
||||
*machid .EQ *-ofsG machine ID byte
|
||||
.DA #0
|
||||
rommap .EQ *-ofsG slot ROM bit map
|
||||
.DA #0
|
||||
@ -133,14 +133,14 @@ mliy .EQ *-ofsG MLI Y register savearea
|
||||
* workstation software patches this area
|
||||
|
||||
HBFA0 .EQ *-ofsG
|
||||
eor $E000 test for rom enable
|
||||
GP.HBFA0 eor $E000 test for rom enable
|
||||
beq .1 taken if ram enabled
|
||||
sta romin read ROM
|
||||
sta RROMBNK2 read ROM
|
||||
bne .2 always
|
||||
.1 lda bnkbyt2 for alternate ram
|
||||
eor $D000 test
|
||||
beq .2 branch if not alternate ram
|
||||
lda altram else enable alt $D000
|
||||
lda RRAMWRAMBNK2 else enable alt $D000
|
||||
.2 pla return code
|
||||
rti re-enable interrupts and return
|
||||
|
||||
@ -151,32 +151,32 @@ mlicont .EQ *-ofsG
|
||||
sta bnkbyt1 for proper restoration when mli exits.
|
||||
lda $D000
|
||||
sta bnkbyt2
|
||||
lda ramin force ram card on
|
||||
lda ramin with write allowed
|
||||
lda RRAMWRAMBNK1 force ram card on
|
||||
lda RRAMWRAMBNK1 with write allowed
|
||||
jmp xdosmli
|
||||
|
||||
irqexit .EQ *-ofsG
|
||||
lda bankid determine state of ram card (ROM/RAM)
|
||||
|
||||
irqxit0 .EQ *-ofsG
|
||||
beq .2 branch if ram card enabled.
|
||||
GP.irqxit0 beq .2 branch if ram card enabled.
|
||||
bmi .1 branch if alternate $D000 enabled.
|
||||
|
||||
lsr determine if no ram card present.
|
||||
bcc .3 branch if rom only system.
|
||||
|
||||
lda romin1 enable rom
|
||||
lda RROMWRAMBNK2 enable rom
|
||||
bcs .3 always taken
|
||||
|
||||
.1 lda altram enable alternate $D000
|
||||
.2 lda #$01 preset bankid for rom.
|
||||
.1 lda RRAMWRAMBNK2 enable alternate $D000
|
||||
.2 lda #$01 preset bankid for rom.
|
||||
sta bankid (reset if ram card interrupt)
|
||||
.3 lda p8areg restore acc
|
||||
rti exit
|
||||
|
||||
irqent .EQ *-ofsG this entry only used when rom
|
||||
bit ramin was enabled at time of interrupt.
|
||||
bit ramin
|
||||
bit RRAMWRAMBNK1 was enabled at time of interrupt.
|
||||
bit RRAMWRAMBNK1
|
||||
jmp irqrecev
|
||||
|
||||
bnkbyt1 .EQ *-ofsG
|
||||
|
@ -33,7 +33,7 @@ H2DC2 lda /romirq setup ROM re-entry
|
||||
lda #romirq
|
||||
pha
|
||||
gorom .EQ *-ofsR2
|
||||
sta romin hits ROM rts at $FFCB
|
||||
sta RROMBNK2 hits ROM rts at $FFCB
|
||||
|
||||
* 'lreset' address must = $FFCB for rom switch i/o to work
|
||||
|
||||
@ -49,8 +49,8 @@ fix45 .EQ *-ofsR2
|
||||
sta p8areg A register savearea
|
||||
lda oldacc
|
||||
sta accsav
|
||||
lda ramin read/write RAM bank 1
|
||||
lda ramin
|
||||
lda RRAMWRAMBNK1 read/write RAM bank 1
|
||||
lda RRAMWRAMBNK1
|
||||
lda afbank
|
||||
jmp irqxit0
|
||||
stypfx .EQ *-ofsR2 fix appletalk PFI bug
|
||||
|
@ -10,8 +10,10 @@ LDR.MSG.AppleII .AS "Apple II"
|
||||
LDR.MSG.ProDOS .AS "ProDOS 8 V2.0.3 "
|
||||
.AS "06-May-93"
|
||||
H202F .AS " "
|
||||
H203B .AS "Copyright Apple Computer, Inc., 1983-93"
|
||||
H2062 .AS "All Rights Reserved."
|
||||
LDR.MSG.Copyright
|
||||
.AS "Copyright Apple Computer, Inc., 1983-93"
|
||||
LDR.MSG.Reserved
|
||||
.AS "All Rights Reserved."
|
||||
|
||||
p16start inc setuprts set = 2 for GQuit rts
|
||||
atalkset inc setuprts set = 1 for appletalk rts
|
||||
@ -50,7 +52,7 @@ prostart lda unitnum
|
||||
lda kversion
|
||||
bne m48k still not.
|
||||
|
||||
lda romin read ROM
|
||||
lda RROMBNK2 read ROM
|
||||
jsr whchrom get preliminary system config
|
||||
bcs m48k machine too small
|
||||
lda idapple
|
||||
@ -69,7 +71,7 @@ m64k ldx #H2367 yx=2367 relocation table
|
||||
H20CE bcc H20D3
|
||||
jmp relocerr
|
||||
|
||||
H20D3 lda romin read ROM
|
||||
H20D3 lda RROMBNK2 read ROM
|
||||
ldx version ROM id byte
|
||||
cpx #$06
|
||||
bne H211D then it's a //e
|
||||
@ -94,7 +96,7 @@ mach2 inc cflag //c or later
|
||||
set7 ora #$80
|
||||
|
||||
H20FD sta idapple
|
||||
lda romin read ROM
|
||||
lda RROMBNK2 read ROM
|
||||
sec
|
||||
jsr idroutine returns system info
|
||||
bcs H211D branch if // family
|
||||
@ -127,8 +129,8 @@ H2139 bcs H20CE
|
||||
sta jspare+1 P8 system death vector
|
||||
lda /calldisp
|
||||
sta jspare+2
|
||||
lda altram read/write RAM bank 2
|
||||
lda altram
|
||||
lda RRAMWRAMBNK2 read/write RAM bank 2
|
||||
lda RRAMWRAMBNK2
|
||||
ldx #altdsptbl GQuit dispatcher
|
||||
ldy /altdsptbl
|
||||
lda setuprts
|
||||
@ -162,29 +164,29 @@ H216E jsr reloc
|
||||
php save interrupt status
|
||||
pla in acc.
|
||||
sei no interrupts.
|
||||
sta setaltzp use alt zero page/stack
|
||||
sta SETALTZP use alt zero page/stack
|
||||
stx auxsp init aux sp to $FF
|
||||
sta setstdzp use main zero page/stack
|
||||
sta SETALTZP use main zero page/stack
|
||||
pha restore interrupt status
|
||||
plp
|
||||
sta int3rom enable internal slot 3 ROM
|
||||
sta CLRC3ROM enable internal slot 3 ROM
|
||||
jsr H2C80 install ram disk
|
||||
|
||||
* check interrupt vector to determine ROM version
|
||||
|
||||
noramdsk lda romin1 read ROM/write RAM bank 2
|
||||
noramdsk lda RROMWRAMBNK2 read ROM/write RAM bank 2
|
||||
ldy irqv interrupt vector
|
||||
ldx irqv+1 x = high byte
|
||||
jsr lc1in set language card bank 1 to r/w
|
||||
cpx #$D0 is it > $D000 (old roms)
|
||||
lda #$00
|
||||
bcs H21C5 branch if old roms
|
||||
sta setaltzp use alt zero page/stack
|
||||
sta SETALTZP use alt zero page/stack
|
||||
lda #$FF set aux sp = $FF
|
||||
sta auxsp
|
||||
stx irqv+1 interrupt vector
|
||||
sty irqv save irq vector in aux lc
|
||||
sta setstdzp use main zero page/stack
|
||||
sta SETALTZP use main zero page/stack
|
||||
stx irqv+1 save irq vector in main lc
|
||||
sty irqv
|
||||
lda #$01
|
||||
@ -198,26 +200,26 @@ H21C5 sta irqflag 1 = new roms
|
||||
|
||||
* check for a rom in slot 3. if no rom, use internal $C300 firmware
|
||||
|
||||
H21D5 sta int3rom enable internal slot 3 ROM
|
||||
H21D5 sta CLRC3ROM enable internal slot 3 ROM
|
||||
lda rommap slot ROM bit map
|
||||
and #$08 mask all but slot 3
|
||||
bne isromin3 taken if rom in slot 3
|
||||
bne isRROMBNK23 taken if rom in slot 3
|
||||
bra H2247 else continue booting
|
||||
|
||||
* found a rom in slot 3. is it an external, identifiable 80 col card
|
||||
* with interrupt routines? if so, enable it else use internal $C300 firmware.
|
||||
|
||||
isromin3 sta slot3rom enable slot 3 rom
|
||||
lda slot3id1 check card id bytes
|
||||
isRROMBNK23 sta SETC3ROM enable slot 3 rom
|
||||
lda $C305 check card id bytes
|
||||
cmp #$38
|
||||
bne hitswtch not terminal card
|
||||
lda slot3id2
|
||||
lda $C307
|
||||
cmp #$18
|
||||
bne hitswtch
|
||||
lda slot3id3
|
||||
lda $C30B
|
||||
cmp #$01
|
||||
bne hitswtch
|
||||
lda ext80col is it an apple 80 col compatible card?
|
||||
lda $C30C is it an apple 80 col compatible card?
|
||||
and #$F0
|
||||
cmp #$80
|
||||
bne hitswtch if not.
|
||||
@ -229,12 +231,12 @@ isromin3 sta slot3rom enable slot 3 rom
|
||||
cmp #$2C does card have an interrupt handler?
|
||||
beq docard yes
|
||||
|
||||
hitswtch sta int3rom enable internal $C300 firmware
|
||||
hitswtch sta CLRC3ROM enable internal $C300 firmware
|
||||
|
||||
* verify that the card in aux slot is actually present
|
||||
|
||||
sta store80on enable 80-col store
|
||||
sta txtpage2 switch in text page 2
|
||||
sta SET80STORE enable 80-col store
|
||||
sta SETPAGE2 switch in text page 2
|
||||
lda #$EE
|
||||
sta txtp2
|
||||
asl
|
||||
@ -245,8 +247,8 @@ hitswtch sta int3rom enable internal $C300 firmware
|
||||
lsr txtp2
|
||||
cmp txtp2
|
||||
|
||||
H2230 sta txtpage1 main memory
|
||||
sta store80off disable 80-col store
|
||||
H2230 sta CLRPAGE2 main memory
|
||||
sta CLR80STORE disable 80-col store
|
||||
beq docard branch if card is there
|
||||
lda machid machine ID byte
|
||||
and #$FD clear 80-col bit 2 (no card)
|
||||
@ -268,7 +270,7 @@ H2247 lda cortland are we running on a //gs ?
|
||||
|
||||
H225D lda setuprts get setup entry point flag
|
||||
beq H2267 taken if normal boot.
|
||||
lda romin read ROM
|
||||
lda RROMBNK2 read ROM
|
||||
rts return to caller at setup entry point.
|
||||
|
||||
setuprts .DA #$00 0 = normal boot, <>0 = return
|
||||
@ -280,14 +282,14 @@ H2267 jsr MLI online
|
||||
.DA LDR.MLIONLINE.P
|
||||
bcs relocerr
|
||||
|
||||
lda PrefixBuf+1 get volume name length.
|
||||
lda pbuf+1 get volume name length.
|
||||
and #$0F strip devnum
|
||||
beq relocerr
|
||||
|
||||
inc add 1 for leading '/'
|
||||
sta PrefixBuf save prefix length.
|
||||
sta pbuf save prefix length.
|
||||
lda #'/' place leading '/' in prefix buffer
|
||||
sta PrefixBuf+1
|
||||
sta pbuf+1
|
||||
|
||||
jsr MLI set prefix
|
||||
.DA #MLISETPREFIX
|
||||
@ -295,11 +297,11 @@ H2267 jsr MLI online
|
||||
bcs relocerr
|
||||
|
||||
tax =0
|
||||
stx ZP.DstPtr
|
||||
stx dst
|
||||
ldy #$02 read directory into buffer
|
||||
lda /DirBlkBuf
|
||||
|
||||
H228E sta ZP.DstPtr+1
|
||||
H228E sta dst+1
|
||||
sta LDR.MLIREADBLOCK.P+4
|
||||
sty LDR.MLIREADBLOCK.P+5
|
||||
stx LDR.MLIREADBLOCK.P+6
|
||||
@ -310,14 +312,14 @@ H228E sta ZP.DstPtr+1
|
||||
bcs relocerr
|
||||
|
||||
ldy #$03 get next block# from link
|
||||
lda (ZP.DstPtr),y
|
||||
lda (dst),y
|
||||
tax
|
||||
dey
|
||||
ora (ZP.DstPtr),y if both bytes are the same
|
||||
ora (dst),y if both bytes are the same
|
||||
beq H22B7 then no more blocks of directory.
|
||||
lda (ZP.DstPtr),y
|
||||
lda (dst),y
|
||||
tay
|
||||
lda ZP.DstPtr+1
|
||||
lda dst+1
|
||||
clc
|
||||
adc #$02 add $200 to buffer pointer
|
||||
cmp /dbuf+$800 until it points past end of buffer.
|
||||
@ -327,7 +329,7 @@ H22B7 jmp lodintrp jmp to 'licode' (load interpreter)
|
||||
|
||||
* relocation/configuration error
|
||||
|
||||
relocerr sta romin read ROM
|
||||
relocerr sta RROMBNK2 read ROM
|
||||
jsr home
|
||||
|
||||
ldy #$1D
|
||||
@ -354,11 +356,11 @@ LDR.MSG.EnhErr .AS "REQUIRES ENHANCED APPLE IIE OR LATER"
|
||||
|
||||
LDR.MLIONLINE.P .DA #2
|
||||
.DA #$60
|
||||
.DA PrefixBuf+1
|
||||
.DA pbuf+1
|
||||
|
||||
LDR.MLISETPREFIX.P
|
||||
.DA #1
|
||||
.DA PrefixBuf
|
||||
.DA pbuf
|
||||
|
||||
LDR.MLIREADBLOCK.P
|
||||
.DA #3
|
||||
@ -380,24 +382,24 @@ H232B .DA #1 move interpreter loader code
|
||||
.DA #$01
|
||||
.DA lookptr
|
||||
.DA $0002
|
||||
.DA ZP.DstPtr
|
||||
.DA dst
|
||||
.DA #$01 move 128k test to zero page
|
||||
.DA tst128 destination
|
||||
.DA H2622-H25DC length
|
||||
.DA H25DC source
|
||||
.DA #FF done
|
||||
.HS FF done
|
||||
|
||||
dsp64 .DA #$01 move p8 dispatcher code
|
||||
.DA displc2 destination
|
||||
.DA birdbye-disp1obj length (must be <= 3 pages)
|
||||
.DA disp1obj source
|
||||
.DA #FF done
|
||||
.HS FF done
|
||||
|
||||
newquitbl .DA #$01 move Bird's Bye code
|
||||
.DA displc2 dest
|
||||
.DA GQdisp-birdbye length (must be <= 3 pages)
|
||||
.DA birdbye source
|
||||
.DA #FF done
|
||||
.HS FF done
|
||||
|
||||
altdsptbl .DA #$01 move GQuit launcher
|
||||
.DA displc2 destination
|
||||
@ -407,11 +409,11 @@ altdsptbl .DA #$01 move GQuit launcher
|
||||
.DA dispadr to dispadr for gsos
|
||||
.DA $0300 length (must be <= 3 pages)
|
||||
.DA GQdisp source
|
||||
.DA #FF done
|
||||
.HS FF done
|
||||
|
||||
* tables for moving 64k version of mli for execution
|
||||
|
||||
H2367 .DA #$01 relocation table. 1=move src to ZP.DstPtr
|
||||
H2367 .DA #$01 relocation table. 1=move src to dst
|
||||
.DA lanirq destination
|
||||
.DA H2E00-H2D9B length to move
|
||||
.DA H2D9B source
|
||||
@ -430,11 +432,11 @@ H2367 .DA #$01 relocation table. 1=move src to ZP.DstPtr
|
||||
.DA rwts
|
||||
.DA disp1obj-blockio length of disk ii driver
|
||||
.DA blockio
|
||||
.DA #FF done
|
||||
.HS FF done
|
||||
|
||||
* move thunderclock
|
||||
|
||||
rlclk64 .DA #$01 relocation table. 1=move src to ZP.DstPtr
|
||||
rlclk64 .DA #$01 relocation table. 1=move src to dst
|
||||
.DA tclk_in destination
|
||||
.DA tclk_end-tclock_0 length of thunderclock driver
|
||||
.DA tclock_0 source
|
||||
@ -445,15 +447,15 @@ rlclk64 .DA #$01 relocation table. 1=move src to ZP.DstPtr
|
||||
.HS 00
|
||||
.HS C1C1
|
||||
clock64 .DA #$00
|
||||
.DA #FF done
|
||||
.HS FF done
|
||||
|
||||
* move cortland clock
|
||||
|
||||
cortclock .DA #$01 relocation table. 1=move src to ZP.DstPtr
|
||||
cortclock .DA #$01 relocation table. 1=move src to dst
|
||||
.DA tclk_in destination
|
||||
.DA cclk_end-cclock_0 length of cortland clock driver
|
||||
.DA cclock_0 source
|
||||
.DA #FF done
|
||||
.HS FF done
|
||||
|
||||
* load and run appletalk configuration file (atinit) if present
|
||||
* or continue loading and running .system file
|
||||
@ -487,7 +489,7 @@ gfi_ok lda gfi_type
|
||||
.DA #$CC
|
||||
.DA clparm
|
||||
bne H23E2 error
|
||||
lda romin enable ROM
|
||||
lda RROMBNK2 enable ROM
|
||||
jsr sysentry execute ATinit
|
||||
H23DF jmp goloadint execute .system file
|
||||
|
||||
@ -548,7 +550,7 @@ H2453 ldy #$10 check file type.
|
||||
lda (idxl),y
|
||||
beq H2432 if deleted file.
|
||||
and #$0F strip file 'kind'.
|
||||
sta PrefixBuf save length of name.
|
||||
sta pbuf save length of name.
|
||||
cmp #$08 must be at least 'x.system'
|
||||
bcc H2432 else, ignore it.
|
||||
tay compare last 7 chars for '.system'
|
||||
@ -563,10 +565,10 @@ H246C lda (idxl),y
|
||||
ldy #$00
|
||||
H247A iny
|
||||
lda (idxl),y
|
||||
sta PrefixBuf,y
|
||||
sta pbuf,y
|
||||
ora #$80 msb on so can be displayed if error
|
||||
sta iomess+$11,y
|
||||
cpy PrefixBuf
|
||||
cpy pbuf
|
||||
bne H247A
|
||||
lda #$A0 space after name
|
||||
sta iomess+$12,y
|
||||
@ -610,8 +612,8 @@ H24C8 jsr MLI close interpreter file
|
||||
lda kbd else, check for keypress
|
||||
cmp #$9B escape?
|
||||
bne H24DF if not.
|
||||
sta kbdstrobe clear keyboard
|
||||
H24DF lda romin enable ROM
|
||||
sta KBDSTROBE clear keyboard
|
||||
H24DF lda RROMBNK2 enable ROM
|
||||
jmp sysentry go run interpreter
|
||||
cflag .EQ *-ofsL
|
||||
.HS 00 set if a //c.
|
||||
@ -647,7 +649,7 @@ ierlen .EQ *-ofsL
|
||||
.HS 00
|
||||
opparm .EQ *-ofsL parms for open call
|
||||
.HS 03
|
||||
.DA PrefixBuf
|
||||
.DA pbuf
|
||||
.DA iobuf
|
||||
.HS 01
|
||||
efparm .EQ *-ofsL parms for get eof call
|
||||
@ -683,8 +685,8 @@ H257B .DA breakv
|
||||
jmp oldrst ctrl-y vector
|
||||
.HS 004000
|
||||
.DA irqent global page interrupt vector
|
||||
lc1in lda ramin read/write language card RAM bank 1
|
||||
lda ramin
|
||||
lc1in lda RRAMWRAMBNK1 read/write language card RAM bank 1
|
||||
lda RRAMWRAMBNK1
|
||||
rts
|
||||
|
||||
* determine which system model and save in machine id (idapple)
|
||||
@ -699,7 +701,7 @@ whchrom stz idapple assume standard apple //
|
||||
lda #$40
|
||||
cpx #$EA apple //+?
|
||||
bne H25B6 it not, then machine is unknown.
|
||||
ldx HFB1E apple /// in emulation?
|
||||
ldx $FB1E apple /// in emulation?
|
||||
cpx #$AD
|
||||
beq H25BC taken if apple //+.
|
||||
lda #$D0 test again for apple /// emulation
|
||||
@ -708,7 +710,7 @@ whchrom stz idapple assume standard apple //
|
||||
H25B4 sec apple /// emulation is not allowed
|
||||
rts because insufficient memory.
|
||||
H25B6 lda #$02 machine unknown
|
||||
sta (ZP.DstPtr),y
|
||||
sta (dst),y
|
||||
bne H25D9 always.
|
||||
H25BC sta idapple save machine id
|
||||
|
||||
@ -732,8 +734,8 @@ H25D9 jmp tst128 jumps to page 0 routine below
|
||||
H25DC sta idapple H25DC-2621 was moved to location tst128
|
||||
bpl not128 if already determined < 128k
|
||||
lda #$EE
|
||||
sta wrcardram write to aux mem while on main zp
|
||||
sta rdcardram and read aux mem.
|
||||
sta SETWRITEAUX write to aux mem while on main zp
|
||||
sta SETREADAUX and read aux mem.
|
||||
sta dbuf write these locs just to test aux mem
|
||||
sta lodintrp 1k apart from each other.
|
||||
lda dbuf
|
||||
@ -748,8 +750,8 @@ H25DC sta idapple H25DC-2621 was moved to location tst128
|
||||
noaux sec no aux memory available.
|
||||
bcs H2607
|
||||
H2606 clc
|
||||
H2607 sta wrmainram switch back to main memory
|
||||
sta rdmainram
|
||||
H2607 sta CLRWRITEAUX switch back to main memory
|
||||
sta CLRREADAUX
|
||||
bcs not128 if < 128k
|
||||
lda idapple
|
||||
ora #$30 set id = 128k present
|
||||
|
@ -3,9 +3,9 @@ NEW
|
||||
|
||||
* prodos greeting splash screen
|
||||
|
||||
LDR.Splash lda spkr click speaker
|
||||
sta clr80vid disable 80 col hardware
|
||||
sta store80off disable 80 col store
|
||||
LDR.Splash lda SPEAKER click speaker
|
||||
sta CLR80DISP disable 80 col hardware
|
||||
sta CLR80STORE disable 80 col store
|
||||
jsr setnorm set normal text mode
|
||||
jsr init init text screen
|
||||
jsr setvid reset output to screen
|
||||
@ -15,14 +15,14 @@ LDR.Splash lda spkr click speaker
|
||||
|
||||
ldx #$07
|
||||
|
||||
.1 lda H2009,x print title
|
||||
.1 lda LDR.MSG.AppleII,x
|
||||
sta vline10+16,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldx #$1D
|
||||
|
||||
.2 lda H2011,x
|
||||
.2 lda LDR.MSG.ProDOS,x
|
||||
sta vline12+5,x
|
||||
dex
|
||||
bpl .2
|
||||
@ -36,14 +36,14 @@ LDR.Splash lda spkr click speaker
|
||||
|
||||
ldx #$26
|
||||
|
||||
.4 lda H203B,x
|
||||
.4 lda LDR.MSG.Copyright,x
|
||||
sta vline23,x
|
||||
dex
|
||||
bpl .4
|
||||
|
||||
ldx #$13
|
||||
|
||||
.5 lda H2062,x
|
||||
.5 lda LDR.MSG.Reserved,x
|
||||
sta vline24+10,x
|
||||
dex
|
||||
bpl .5
|
||||
@ -55,7 +55,7 @@ LDR.Splash lda spkr click speaker
|
||||
lda #$80
|
||||
trb newvideo video mode select
|
||||
|
||||
.8 lda spkr click speaker
|
||||
.8 lda SPEAKER click speaker
|
||||
rts
|
||||
|
||||
* find all disk devices in system slots and set up address
|
||||
@ -68,8 +68,8 @@ driveradr .DA 0
|
||||
d2idx .DA #0
|
||||
diskins2 .DA #0 msb clear if drive in slot 2
|
||||
|
||||
devsrch stz ZP.DstPtr
|
||||
stz ZP.DstPtr+1
|
||||
devsrch stz dst
|
||||
stz dst+1
|
||||
stz idxl
|
||||
ldx #$FF init to no active devices.
|
||||
stx numdevs count (-1) active devices.
|
||||
@ -241,7 +241,7 @@ H27BA ldy #$05
|
||||
bne H27E4
|
||||
ldy #$0B
|
||||
lda (idxl),y
|
||||
dec a must = 1
|
||||
dec must = 1
|
||||
bne H27E4
|
||||
iny
|
||||
lda (idxl),y
|
||||
@ -417,7 +417,7 @@ H28E8 lda (idxl),y
|
||||
|
||||
* check unknown card to see if disk id = $Cn00:nn 20 nn 00 nn 03
|
||||
|
||||
cmpid lda clrrom switch out $C8 ROMs
|
||||
cmpid lda CLRC8ROM switch out $C8 ROMs
|
||||
ldy #$05
|
||||
H28F6 lda (idxl),y compare id bytes
|
||||
cmp dskid,y
|
||||
@ -543,7 +543,7 @@ H2994 lda idxl+1
|
||||
sta spvectlo-1,x
|
||||
lda spvect+2
|
||||
sta spvecthi-1,x
|
||||
lda romin write protect lc ram.
|
||||
lda RROMBNK2 write protect lc ram.
|
||||
inc numdevs
|
||||
ldx numdevs
|
||||
tya
|
||||
@ -576,7 +576,7 @@ H29F8 rts
|
||||
* with the following parameters:
|
||||
*
|
||||
* (1) command: 0 = zero destination range
|
||||
* 1 = move data from src to ZP.DstPtr
|
||||
* 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
|
||||
@ -601,10 +601,10 @@ rloop lda (idxl) get relocation command.
|
||||
tax move destination to page 0
|
||||
ldy #$01 for indirect access.
|
||||
lda (idxl),y
|
||||
sta ZP.DstPtr
|
||||
sta dst
|
||||
iny
|
||||
lda (idxl),y
|
||||
sta ZP.DstPtr+1
|
||||
sta dst+1
|
||||
iny
|
||||
lda (idxl),y also the length (byte count)
|
||||
sta cnt of the destination area.
|
||||
@ -656,7 +656,7 @@ H2A5A iny
|
||||
cpx #$03
|
||||
beq rlcode branch if program relocation
|
||||
jsr reladr otherwise, relocate addresses in
|
||||
H2A70 jsr move tables then move to destination.
|
||||
H2A70 jsr moveSrcDst tables then move to destination.
|
||||
bra rloop do next table
|
||||
rlend clc
|
||||
rts
|
||||
@ -671,16 +671,16 @@ zero jsr adjtbl adj table pointer to next entry.
|
||||
ldy cnt+1 is it at least 1 page?
|
||||
beq H2A94 branch if not.
|
||||
tay
|
||||
H2A89 sta (ZP.DstPtr),y
|
||||
H2A89 sta (dst),y
|
||||
iny
|
||||
bne H2A89
|
||||
inc ZP.DstPtr+1 next page
|
||||
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 (ZP.DstPtr),y zero out remainder
|
||||
H2A99 sta (dst),y zero out remainder
|
||||
iny
|
||||
cpy cnt
|
||||
bcc H2A99
|
||||
@ -694,32 +694,32 @@ adjtbl tya add previous table length to
|
||||
bcc H2AB2
|
||||
inc idxl+1
|
||||
H2AB2 rts
|
||||
move lda src+1 is move up, down or not at all?
|
||||
cmp ZP.DstPtr+1
|
||||
moveSrcDst lda src+1 is move up, down or not at all?
|
||||
cmp dst+1
|
||||
bcc movup
|
||||
bne movdn
|
||||
lda src
|
||||
cmp ZP.DstPtr
|
||||
cmp dst
|
||||
bcc movup
|
||||
bne movdn
|
||||
rts no move.
|
||||
movup ldy cnt+1 calc highest page to move up
|
||||
tya and adj src and ZP.DstPtr.
|
||||
tya and adj src and dst.
|
||||
clc
|
||||
adc src+1
|
||||
sta src+1
|
||||
tya
|
||||
clc
|
||||
adc ZP.DstPtr+1
|
||||
sta ZP.DstPtr+1
|
||||
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 (ZP.DstPtr),y
|
||||
sta (dst),y
|
||||
tya end of page transfer?
|
||||
bne H2AD6 no
|
||||
H2ADE dec ZP.DstPtr+1
|
||||
H2ADE dec dst+1
|
||||
dec src+1
|
||||
dec cnt+1 done with all pages?
|
||||
bpl H2AD6 no
|
||||
@ -728,17 +728,17 @@ movdn ldy #$00
|
||||
lda cnt+1 partial page move only?
|
||||
beq H2AFC taken if < 1 page to move
|
||||
H2AED lda (src),y
|
||||
sta (ZP.DstPtr),y
|
||||
sta (dst),y
|
||||
iny
|
||||
bne H2AED
|
||||
inc ZP.DstPtr+1 next page
|
||||
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 (ZP.DstPtr),y
|
||||
sta (dst),y
|
||||
iny
|
||||
cpy cnt
|
||||
bne H2B00
|
||||
@ -864,7 +864,7 @@ patch101 .OP 65816
|
||||
phx
|
||||
pea $0000 length of patch = 0000/0010
|
||||
pea $0010
|
||||
_PtrToHand
|
||||
>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
|
||||
|
@ -65,7 +65,7 @@ H2D4B lda a1l1,x
|
||||
plp and status.
|
||||
rts
|
||||
mainwrt .EQ *-ofsR2 transfer data to card.
|
||||
sta wrcardram write to alt 48K
|
||||
sta SETWRITEAUX write to alt 48K
|
||||
ldy #$00
|
||||
H2D6A lda (A1L),y pointers set in card by 'setptr'
|
||||
sta (A4L),y
|
||||
@ -73,7 +73,7 @@ H2D6A lda (A1L),y pointers set in card by 'setptr'
|
||||
sta (A3L),y
|
||||
dey
|
||||
bne H2D6A
|
||||
sta wrmainram write to main 48K.
|
||||
sta CLRWRITEAUX write to main 48K.
|
||||
lda #donewrt done writing card
|
||||
sta passit
|
||||
lda /donewrt
|
||||
@ -85,7 +85,7 @@ a1l1 .EQ *-ofsR2 13 bytes of storage
|
||||
* end of obj ram_2
|
||||
|
||||
r2_end .EQ *
|
||||
.BS $D9B-(r2_end-H2000) fill to lanirq ($FF9B see note below)
|
||||
.BS $2D9B-* fill to lanirq ($FF9B see note below)
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.203/PRODOS.S.RAM
|
||||
|
@ -42,7 +42,7 @@ RAM_1 .BS $2C80-*
|
||||
rts end of obj ram_1
|
||||
|
||||
RAM_1_END .EQ * end of /RAM installer
|
||||
.BS 256-* pad 0's to page boundary
|
||||
.BS $2D00-* pad 0's to page boundary
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.203/PRODOS.S.RAMI
|
||||
|
@ -18,9 +18,9 @@ NEW
|
||||
|
||||
ofsR0 .EQ *-ramdest offset to /RAM driver org
|
||||
|
||||
ramsrc lda rd80col read 80 store
|
||||
ramsrc lda RD80STORE read 80 store
|
||||
pha save for later
|
||||
sta store80off turn off 80 store
|
||||
sta CLR80STORE turn off 80 store
|
||||
ldx #$04 move the parameters for use:
|
||||
L5109 lda A4L,x cmd, unit, bufptr and block (lo)
|
||||
sta tcmd,x -> tcmd, tunit, R2L, R2H, R01
|
||||
@ -80,13 +80,13 @@ lcrd .EQ *-ofsR0
|
||||
bcs L5173 in main bank.
|
||||
ora #$10 in secondary bank.
|
||||
bne L5179 branch always.
|
||||
L5173 sta altram turn on main $D000
|
||||
sta altram
|
||||
L5173 sta RRAMWRAMBNK2 turn on main $D000
|
||||
sta RRAMWRAMBNK2
|
||||
L5179 sta R01 restore R1.
|
||||
lda R2H save R2 for later
|
||||
pha
|
||||
ldx R2L
|
||||
sta setaltzp use alternate zero page/stack
|
||||
sta SETALTZP use alternate zero page/stack
|
||||
lda /dbuf set R2 to dbuf
|
||||
sta R2H
|
||||
lda #dbuf
|
||||
@ -99,14 +99,14 @@ L5194 lda (A1L),y move A1,A2 to A4,A3
|
||||
sta (A3L),y
|
||||
dey
|
||||
bne L5194
|
||||
sta setstdzp use main zero page/stack
|
||||
sta SETALTZP use main zero page/stack
|
||||
L51A2 stx R2L
|
||||
pla restore R2
|
||||
sta R2H
|
||||
plp get direction.
|
||||
L51AA bcs L51B5 write, done with move.
|
||||
sta ramin switch in MLI part of LC
|
||||
sta ramin
|
||||
sta RRAMWRAMBNK1 switch in MLI part of LC
|
||||
sta RRAMWRAMBNK1
|
||||
jsr blockdo0 read, transfer dbuf to main
|
||||
L51B5 jmp exitcard
|
||||
L51B8 jsr blockdo0 transfer main to dbuf.
|
||||
@ -125,7 +125,7 @@ blockdo1 .EQ *-ofsR0
|
||||
blockdo .EQ *-ofsR0
|
||||
jsr setptr set pointers.
|
||||
bcs L51DB it's a write.
|
||||
sta wrmainram transfer buffer directly to main.
|
||||
sta CLRWRITEAUX transfer buffer directly to main.
|
||||
tay 0 left from setptr.
|
||||
L51CC lda (A1L),y transfer A1,A2 to A4,A3
|
||||
sta (A4L),y
|
||||
@ -133,7 +133,7 @@ L51CC lda (A1L),y transfer A1,A2 to A4,A3
|
||||
sta (A3L),y
|
||||
dey
|
||||
bne L51CC
|
||||
sta wrcardram back the way it was.
|
||||
sta SETWRITEAUX back the way it was.
|
||||
donewrt .EQ *-ofsR0 mainwrt returns here
|
||||
rts
|
||||
L51DB lda #mainwrt pointers set up,
|
||||
@ -315,11 +315,11 @@ access .EQ *-ofsR0
|
||||
.HS 7F 128 blocks
|
||||
|
||||
exitcard .EQ *-ofsR0
|
||||
lda ramin restore language card
|
||||
lda ramin
|
||||
lda RRAMWRAMBNK1 restore language card
|
||||
lda RRAMWRAMBNK1
|
||||
pla get 80store
|
||||
bpl L52EA 80store wasn't on
|
||||
sta store80on enable 80store
|
||||
sta SET80STORE enable 80store
|
||||
L52EA jmp bypass jump around passit
|
||||
passit .EQ *-ofsR0
|
||||
.HS 0000
|
||||
|
@ -11,10 +11,10 @@ NEW
|
||||
|
||||
ofsS .EQ *-dispadr offset to dispatcher org
|
||||
|
||||
disp1obj lda romin read ROM
|
||||
sta clr80vid disable 80 col hardware
|
||||
sta clraltchar normal LC, flashing UC
|
||||
sta store80off disable 80 column store
|
||||
disp1obj lda RROMBNK2 read ROM
|
||||
sta CLR80DISP disable 80 col hardware
|
||||
sta CLRALTCHAR normal LC, flashing UC
|
||||
sta CLR80STORE disable 80 column store
|
||||
jsr setnorm set normal text mode
|
||||
jsr init init text screen
|
||||
jsr setvid reset output to screen
|
||||
@ -29,7 +29,7 @@ L5A22 sta memmap,x
|
||||
bpl L5A22
|
||||
lda #$CF protect zero page, stack and
|
||||
sta memmap $400-$7FF (text screen display)
|
||||
L5A2D jsr home clear screen
|
||||
L5A2D jsr home clear screen
|
||||
jsr crout position top/left
|
||||
ldx #dsp1msg0-dsp1msgs
|
||||
jsr prntmsg 'enter prefix...'
|
||||
@ -37,14 +37,14 @@ L5A2D jsr home clear screen
|
||||
sta cv
|
||||
jsr crout
|
||||
jsr MLI get prefix
|
||||
.DA #$C7
|
||||
.DA dsp1pfx
|
||||
ldx PrefixBuf get prefix length
|
||||
.DA #$C7
|
||||
.DA dsp1pfx
|
||||
ldx pbuf get prefix length
|
||||
lda #$00 put 0 at end of prefix
|
||||
sta PrefixBuf+1,x
|
||||
ldx PrefixBuf get length.
|
||||
sta pbuf+1,x
|
||||
ldx pbuf get length.
|
||||
beq L5A5D if no prefix to display.
|
||||
L5A52 lda PrefixBuf,x display prefix directly to screen
|
||||
L5A52 lda pbuf,x display prefix directly to screen
|
||||
ora #$80 normal text
|
||||
sta vline5-1,x line 5
|
||||
dex
|
||||
@ -92,12 +92,12 @@ L5A9F cmp #$AE below '.' ?
|
||||
goodkey inx
|
||||
cpx #$27 more than 39 chars ?
|
||||
bcs L5A76 then too many, go restart.
|
||||
sta PrefixBuf,x save it
|
||||
sta pbuf,x save it
|
||||
jsr cout
|
||||
jmp getkey get another.
|
||||
L5ABD cpx #$00 prefix length = 0 ?
|
||||
beq L5AD3 if yes, don't set length.
|
||||
stx PrefixBuf set prefix length.
|
||||
stx pbuf set prefix length.
|
||||
jsr MLI call mli to set prefix.
|
||||
.DA #$C6
|
||||
.DA dsp1pfx
|
||||
@ -153,12 +153,12 @@ L5B29 pha it's good, save it.
|
||||
inx
|
||||
cpx #$27 more than 39 chars ?
|
||||
bcs L5AF6 too long, get pathname again.
|
||||
sta PrefixBuf,x store it.
|
||||
sta pbuf,x store it.
|
||||
jmp loop1 get another char
|
||||
L5B3C lda #$A0
|
||||
jsr cout after cr, blank out the cursor.
|
||||
stx PrefixBuf put length in front of the name.
|
||||
jsr MLI get file info for pathname in PrefixBuf
|
||||
stx pbuf put length in front of the name.
|
||||
jsr MLI get file info for pathname in pbuf
|
||||
.DA #$C4
|
||||
.DA dsp1info
|
||||
bcc L5B4F if no errors.
|
||||
@ -279,7 +279,7 @@ dsp1err3 .EQ *-ofsS
|
||||
.HS 00
|
||||
dsp1info .EQ *-ofsS get file info parms
|
||||
.DA #$0A 10 parameters
|
||||
.DA PrefixBuf pathname buffer
|
||||
.DA pbuf pathname buffer
|
||||
dsp1acess .EQ *-ofsS
|
||||
.HS 00 access
|
||||
dsp1type .EQ *-ofsS
|
||||
@ -287,7 +287,7 @@ dsp1type .EQ *-ofsS
|
||||
.BS 13 the rest are unimportant
|
||||
dsp1open .EQ *-ofsS open file parms
|
||||
.HS 03 3 parameters for open
|
||||
.DA PrefixBuf pathname buffer
|
||||
.DA pbuf pathname buffer
|
||||
.DA fbuf fcb buffer
|
||||
dsp1refn .EQ *-ofsS
|
||||
.HS 00 reference #
|
||||
@ -311,7 +311,7 @@ dsp1eofb .EQ *-ofsS
|
||||
.HS 000000 3 byte eof
|
||||
dsp1pfx .EQ *-ofsS get/set prefix parms
|
||||
.DA #01 1 parameter
|
||||
.DA PrefixBuf prefix buffer
|
||||
.DA pbuf prefix buffer
|
||||
|
||||
disp1end .EQ *
|
||||
.BS $300-disp1end+disp1obj fill to page boundary
|
||||
|
@ -6,13 +6,13 @@ NEW
|
||||
ofsB .EQ *-dispadr offset to Bird's Bye org
|
||||
|
||||
birdbye cld
|
||||
lda romin read ROM
|
||||
lda RROMBNK2 read ROM
|
||||
stz softev
|
||||
lda /dispadr set reset vector to 'dispadr'
|
||||
sta softev+1
|
||||
jsr setpwrc create power-up byte
|
||||
lda #$A0
|
||||
jsr init80 initialize 80 column text card
|
||||
jsr $C300 initialize 80 column text card
|
||||
ldx #$17
|
||||
|
||||
* set up memory bitmap in global page
|
||||
@ -50,17 +50,17 @@ volname sta ol_unit store unit number for online.
|
||||
.DA ol_parms
|
||||
bcs L5D32 error check.
|
||||
stz dlevel haven't read root directory yet.
|
||||
lda PrefixBuf+1 load description byte.
|
||||
lda pbuf+1 load description byte.
|
||||
and #$0F mask for name length.
|
||||
beq L5D32 if 0, then try next unit.
|
||||
adc #$02 add 2 to length.
|
||||
tax name length in x.
|
||||
vnam1 .EQ *-ofsB
|
||||
stx PrefixBuf save the name length
|
||||
stx pbuf save the name length
|
||||
lda #$2F '/'
|
||||
sta PrefixBuf+1 slash before and
|
||||
sta PrefixBuf,x after name.
|
||||
stz PrefixBuf+1,x null after complete name.
|
||||
sta pbuf+1 slash before and
|
||||
sta pbuf,x after name.
|
||||
stz pbuf+1,x null after complete name.
|
||||
|
||||
* open and read directory
|
||||
|
||||
@ -72,7 +72,7 @@ vnam1 .EQ *-ofsB
|
||||
beq L5D32 yes, just move to next volume.
|
||||
jsr bell1 no, generate bell tone
|
||||
jsr popdir and stay at same level.
|
||||
stx PrefixBuf
|
||||
stx pbuf
|
||||
jmp keyloop
|
||||
L5D7F inc dlevel
|
||||
stz filecount zero file count.
|
||||
@ -159,21 +159,21 @@ L5E15 lda sysentry,y get byte of filename
|
||||
sta (fnstore),y restore in name buffer
|
||||
inc filecount increment valid file counter
|
||||
bne L5DB5 get next file (branch always)
|
||||
L5E26 jmp ds2 error. try next unit.
|
||||
L5E29 jsr MLI close directory file
|
||||
L5E26 jmp ds2 error. try next unit.
|
||||
L5E29 jsr MLI close directory file
|
||||
.DA #$CC
|
||||
.DA cl_parms
|
||||
bcs L5E26 error.
|
||||
jsr settxt use full screen for windows
|
||||
jsr home
|
||||
lda #$17 cursor at bottom of screen.
|
||||
jsr tabv set vertical position.
|
||||
jsr TABV set vertical position.
|
||||
ldy #$00
|
||||
lda #$14 horizontal position.
|
||||
jsr sethorz print message.
|
||||
jsr homecurs cursor to upper/left.
|
||||
ldx #$00
|
||||
L5E48 lda PrefixBuf+1,x
|
||||
L5E48 lda pbuf+1,x
|
||||
beq showfiles
|
||||
jsr output
|
||||
inx
|
||||
@ -225,7 +225,7 @@ L5EAA jsr setinv set inverse text mode.
|
||||
keyloop .EQ *-ofsB
|
||||
L5EB0 lda kbd get keyboard input.
|
||||
bpl L5EB0 loop until key pressed.
|
||||
sta kbdstrobe clear strobe.
|
||||
sta KBDSTROBE clear strobe.
|
||||
jsr setnorm set normal text mode.
|
||||
ldx filecount are any files displayed ?
|
||||
beq L5ECB no, don't accept arrow keys or return.
|
||||
@ -246,14 +246,14 @@ L5ECB cmp #$89 tab ?
|
||||
dec dlevel
|
||||
bra L5EF1
|
||||
popdir .EQ *-ofsB
|
||||
ldx PrefixBuf
|
||||
ldx pbuf
|
||||
L5EDD dex
|
||||
lda PrefixBuf,x
|
||||
lda pbuf,x
|
||||
cmp #$2F slash
|
||||
bne L5EDD
|
||||
cpx #$01
|
||||
bne L5EEC
|
||||
ldx PrefixBuf
|
||||
ldx pbuf
|
||||
L5EEC rts
|
||||
L5EED jmp ds2 set up new unit number.
|
||||
L5EF0 inx
|
||||
@ -267,14 +267,14 @@ L5EF4 jsr MLI set prefix
|
||||
bcs L5EED error.
|
||||
ldx valcnt get name number.
|
||||
jsr namecalc set up name storage area (on return y=0)
|
||||
ldx PrefixBuf get prefix length.
|
||||
ldx pbuf get prefix length.
|
||||
L5F04 iny start at y = 1.
|
||||
lda (fnstore),y get character of name.
|
||||
inx
|
||||
sta PrefixBuf,x store in prefix buffer.
|
||||
sta pbuf,x store in prefix buffer.
|
||||
cpy namelen check length of name.
|
||||
bcc L5F04 loop until all transferred.
|
||||
stx PrefixBuf put prefix length into buffer.
|
||||
stx pbuf put prefix length into buffer.
|
||||
ldy valcnt get file number.
|
||||
lda filetyps,y get file type.
|
||||
bpl L5EF0 branch if directory.
|
||||
@ -347,7 +347,7 @@ nameprnt .EQ *-ofsB
|
||||
sbc topname calculate line # to display name
|
||||
inc
|
||||
inc
|
||||
jsr tabv set vertical position.
|
||||
jsr TABV set vertical position.
|
||||
lda filetyps,x get filetype (x is unchanged by tabv).
|
||||
bmi L5F99 branch if system file.
|
||||
stz ch80col adjust cursor position.
|
||||
@ -393,7 +393,7 @@ fldrmsg .EQ *-ofsB
|
||||
.HS 00
|
||||
op_parms .EQ *-ofsB open parameters
|
||||
.DA #$03 3 parms
|
||||
.DA PrefixBuf pathname
|
||||
.DA pbuf pathname
|
||||
.DA op_buf file buffer
|
||||
op_refn .EQ *-ofsB
|
||||
.HS 00 reference number
|
||||
@ -404,10 +404,10 @@ ol_parms .EQ *-ofsB online parameters
|
||||
.HS 02 2 parms
|
||||
ol_unit .EQ *-ofsB
|
||||
.HS 60 unit number, default = s6, d1
|
||||
.DA PrefixBuf+1 data buffer
|
||||
.DA pbuf+1 data buffer
|
||||
pf_parms .EQ *-ofsB set prefix parameters
|
||||
.DA #01 one parm
|
||||
.DA PrefixBuf pathname
|
||||
.DA pbuf pathname
|
||||
rd_parms .EQ *-ofsB read parameters
|
||||
.DA #04 4 parms
|
||||
rd_refn .EQ *-ofsB
|
||||
|
@ -17,7 +17,7 @@ NEW
|
||||
|
||||
ofsQ .EQ *-dispadr offset to GQuit dispatcher org
|
||||
|
||||
GQdisp lda ramin read/write LC bank 1
|
||||
GQdisp lda RRAMWRAMBNK1 read/write LC bank 1
|
||||
clc
|
||||
xce 16 bit native mode.
|
||||
jmp >P8QUIT go to GQuit.
|
||||
@ -69,10 +69,10 @@ L6020 jsr MLI set prefix
|
||||
|
||||
L602D xce native mode (carry clear)
|
||||
* LONG I 16 bit regs, 8 bit acc.
|
||||
lda PrefixBuf+1 is the application name
|
||||
lda pbuf+1 is the application name
|
||||
cmp #$2F a complete pathname ?
|
||||
bne L603D no, use prefix as volume name
|
||||
ldx #PrefixBuf 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
|
||||
@ -120,7 +120,7 @@ L608B jsr dolaunch check for possible 2nd pathname.
|
||||
bcc L6099 if so then run the program.
|
||||
lda #$45 volume not found error.
|
||||
bra L60AB
|
||||
L6099 lda romin enable ROM
|
||||
L6099 lda RROMBNK2 enable ROM
|
||||
jmp sysentry execute the system application
|
||||
|
||||
gqerror .EQ *-ofsQ
|
||||
@ -205,8 +205,8 @@ L6101 pha save error code in case esc pressed.
|
||||
pea button2 'Escape'
|
||||
>IIGS TLTextMountVolume
|
||||
lda [$01] restore first 2 bytes of vilume name
|
||||
xba back to their original positions
|
||||
inc and values.
|
||||
xba back to their original positions
|
||||
inc and values.
|
||||
sta [$01]
|
||||
pla which button: 1=Return 2=Escape.
|
||||
pld restore D reg.
|
||||
@ -260,6 +260,7 @@ dolaunch .EQ *-ofsQ
|
||||
cmp sysentry+4
|
||||
beq L6170 both match, go get a filename message.
|
||||
L616F rts just return to launch the app.
|
||||
|
||||
L6170 lda #$FF put flag conditioning value on
|
||||
pha the stack (assume error).
|
||||
clc native 16-bit mode.
|
||||
@ -293,7 +294,7 @@ L6170 lda #$FF put flag conditioning value on
|
||||
pha (will be used as a direct page pointer)
|
||||
tsc get the stack pointer.
|
||||
phd save current direct register.
|
||||
inc a point to new direct page space.
|
||||
inc point to new direct page space.
|
||||
tcd make a new direct page.
|
||||
lda [$04] de-reference the handle.
|
||||
sta $00
|
||||
@ -353,16 +354,16 @@ L6225 dex don't include trailing slash.
|
||||
.DA #$C6
|
||||
.DA pfxparms
|
||||
lda #$00 set z-flag
|
||||
L6231 rts and go launch the app.
|
||||
L6231 rts and go launch the app.
|
||||
|
||||
* check for disk volume
|
||||
*
|
||||
* on exit:
|
||||
* carry clear = disk was found
|
||||
* carry set = disk not found
|
||||
.OP 65816
|
||||
|
||||
ckfordrv .EQ *-ofsQ
|
||||
clc native mode
|
||||
SEL2.ckfordrv clc native mode
|
||||
xce
|
||||
* LONG I 16-bit regs, 8-bit acc.
|
||||
ldx #sysentry+6 point to pathname buffer.
|
||||
@ -390,7 +391,7 @@ pfxparms .EQ *-ofsQ set prefix parms.
|
||||
.DA inbuf address of prefix.
|
||||
opnparms .EQ *-ofsQ open parms.
|
||||
.DA #3 3 parms.
|
||||
.DA PrefixBuf pathname
|
||||
.DA pbuf pathname
|
||||
.DA op_buf i/o buffer
|
||||
oprefnum .EQ *-ofsQ
|
||||
.HS 00 reference #
|
||||
|
@ -14,7 +14,8 @@ tclock_0 ldx clkslt clock slot = $C1.
|
||||
lda #$A3 send numeric mode byte to Thunderclock
|
||||
jsr wttcp
|
||||
clkslt .EQ *-ofsT+2 points to $C1.
|
||||
jsr rdtcp read month, day of week, day of month
|
||||
|
||||
TCLK.clkslt jsr rdtcp read month, day of week, day of month
|
||||
clc and time into input buffer.
|
||||
ldx #$04 index for 5 values.
|
||||
ldy #$0C read minutes 1st, month last.
|
||||
@ -38,10 +39,10 @@ clkslt .EQ *-ofsT+2 points to $C1.
|
||||
lsr
|
||||
ror
|
||||
ror
|
||||
ror high bit of month held in carry
|
||||
ror high bit of month held in carry
|
||||
ora A1L
|
||||
sta p8date save low value of date.
|
||||
php save high bit of month.
|
||||
php save high bit of month.
|
||||
and #$1F isolate day.
|
||||
adc tdays-1,y (y = month)
|
||||
bcc .2 branch if not Sept 13 thru 30th
|
||||
|
@ -6,7 +6,7 @@ NEW
|
||||
ofsX .EQ *-xdosorg offset to xdos org
|
||||
|
||||
xdosmli .EQ *-ofsX xdos MLI in aux ram
|
||||
* cld no decimal.
|
||||
xdosobj cld no decimal.
|
||||
pla get processor status
|
||||
sta spare1 save it temporarily
|
||||
sty mliy save x and y
|
||||
@ -256,7 +256,7 @@ H31C6 lda irqflag check for old roms.
|
||||
bne H31DD branch if new roms.
|
||||
ldy p8yreg restore registers.
|
||||
ldx p8xreg
|
||||
lda clrrom re-enable i/o card.
|
||||
lda CLRC8ROM re-enable i/o card.
|
||||
irqdev .EQ *-ofsX
|
||||
lda $C100 Cn is self modifying.
|
||||
lda irqdev+2 restore device id.
|
||||
@ -287,12 +287,12 @@ syserr1 .EQ *-ofsX
|
||||
rts
|
||||
sysdeath1 .EQ *-ofsX
|
||||
tax death error code.
|
||||
sta clr80vid disable 80 col hardware.
|
||||
lda txtset switch in text.
|
||||
sta CLR80DISP disable 80 col hardware.
|
||||
lda SETTEXT switch in text.
|
||||
lda cortflag is this a Cortland?
|
||||
beq H321A if not, don't use super hires switch.
|
||||
stz newvideo force off super hires.
|
||||
H321A lda txtpage1 switch in text page 1.
|
||||
H321A lda CLRPAGE2 switch in text page 1.
|
||||
ldy #$13
|
||||
H321F lda #$20 inverse space border
|
||||
sta vline11+10,y
|
||||
@ -510,7 +510,7 @@ findfcb .EQ *-ofsX
|
||||
cmp #$09 must be 1 to 8 only.
|
||||
bcs badref
|
||||
pha
|
||||
dec a
|
||||
dec
|
||||
lsr
|
||||
ror
|
||||
ror
|
||||
|
@ -116,7 +116,7 @@ L3CF7 lda #$80 indicate map is modified.
|
||||
sta vcbbuf+20,y
|
||||
bcs L3D10 if high free count doesn't need adj.
|
||||
lda vcbbuf+21,y adjust high count
|
||||
dec a
|
||||
dec
|
||||
sta vcbbuf+21,y
|
||||
L3D10 clc no errors.
|
||||
lda scrtch return address in y,a of newly
|
||||
@ -232,7 +232,7 @@ L3DE8 plp file i/o error. restore interrupts.
|
||||
|
||||
* get mark command
|
||||
getmark .EQ *-ofsX
|
||||
ldx fcbptr index to open fcb.
|
||||
XDOS.GetMark ldx fcbptr index to open fcb.
|
||||
ldy #$02 index to user's mark parmeter.
|
||||
.1 lda fcbbuf+18,x transfer current position
|
||||
sta (A3L),y to user's parameter list
|
||||
@ -247,7 +247,7 @@ L3DFD lda #$4D invalid position
|
||||
rts
|
||||
* set mark command
|
||||
setmark .EQ *-ofsX
|
||||
ldy #$04 index to user's desired position.
|
||||
XDOS.SetMark ldy #$04 index to user's desired position.
|
||||
ldx fcbptr file's control block index.
|
||||
inx inc by 2 for index to hi eof
|
||||
inx
|
||||
|
@ -552,14 +552,17 @@ alcwblk .EQ *-ofsX
|
||||
sta fcbbuf+25,y
|
||||
L4615 clc no error
|
||||
L4616 rts
|
||||
|
||||
tstwprot .EQ *-ofsX check for 'never been modified'
|
||||
jsr gfcbstat condition
|
||||
|
||||
XDOS.tstwprot jsr gfcbstat condition
|
||||
and #$F0
|
||||
bne L4615 ordinary rts if known write ok.
|
||||
lda fcbbuf+1,y get file's dev #.
|
||||
sta devnum get current status of block device.
|
||||
|
||||
twrprot1 .EQ *-ofsX make the device status call
|
||||
sta unitnum
|
||||
XDOS.twrprot1 sta unitnum
|
||||
lda bloknml+1
|
||||
pha
|
||||
lda bloknml save the current block values
|
||||
|
@ -272,7 +272,7 @@ L485F jsr tkfrecnt force free block count before releasing
|
||||
and #$01
|
||||
sta dseed+1
|
||||
lda tposhi
|
||||
lsr a
|
||||
lsr
|
||||
sta dtree
|
||||
ror dsap pass position in terms of block & bytes.
|
||||
lda dseed now adjust for boundaries of $200
|
||||
@ -314,10 +314,10 @@ L48C2 lda firstbl,x
|
||||
and #$01 test for both bytes adjusted
|
||||
bne L48C2 without disturbing carry.
|
||||
lda stortyp get possibly modified storage type
|
||||
lsr a
|
||||
lsr a
|
||||
lsr a
|
||||
lsr a
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ldy fcbptr and save it in fcb.
|
||||
sta fcbbuf+7,y
|
||||
jsr clrstats make it look as though position has
|
||||
@ -411,11 +411,11 @@ getinfo .EQ *-ofsX
|
||||
pla
|
||||
sbc reqh
|
||||
sta d_usage+1
|
||||
L4988 lda d_stor transfer bytes from internal order to
|
||||
lsr a call spec via 'inftabl' translation
|
||||
lsr a table but first change storage type to
|
||||
lsr a external (low nibble) format.
|
||||
lsr a
|
||||
L4988 lda d_stor transfer bytes from internal order to
|
||||
lsr call spec via 'inftabl' translation
|
||||
lsr table but first change storage type to
|
||||
lsr external (low nibble) format.
|
||||
lsr
|
||||
sta d_stor
|
||||
ldy #$11 index to last of user's spec table.
|
||||
L4994 lda inftabl-3,y
|
||||
|
@ -160,8 +160,8 @@ L4EC7 rts
|
||||
* this move routine must be resident above $E000 at all times
|
||||
|
||||
calldisp .EQ *-ofsX
|
||||
lda altram read/write RAM bank 2
|
||||
lda altram
|
||||
lda RRAMWRAMBNK2 read/write RAM bank 2
|
||||
lda RRAMWRAMBNK2
|
||||
lda /dispadr
|
||||
sta A2L+1
|
||||
lda #dispadr
|
||||
@ -180,8 +180,8 @@ L4EE0 dey move a page of code.
|
||||
inc A2L+1
|
||||
dex move all pages needed
|
||||
bne L4EE0
|
||||
lda ramin read/write RAM bank 1
|
||||
lda ramin swap mli space back in
|
||||
lda RRAMWRAMBNK1 read/write RAM bank 1
|
||||
lda RRAMWRAMBNK1 swap mli space back in
|
||||
stz mliact MLI active flag
|
||||
stz softev
|
||||
lda /dispadr point RESET to dispatch entry
|
||||
@ -227,7 +227,7 @@ L4F3F lda buf-1,x from prodos parameters
|
||||
sp_vector .EQ *-ofsX smartport call
|
||||
jsr $0000 (entry address gets modified)
|
||||
cmdnum .EQ *-ofsX
|
||||
.HS 00 command #
|
||||
.HS 00 command #
|
||||
.DA statparms
|
||||
bcs L4F6E
|
||||
ldx cmdnum status call ?
|
||||
|
@ -7,12 +7,13 @@ NEW
|
||||
*--------------------------------------
|
||||
.INB INC/ZP.I
|
||||
.INB INC/IO.I
|
||||
* .INB INC/MONITOR.I
|
||||
.INB INC/MONITOR.I
|
||||
.INB INC/MLI.I
|
||||
.INB INC/MLI.E.I
|
||||
*--------------------------------------
|
||||
MMStartUp .EQ 0000
|
||||
NewHandle .EQ 0000
|
||||
PtrToHand .EQ 0000
|
||||
MessageCenter .EQ 0000
|
||||
DisposeHandle .EQ 0000
|
||||
MMShutDown .EQ 0000
|
||||
@ -23,18 +24,121 @@ TLTextMountVolume .EQ 0000
|
||||
ldx ##]1
|
||||
jsl $E10000
|
||||
.EM
|
||||
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
|
||||
ZP.SrcPtr .EQ $12
|
||||
ZP.DstPtr .EQ $14
|
||||
devid .EQ $12
|
||||
src .EQ $12
|
||||
dst .EQ $14
|
||||
cnt .EQ $16
|
||||
cde .EQ $18
|
||||
ecde .EQ $1A
|
||||
|
||||
wndbtm .EQ $23
|
||||
|
||||
|
||||
pcl .EQ $3A
|
||||
pch .EQ $3B
|
||||
A1L .EQ $3C
|
||||
A1H .EQ $3D
|
||||
A2L .EQ $3E
|
||||
A2H .EQ $3F
|
||||
A3L .EQ $40
|
||||
A4L .EQ $42
|
||||
unitnum .EQ $43
|
||||
buf .EQ $44 2-byte data buffer pointer which
|
||||
accsav .EQ $45 overlaps accsav (temp acc save byte)
|
||||
bloknml .EQ $46 used mostly as 16 bit block # pointer
|
||||
zpt .EQ $48 highly used zero page index pointer
|
||||
datptr .EQ $4A ptr to data area of buffer.
|
||||
sos .EQ $4C sos buffer pointer.
|
||||
usrbuf .EQ $4E data ptr in user buffer.
|
||||
|
||||
* zero page variables for Bird's Better Bye
|
||||
|
||||
smparms .EQ $60 set mark parms
|
||||
sm_refn .EQ $61 file reference number
|
||||
fpos_lo .EQ $62 new file position (3 bytes)
|
||||
fpos_mid .EQ $63
|
||||
fpos_hi .EQ $64
|
||||
lstpntr .EQ $65 device list pointer (16 bit)
|
||||
valcnt .EQ $67 name counter
|
||||
|
||||
filecount .EQ $68 # of displayable files in directory
|
||||
namelen .EQ $69 length of filename
|
||||
gp_cnt .EQ $6A general purpose counter
|
||||
dlevel .EQ $6B directory level
|
||||
fnstore .EQ $6C filename storage pointer (16 bit)
|
||||
entlen .EQ $6E directory entry length
|
||||
entblk .EQ $6F directory entries/block
|
||||
filecnt .EQ $70 directory file count (16 bit)
|
||||
blkfl .EQ $72 block flag / file counter
|
||||
topname .EQ $73 index # of top name in display
|
||||
filetyps .EQ $74 128 byte table of filetypes
|
||||
errnum .EQ $DE
|
||||
*--------------------------------------
|
||||
ramdest .EQ $200 load address for aux bank /RAM driver
|
||||
PrefixBuf .EQ $280
|
||||
tst128 .EQ $0080 temp page 0 routine for memory test
|
||||
auxsp .EQ $0101
|
||||
ramdest .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
|
||||
txtp2 .EQ $0400 test location for aux card
|
||||
vline10 .EQ $04A8 line 10 of display
|
||||
vmode .EQ $04FB video firmware operating mode
|
||||
vline11 .EQ $0528 line 11 of display
|
||||
clkmode .EQ $0538 clock mode
|
||||
ch80col .EQ $057B 80 column ch position
|
||||
vline12 .EQ $05A8 line 12 of display
|
||||
vline5 .EQ $0600 line 5 of display
|
||||
vline13 .EQ $0628 line 13 of display
|
||||
vline14 .EQ $06A8 line 14 of display
|
||||
vline23 .EQ $0750 line 23 of display
|
||||
vline16 .EQ $07A8 line 16 of display
|
||||
vline24 .EQ $07D0 line 24 of display
|
||||
lodintrp .EQ $800
|
||||
DirBlkBuf .EQ $C00
|
||||
dbuf .EQ $0C00 8 page directory buffer
|
||||
vblock1 .EQ $0E00 ramdisk directory block
|
||||
volbuf .EQ $0F00 volume buffer
|
||||
dispadr .EQ $1000
|
||||
iobuf .EQ $1400 i/o buffer
|
||||
fbuf .EQ $1800 FCB buffer
|
||||
op_buf .EQ $1C00 open file buffer (selector)
|
||||
sysentry .EQ $2000 .SYS file load address
|
||||
prodos8 .EQ $BF00 prodos MLI and global page
|
||||
|
||||
phaseoff .EQ $C080 disk port
|
||||
motoroff .EQ $C088 disk port
|
||||
motoron .EQ $C089 disk port
|
||||
drv0en .EQ $C08A disk port
|
||||
q6l .EQ $C08C disk port
|
||||
q6h .EQ $C08D disk port
|
||||
q7l .EQ $C08E disk port
|
||||
q7h .EQ $C08F disk port
|
||||
|
||||
rdtcp .EQ $C108 Thunderclock read entry
|
||||
wttcp .EQ $C10B Thunderclock write entry
|
||||
|
||||
auxmove .EQ $C311 move (3C)-(3E) to (42)
|
||||
xfer .EQ $C314
|
||||
|
||||
rwts .EQ $D000 disk ii driver in bank 1
|
||||
displc2 .EQ $D100 system death routine stored in bank 2
|
||||
pathbuf .EQ $D700 pathname buffer
|
||||
tclk_in .EQ $D742 clock driver in bank 2
|
||||
fcbbuf .EQ $D800 fcb buffer
|
||||
vcbbuf .EQ $D900 vcb buffer
|
||||
bmbuf .EQ $DA00 512 byte bitmap buffer
|
||||
gbuf .EQ $DC00 general purpose 512 byte block buffer
|
||||
xdosorg .EQ $DE00 xdos MLI in aux memory
|
||||
lcdest .EQ $FF00
|
||||
*--------------------------------------
|
||||
@ -52,7 +156,7 @@ lcdest .EQ $FF00
|
||||
* $5D00 sel_1 enhanced quit code (Bird's Better Bye)
|
||||
* $6000 sel_2 GQuit dispatcher support
|
||||
|
||||
* .PH $2000
|
||||
.PH $2000
|
||||
|
||||
.INB USR/SRC/PRODOS.203/PRODOS.S.LDR.A
|
||||
.INB USR/SRC/PRODOS.203/PRODOS.S.LDR.B
|
||||
@ -75,7 +179,7 @@ lcdest .EQ $FF00
|
||||
.INB USR/SRC/PRODOS.203/PRODOS.S.SEL1
|
||||
.INB USR/SRC/PRODOS.203/PRODOS.S.SEL2
|
||||
|
||||
* .EP
|
||||
.EP
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/PRODOS.203/PRODOS.S
|
||||
|
Loading…
Reference in New Issue
Block a user