diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7e1a9655..1ee56a47 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/CMP.S.txt b/BIN/CMP.S.txt index d8582d92..913bd5ee 100644 --- a/BIN/CMP.S.txt +++ b/BIN/CMP.S.txt @@ -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 diff --git a/INC/MONITOR.I.txt b/INC/MONITOR.I.txt index 2f51a826..09f515e6 100644 --- a/INC/MONITOR.I.txt +++ b/INC/MONITOR.I.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.CCLK.txt b/ProDOS.203/ProDOS.S.CCLK.txt index 8506ca13..6899dc35 100644 --- a/ProDOS.203/ProDOS.S.CCLK.txt +++ b/ProDOS.203/ProDOS.S.CCLK.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.DiskII.txt b/ProDOS.203/ProDOS.S.DiskII.txt index 75c24688..fc500146 100644 --- a/ProDOS.203/ProDOS.S.DiskII.txt +++ b/ProDOS.203/ProDOS.S.DiskII.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.GP.txt b/ProDOS.203/ProDOS.S.GP.txt index 5dc038e6..10eaf8b5 100644 --- a/ProDOS.203/ProDOS.S.GP.txt +++ b/ProDOS.203/ProDOS.S.GP.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.IRQ.txt b/ProDOS.203/ProDOS.S.IRQ.txt index 86859301..e65ce275 100644 --- a/ProDOS.203/ProDOS.S.IRQ.txt +++ b/ProDOS.203/ProDOS.S.IRQ.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.LDR.A.txt b/ProDOS.203/ProDOS.S.LDR.A.txt index c28800e2..676b2a69 100644 --- a/ProDOS.203/ProDOS.S.LDR.A.txt +++ b/ProDOS.203/ProDOS.S.LDR.A.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.LDR.B.txt b/ProDOS.203/ProDOS.S.LDR.B.txt index e65aa6b4..5c41de1a 100644 --- a/ProDOS.203/ProDOS.S.LDR.B.txt +++ b/ProDOS.203/ProDOS.S.LDR.B.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.RAMI.txt b/ProDOS.203/ProDOS.S.RAMI.txt index c9e27a94..ac0b9b58 100644 --- a/ProDOS.203/ProDOS.S.RAMI.txt +++ b/ProDOS.203/ProDOS.S.RAMI.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.RAMX.txt b/ProDOS.203/ProDOS.S.RAMX.txt index 5acef5a9..4341adf9 100644 --- a/ProDOS.203/ProDOS.S.RAMX.txt +++ b/ProDOS.203/ProDOS.S.RAMX.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.SEL0.txt b/ProDOS.203/ProDOS.S.SEL0.txt index 97da12e8..ea1cc9af 100644 --- a/ProDOS.203/ProDOS.S.SEL0.txt +++ b/ProDOS.203/ProDOS.S.SEL0.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.SEL1.txt b/ProDOS.203/ProDOS.S.SEL1.txt index 859d16e8..e6f6f223 100644 --- a/ProDOS.203/ProDOS.S.SEL1.txt +++ b/ProDOS.203/ProDOS.S.SEL1.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.SEL2.txt b/ProDOS.203/ProDOS.S.SEL2.txt index 56967a6e..3c7857ca 100644 --- a/ProDOS.203/ProDOS.S.SEL2.txt +++ b/ProDOS.203/ProDOS.S.SEL2.txt @@ -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 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 diff --git a/ProDOS.203/ProDOS.S.TCLK.txt b/ProDOS.203/ProDOS.S.TCLK.txt index b35cf92b..a0badd90 100644 --- a/ProDOS.203/ProDOS.S.TCLK.txt +++ b/ProDOS.203/ProDOS.S.TCLK.txt @@ -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 *-------------------------------------- diff --git a/ProDOS.203/ProDOS.S.XDOS.A.txt b/ProDOS.203/ProDOS.S.XDOS.A.txt index cb0e7e0f..6b43db42 100644 --- a/ProDOS.203/ProDOS.S.XDOS.A.txt +++ b/ProDOS.203/ProDOS.S.XDOS.A.txt @@ -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 diff --git a/ProDOS.203/ProDOS.S.XDOS.M.txt b/ProDOS.203/ProDOS.S.XDOS.M.txt index 040d43d5..e399f421 100644 --- a/ProDOS.203/ProDOS.S.XDOS.M.txt +++ b/ProDOS.203/ProDOS.S.XDOS.M.txt @@ -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 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 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 *-------------------------------------- diff --git a/ProDOS.203/ProDOS.S.txt b/ProDOS.203/ProDOS.S.txt index 918e108f..3a9939ed 100644 --- a/ProDOS.203/ProDOS.S.txt +++ b/ProDOS.203/ProDOS.S.txt @@ -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