NEW AUTO 3,1 *-------------------------------------- BS.GETBUFR jsr LA1FB bcs LA304 pha sbc #$03 sta XBBB8 pla LA2C5 sta GP.SBUFADR+1 ldx GP.OPENCNT beq LA2EE lda XBBB7 clc adc #$04 sta XBBB7 LA2D6 cmp XBBEE,x bne LA2EB lda GP.SBUFADR+1 jsr LA356 jsr LA29F lda GP.SBUFADR+1 adc #$04 bcc LA2C5 LA2EB dex bne LA2D6 LA2EE lda GP.SBUFADR+1 bit GP.EXECACTV bpl LA303 LA2F6 ldx #$08 jsr LA356 jsr LA29F lda GP.SBUFADR+1 adc #$04 LA303 clc LA304 rts BS.FREEBUFR lda GP.OPENCNT asl asl adc AS.HIMEM+1 sta XBBB7 lda AS.HIMEM+1 sta XBBB8 lda GP.RSHIMEM cmp AS.HIMEM+1 beq LA354 sta AS.HIMEM+1 bit GP.EXECACTV bpl LA327 jsr LA2F6 bcc LA345 LA327 lda XBBB7 ldx GP.OPENCNT beq LA351 LA32F cmp XBBEE,x bne LA34E lda AS.HIMEM+1 jsr LA356 jsr LA29F sec lda XBBB7 sbc #$04 sta XBBB7 LA345 lda AS.HIMEM+1 sec sbc #$04 sta AS.HIMEM+1 bcs LA327 LA34E dex bne LA32F LA351 jsr BS.KW.01 LA354 clc rts LA356 pha lda XBBB8 jsr LA29F pla rts LA35F ldy #$00 cpy XBBEE beq LA376 LA366 lda (ZP.PCL),y sta (ZP.A1L),y iny bne LA366 inc ZP.PCH inc ZP.A1H dec XBBEE bne LA366 LA376 cpy XBBED beq LA382 lda (ZP.PCL),y sta (ZP.A1L),y iny bne LA376 LA382 rts LA383 ldy XBBED XA386 beq LA38F SELF MODIFIED LA388 jsr LA39A dec ZP.A1H dec ZP.PCH LA38F cpy XBBEE beq LA3A2 dec XBBEE jmp LA388 LA39A dey lda (ZP.PCL),y sta (ZP.A1L),y tya bne LA39A LA3A2 rts LA3A3 lda AS.VARSTART+1 sta ZP.A2H lda AS.VARSTART ldx AS.ARRAYSTART+1 clc bcc LA3B3 LA3AE clc lda ZP.A2L adc #$07 LA3B3 sta ZP.A2L bcc LA3B9 inc ZP.A2H LA3B9 eor AS.ARRAYSTART bne LA3BF cpx ZP.A2H LA3BF clc beq LA3D6 ldy #$00 lda (ZP.A2L),y iny eor (ZP.A2L),y bpl LA3AE lda (ZP.A2L),y bpl LA3AE iny jsr LA3FD jmp LA3AE LA3D6 lda ZP.A2L sta XBBDC LA3DB clc jsr LA160 bcs LA410 LA3E1 ldy #$00 clc jsr LA3FD clc lda #$03 adc ZP.A2L sta ZP.A2L bcc LA3F2 inc ZP.A2H LA3F2 cmp XBBDC bne LA3E1 cpx ZP.A2H bne LA3E1 beq LA3DB LA3FD lda (ZP.A2L),y beq LA410 iny iny lda AS.VARSTART+1 cmp (ZP.A2L),y bcs LA410 lda (ZP.A2L),y adc XBBE2 sta (ZP.A2L),y LA410 rts LA411 jsr LA021 bcs LA47F lda AS.ARRAYEND sec sbc AS.VARSTART sta BS.BAS.HDR sta XBBED lda AS.ARRAYEND+1 sbc AS.VARSTART+1 sta BS.BAS.HDR+1 sta XBBEE lda AS.ARRAYSTART sbc AS.VARSTART sta BS.BAS.HDR+2 lda AS.ARRAYSTART+1 sbc AS.VARSTART+1 sta BS.BAS.HDR+3 lda AS.STRINGSTART sbc XBBED sta ZP.A1L lda AS.STRINGSTART+1 sbc #$00 sta ZP.A1H lda AS.ARRAYEND sbc XBBED sta ZP.PCL lda AS.ARRAYEND+1 sbc #$00 sta ZP.PCH lda #$03 sta XA386+1 jsr LA383 lda #$07 sta XA386+1 lda ZP.A1L sta XBBE9 inc ZP.A1H lda ZP.A1H sta XBBEA lda AS.HIMEM sec sbc ZP.A1L sta XBBEB lda AS.HIMEM+1 sta BS.BAS.HDR+4 sbc ZP.A1H sta XBBEC clc LA47F rts LA480 lda BS.BAS.HDR sta XBBED clc adc AS.VARSTART sta AS.ARRAYEND lda BS.BAS.HDR+1 sta XBBEE adc AS.VARSTART+1 sta AS.ARRAYEND+1 lda AS.VARSTART sta ZP.A1L adc BS.BAS.HDR+2 sta AS.ARRAYSTART lda AS.VARSTART+1 sta ZP.A1H adc BS.BAS.HDR+3 sta AS.ARRAYSTART+1 lda XBBE9 sta ZP.PCL lda XBBEA sta ZP.PCH jsr LA35F lda XBBED clc adc ZP.PCL sta AS.STRINGSTART lda ZP.PCH adc #$00 sta AS.STRINGSTART+1 sec lda AS.HIMEM+1 sbc BS.BAS.HDR+4 beq LA4D0 sta XBBE2 jsr LA3A3 LA4D0 clc rts LA4D2 jsr BS.LINEBUFCLR80 lda #$A2 sta IO.LINEBUF lda DIRENTBUF and #$0F tay LA4E0 lda DIRENTBUF,y ora #$80 sta IO.LINEBUF+1,y dey bne LA4E0 sty BS.TMPBUF4+2 lda DIRENTBUF.TYPE ldx #$0E LA4F3 iny iny cmp BS.PRODOSTYPES.H,x beq LA505 iny dex bpl LA4F3 ldy #$13 jsr BS.AHEX2LINEBUFY bne LA549 LA505 ldx #$02 pha LA508 lda BS.PRODOSTYPES.ASC,y sta $212,x dey dex bpl LA508 pla bit BS.CATWIDTH bvc LA561 ldy #$4E cmp #$06 beq LA533 cmp #$04 bne LA549 lda #$D2 sta $249 lda DIRENTBUF.AUXT ldx DIRENTBUF.AUXT+1 jsr BS.AXDEC2LINEBUFY jmp LA544 LA533 lda #$C1 sta $249 lda DIRENTBUF.AUXT jsr BS.AHEX2LINEBUFY lda DIRENTBUF.AUXT+1 jsr BS.AHEX2LINEBUFY LA544 lda #$BD sta $24A LA549 lda DIRENTBUF.EOF+2 sta BS.TMPBUF4+2 lda DIRENTBUF.EOF ldx DIRENTBUF.EOF+1 ldy #$46 jsr BS.AXDEC2LINEBUFY ldx #$18 ldy #$3D jsr LA57E LA561 ldy #$1B lda DIRENTBUF.UBLK ldx DIRENTBUF.UBLK+1 jsr BS.AXDEC2LINEBUFY lda DIRENTBUF.ACCESS and #$C2 cmp #$C2 beq LA57A lda #$AA sta IO.LINEBUF+1 LA57A ldx #$21 ldy #$2C LA57E lda $25A,x lsr sta XBC10 lda DIRENTBUF,x pha and #$1F sta XBC0F pla rol rol rol rol and #$0F beq LA5B1 cmp #$0D bcs LA5B1 sta XBC0E asl adc XBC0E sta XBC0E lda XBC0F beq LA5B1 lda XBC10 cmp #$64 bcc LA5C3 LA5B1 tya sec sbc #$06 tay ldx #$08 LA5B8 lda BS.NODATE,x sta IO.LINEBUF+1,y dey dex bpl LA5B8 rts LA5C3 lda $25C,x pha lda $25B,x ldx #$00 cmp #$3C bcc LA5D1 txa LA5D1 jsr LA618 lda #$BA sta IO.LINEBUF+1,y dey pla ldx #$00 cmp #$18 bcc LA5E2 txa LA5E2 cmp #$0A php jsr BS.AXDEC2LINEBUFY plp bcs LA5EC dey LA5EC dey lda XBC10 jsr LA618 dey ldx XBC0E inx inx inx LA5FA lda BS.MONTHS-4,x sta IO.LINEBUF+1,y dey dex cpx XBC0E bne LA5FA lda #$AD sta IO.LINEBUF+1,y sta $205,y dey lda XBC0F ldx #$00 jmp BS.AXDEC2LINEBUFY LA618 clc adc #$64 jsr BS.AXDEC2LINEBUFY iny rts BS.AHEX2LINEBUFY pha and #$0F jsr LA62B pla lsr lsr lsr lsr LA62B ora #$B0 cmp #$BA bcc LA633 adc #$06 LA633 sta IO.LINEBUF+1,y dey lda #$A4 sta IO.LINEBUF+1,y rts BS.AXDEC2LINEBUFY stx BS.TMPBUF4+1 sta BS.TMPBUF4 LA643 jsr LA65B lda BS.TMPBUF4+3 ora #$B0 sta IO.LINEBUF+1,y dey lda BS.TMPBUF4 ora BS.TMPBUF4+1 ora BS.TMPBUF4+2 bne LA643 rts LA65B ldx #$18 lda #$00 sta BS.TMPBUF4+3 LA662 jsr BS.TMPBUF3x2 rol BS.TMPBUF4+3 sec lda BS.TMPBUF4+3 sbc #$0A bcc LA676 sta BS.TMPBUF4+3 inc BS.TMPBUF4 LA676 dex bne LA662 rts BS.LINEBUFCLR80 lda #$A0 ldx #$4F LA67E sta IO.LINEBUF+1,x dex bpl LA67E rts BS.DOSCMD lda #$FF sta GP.XCNUM lda #$20 sta BS.GetCharSep lda #$08 sta BS.GetCharMax jsr BS.GetKWInCmdBuf lda BS.CMDBUF cmp #$41 bcs LA6A5 eor #$2D beq LA6A5 LA6A2 jmp BS.ERR10 LA6A5 jsr BS.IsIntCmdMTR bcs LA6A2 lda GP.STATE bne LA6BA lda GP.EXECACTV bne LA6BA jsr MON.CLREOL jsr BS.CROUT LA6BA lda #$00 sta GP.FoundBITS sta GP.FoundBITS+1 sta BS.CMDBUF sta MLI.PATHBUF lda GP.VDEFSLT sta GP.ParamS lda GP.VDEFDRV sta GP.ParamD lda AS.HIMEM+1 sta XBBE3 ldx GP.XLEN inx inx stx BS.GetCharMax lda GP.AllowedBITS beq LA744 asl bmi LA747 jsr BS.GetKWInCmdBuf php pha lda GP.AllowedBITS bpl LA6F8 lda #MLI.C.GETPREFIX jsr GP.GOSYSTEM LA6F8 pla plp beq LA744 cmp #$2C bne LA703 jmp LA795 LA703 cmp #$2F beq LA70B cmp #$41 bcc LA73D LA70B dex lda #$82 sta BS.GetCharSep lsr sta BS.GetCharMax ldy #$00 jsr LAA2D dey sty BS.CMDBUF.LEN lda #$01 sta GP.FoundBITS LA723 lda BS.CMDBUF.LEN,y sta MLI.PATHBUF,y dey bpl LA723 dex jsr BS.GetCharSpaceSep bne LA73A bcc LA7A6 lda GP.AllowedBITS lsr bcs LA770 LA73A jmp BS.ERR10 LA73D lda GP.XCNUM cmp #$06 bne LA73A LA744 jmp LA7A6 LA747 jsr BS.GetKWInCmdBuf beq LA73A cmp #$41 beq LA79A jsr BS.TMPBUF3Reset sty XBC08 ldy #$13 sty XBC09 ldy #$40 sty GP.FoundBITS jsr LA96E bcs LA76F lda GP.ParamINPR cmp #$08 bcc LA79F LA76C lda #$02 sec LA76F rts LA770 lsr bcc LA795 jsr BS.GetCharSpaceSep beq LA73A dex lda #$82 sta BS.GetCharSep ldy #$01 jsr BS.GetPathInPathBuf dey dey sty MLI.PATHBUF lda #$03 sta GP.FoundBITS dex jsr BS.GetCharSpaceSep bne LA73A bcc LA7A6 LA795 jsr BS.GetCharSpaceSep beq LA73A LA79A jsr LA8F6 bcs LA76F LA79F jsr BS.GetCharSpaceSep bne LA73A bcs LA795 LA7A6 lda GP.ParamS beq LA76C cmp #$08 bcs LA76C lda GP.ParamD beq LA76C cmp #$03 bcs LA76C lda GP.AllowedBITS and #$21 lsr beq LA7C9 lda GP.STATE bne LA7C9 lda #$0F sec rts LA7C9 bcc LA80B lda GP.AllowedBITS+1 and #$04 beq LA80B lda GP.FoundBITS lsr bcs LA7E1 lda GP.AllowedBITS and #$90 beq BS.ERR10 bpl LA80B LA7E1 lda BS.CMDBUF eor #$2F beq LA7ED lda MLI.PFIXPTR beq LA806 LA7ED lda GP.FoundBITS+1 and #$04 beq LA80B bcs LA806 lda #$00 sta BS.CMDBUF.LEN sta BS.CMDBUF lda #$01 ora GP.FoundBITS sta GP.FoundBITS LA806 jsr BS.GetVolAtSxDy bcs LA849 LA80B lda GP.XCNUM asl tax lda BS.KW.JMP,x sta BS.KW.JMPADDR lda BS.KW.JMP+1,x sta BS.KW.JMPADDR+1 clc txa beq LA844 eor #$32 beq LA844 lda GP.AllowedBITS+1 and #$04 beq LA844 lda GP.FoundBITS lsr bcc LA844 jsr BS.GetFileInfo bcc LA844 cmp #$07 bne LA849 lda GP.AllowedBITS and #$08 bne LA844 lda #$06 rts LA844 jmp (BS.KW.JMPADDR) BS.ERR10 lda #$10 LA849 sec rts BS.GetVolAtSxDy lda GP.ParamS asl asl asl asl asl pha lda GP.ParamD eor #$01 lsr pla ror sta GP.MLIMRKEOFBUF.REFNUM lda #$01 sta GP.SBUFADR lda #$02 sta GP.SBUFADR+1 lda #MLI.C.ONLINE jsr GP.GOSYSTEM bcs LA849 lda GP.ParamD sta GP.VDEFDRV lda GP.ParamS sta GP.VDEFSLT lda BS.CMDBUF eor #$2F beq LA8F4 lda IO.LINEBUF+1 and #$0F adc #$02 sta IO.LINEBUF+1 adc BS.CMDBUF.LEN cmp #$40 tax lda #$10 bcs LA8F5 ldy BS.CMDBUF.LEN stx BS.CMDBUF.LEN LA89D dex dey bmi LA8AA lda BS.CMDBUF,y sta BS.CMDBUF,x jmp LA89D LA8AA lda #$2F sta BS.CMDBUF LA8AF sta BS.CMDBUF,x lda IO.LINEBUF,x dex bne LA8AF lda GP.XCNUM cmp #$0B beq LA8F4 cmp #$16 beq LA8F4 cmp #$08 beq LA8F4 lda MLI.PATHBUF tay clc adc IO.LINEBUF+1 cmp #$40 tax lda #$10 bcs LA8F5 stx MLI.PATHBUF LA8D9 dex dey bmi LA8E6 lda MLI.PATHBUF+1,y sta MLI.PATHBUF+1,x jmp LA8D9 LA8E6 lda #$2F sta MLI.PATHBUF+1 LA8EB sta MLI.PATHBUF+1,x lda IO.LINEBUF,x dex bne LA8EB LA8F4 clc LA8F5 rts LA8F6 jsr BS.TMPBUF3Reset ldy #$09 LA8FB cmp BS.KW.OPT,y beq LA935 dey bpl LA8FB cmp #$54 beq LA90A LA907 jmp BS.ERR10 LA90A lda #$04 and GP.AllowedBITS beq LA931 ora GP.FoundBITS sta GP.FoundBITS lda #$00 sta XBC08 lda #$12 sta XBC09 jsr BS.GetCharSpaceSep beq LA907 cmp #$24 beq LA984 cmp #$41 bcc LA96E jmp BS.GetFTypeASC LA931 sec lda #$0B rts LA935 lda BS.KW.OPT.PBITSLO,y beq LA955 and GP.AllowedBITS+1 beq LA931 cmp #$04 bne LA94F and GP.FoundBITS+1 bne LA955 lda #$01 sta GP.ParamD lda #$04 LA94F ora GP.FoundBITS+1 sta GP.FoundBITS+1 LA955 lda BS.KW.OPT.PBITSHI,y and #$03 sta XBC08 lda BS.KW.OPT.PBITSHI,y lsr lsr sta XBC09 jsr BS.GetCharSpaceSep beq LA9BE cmp #$24 beq LA984 LA96E stx GP.INPTR jsr LAA6A bcc LA97A bmi LA9C1 bcs LA9BE LA97A ldx GP.INPTR jsr BS.GetCharSpaceSep bne LA96E beq LA99D LA984 jsr BS.GetCharSpaceSep beq LA9BE LA989 stx GP.INPTR jsr LAABC bcc LA995 bmi LA9C1 bcs LA9BE LA995 ldx GP.INPTR jsr BS.GetCharSpaceSep bne LA989 LA99D ldx #$02 LA99F cpx XBC08 beq LA9AC lda BS.TMPBUF4,x bne LA9C1 dex bne LA99F LA9AC ldy XBC09 LA9AF lda BS.TMPBUF4,x sta GP.ParamA,y dey dex bpl LA9AF ldx GP.INPTR clc rts LA9BE jmp BS.ERR10 LA9C1 jmp LA76C BS.GetFTypeASC ldy #$00 LA9C6 sta BS.TMPBUF4,y iny cpy #$03 beq LA9D5 jsr BS.GetCharSpaceSep bne LA9C6 beq LA9BE LA9D5 stx GP.INPTR LA9D8 ldx #$00 lda XBC08 cmp #$0F beq LA9BE asl adc XBC08 tay LA9E6 lda BS.TMPBUF4,x eor BS.PRODOSTYPES.ASC,y asl bne LA9F7 iny inx cpx #$03 bne LA9E6 beq LA9FC LA9F7 inc XBC08 bne LA9D8 LA9FC lda #$0E sec sbc XBC08 tay lda BS.PRODOSTYPES.H,y sta GP.ParamT ldx GP.INPTR clc rts BS.GetPathInPathBuf jsr BS.GetCharUC sta MLI.PATHBUF,y iny cmp #$2C beq LAA45 cmp #$20 beq LAA45 cmp #$0D beq LAA56 cpy BS.GetCharMax bcc BS.GetPathInPathBuf ora #$00 rts BS.GetKWInCmdBuf ldx #$00 ldy #$00 LAA2D jsr BS.GetCharUC sta BS.CMDBUF,y iny cmp #$2C beq LAA45 cmp #$20 beq LAA45 cmp #$0D beq LAA56 cpy BS.GetCharMax bcc LAA2D LAA45 ora #$00 rts BS.GetCharSpaceSep lda #$20 sta BS.GetCharSep jsr BS.GetCharUC cmp #$2C beq LAA57 cmp #$0D LAA56 clc LAA57 rts BS.GetCharUC lda IO.LINEBUF,x and #$7F cmp #$61 bcc LAA63 and #$5F LAA63 inx cmp BS.GetCharSep beq BS.GetCharUC rts LAA6A cmp #$30 bcc LAA72 cmp #$3A bcc LAA76 LAA72 sec ora #$00 rts LAA76 and #$0F pha lda BS.TMPBUF4+2 cmp #$1A bcs LAAA2 ldx #$02 LAA82 lda BS.TMPBUF4,x pha dex bpl LAA82 jsr BS.TMPBUF3x2 jsr BS.TMPBUF3x2 ldx #$00 clc LAA92 pla adc BS.TMPBUF4,x sta BS.TMPBUF4,x inx txa eor #$03 bne LAA92 jsr BS.TMPBUF3x2 LAAA2 pla bcs LAAB8 adc BS.TMPBUF4 sta BS.TMPBUF4 bcc LAABB clc inc BS.TMPBUF4+1 bne LAABB inc BS.TMPBUF4+2 bne LAABB LAAB8 lda #$FF sec LAABB rts LAABC cmp #$30 bcc LAACC cmp #$3A bcc LAAD2 cmp #$41 bcc LAACC cmp #$47 bcc LAAD0 LAACC sec ora #$00 rts LAAD0 sbc #$06 LAAD2 and #$0F ldx #$03 LAAD6 jsr BS.TMPBUF3x2 bcs LAAB8 dex bpl LAAD6 ora BS.TMPBUF4 sta BS.TMPBUF4 rts BS.TMPBUF3x2 asl BS.TMPBUF4 rol BS.TMPBUF4+1 rol BS.TMPBUF4+2 rts BS.IsIntCmd ldx #$1F stx GP.XCNUM lda BS.CMDBUF eor #$2D bne LAB03 inc GP.XCNUM sta GP.XLEN bne LAB20 LAB03 ldy #$08 sty GP.XLEN LAB08 lda BS.KW.LEN,x bpl LAB13 and #$7F dey dec GP.XLEN LAB13 tax LAB14 lda BS.CMDBUF,y cmp BS.KW.TABLE,x bne LAB33 dex dey bpl LAB14 LAB20 lda GP.XCNUM asl tax lda BS.KW.PBITS-1,x sta GP.AllowedBITS+1 lda BS.KW.PBITS-2,x sta GP.AllowedBITS clc rts LAB33 ldy GP.XLEN dec GP.XCNUM ldx GP.XCNUM bne LAB08 dec GP.XCNUM sec jmp GP.EXTRNCMD BS.TMPBUF3Reset ldy #$00 sty BS.TMPBUF4 sty BS.TMPBUF4+1 sty BS.TMPBUF4+2 rts BS.KW.APPEND lda GP.FITYPE cmp #$FC beq BS.KW.02 cmp #$06 beq LABA3 cmp #$04 bne LAB63 jmp BS.KW.EXEC LAB63 cmp #$FF beq LAB6F cmp #$B3 beq LAB6F lda #$0D sec rts LAB6F pha jsr LB562 jsr LB36B lda #$00 sta GP.ParamA sta MLI.MEMTABL+19 sta MLI.MEMTABL+20 sta MLI.MEMTABL+21 sta MLI.MEMTABL+22 lda #$01 sta MLI.MEMTABL+23 lda #$20 sta GP.ParamA+1 pla cmp #$FF bne LABA6 sta GP.ParamT lda #$80 sta GP.FoundBITS+1 lda #$05 sta GP.FoundBITS LABA3 jmp BS.KW.BRUN LABA6 sec jsr MON.IIGSID bcs LABA3 jmp LB099 BS.KW.X05 jsr LA411 lda AS.HIMEM+1 sta BS.AS.HIMEMSave ldx XBBEA dex stx AS.HIMEM+1 jsr LAC22 ldx BS.AS.HIMEMSave stx AS.HIMEM+1 bcs LAC33 jsr AS.CLEAR1 jsr LA480 lda #$00 beq LABE6 BS.KW.02 lda #$00 sta GP.IFILACTV sta AS.ERRNUM lda GP.FoundBITS lsr bcc LABF4 jsr LAC1D bcs LAC33 jsr AS.CLEAR1 LABE6 sta AS.ERRFLG jsr LACB6 jsr BS.SaveCSWKSW jsr LABF4 jmp AS.NEXTSTMT LABF4 jsr AS.NORMAL lda #$A3 sta X9F65 lda #$FF sta GP.XCNUM sta ZP.PROMPT ldx #$04 jsr BS.SetState jmp BS.ERR10 BS.KW.RESTORE jsr LAC1D bcs LAC33 BS.ENTRY jsr AS.CLEAR1 jsr BS.SetState0 lda #$00 sta ZP.CH jmp AS.RESTART1 LAC1D jsr LB562 bcs LAC33 LAC22 jsr LAC34 bcs LAC33 sty AS.ARRAYSTART sty AS.VARSTART sty AS.ARRAYEND stx AS.ARRAYSTART+1 stx AS.VARSTART+1 stx AS.ARRAYEND+1 LAC33 rts LAC34 lda #$01 ldx #$FC jsr BS.CheckFTypeXAccessA bcs LAC33 lda #MLI.C.GETEOF jsr GP.GOSYSTEM bcs LAC33 lda AS.PGRMSTART sta GP.MLIRW.DATAPTR adc GP.SBUFADR sta GP.ParamA lda AS.PGRMSTART+1 sta GP.MLIRW.DATAPTR+1 adc GP.SBUFADR+1 sta GP.ParamA+1 bcs LAC5E cmp AS.HIMEM+1 LAC5E lda #$0E bcs LAC33 ldx GP.SBUFADR ldy GP.SBUFADR+1 jsr BS.ReadXYBytes bcs LAC33 jsr BS.FileClose bcs LAC33 jsr LAC80 ldx GP.ParamA+1 ldy GP.ParamA stx AS.PGRMEND+1 sty AS.PGRMEND rts LAC80 sec lda AS.PGRMSTART sbc GP.FIAUXTYPE sta ZP.A1L lda AS.PGRMSTART+1 sbc GP.FIAUXTYPE+1 sta ZP.A1H ora ZP.A1L clc beq LACD9 ldx AS.PGRMSTART lda AS.PGRMSTART+1 LAC98 stx ZP.PCL sta ZP.PCH ldy #$01 lda (ZP.PCL),y dey ora (ZP.PCL),y beq LACD9 lda (ZP.PCL),y adc ZP.A1L tax sta (ZP.PCL),y iny lda (ZP.PCL),y adc ZP.A1H sta (ZP.PCL),y clc bcc LAC98 LACB6 lda GP.FoundBITS+1 and #$08 clc beq LACD9 lda GP.ParamAT sta AS.LINNUM lda GP.ParamAT+1 sta AS.LINNUM+1 jsr AS.FINDLINE clc lda AS.LOWTR adc #$FF sta AS.TXTPTR lda AS.LOWTR+1 adc #$FF sta AS.TXTPTR+1 clc LACD9 rts BS.KW.STORE bcc LACFE lda #$FC sta GP.ParamT sta GP.FITYPE lda #$C3 sta GP.FIACCESS lda AS.PGRMSTART sta GP.CRAUXTYPE sta GP.FIAUXTYPE lda AS.PGRMSTART+1 sta GP.CRAUXTYPE+1 sta GP.FIAUXTYPE+1 jsr BS.CreateFileOrDir bcs LAD47 LACFE lda #$02 ldx #$FC jsr BS.CheckFTypeXAccessA bcs LAD47 lda AS.PGRMEND sec sbc AS.PGRMSTART tax sta GP.SBUFADR lda AS.PGRMEND+1 sbc AS.PGRMSTART+1 tay sta GP.SBUFADR+1 lda #$00 sta GP.SBUFADR+2 lda AS.PGRMSTART sta GP.MLIRW.DATAPTR lda AS.PGRMSTART+1 sta GP.MLIRW.DATAPTR+1 jsr BS.WriteXYBytes bcs LAD47 lda #MLI.C.SETEOF jsr GP.GOSYSTEM bcs LAD47 jsr BS.FileClose bcs LAD47 lda AS.PGRMSTART+1 ldx AS.PGRMSTART cmp GP.FIAUXTYPE+1 bne LAD48 cpx GP.FIAUXTYPE clc bne LAD48 LAD47 rts LAD48 stx GP.FIAUXTYPE sta GP.FIAUXTYPE+1 jmp BS.SetFileInfoNoDate BS.KW.CREATE lda #$00 sta GP.CRAUXTYPE sta GP.CRAUXTYPE+1 lda GP.FoundBITS and #$04 bne BS.CreateFileOrDir lda #$0F sta GP.ParamT BS.CreateFileOrDir lda GP.EXECACTV asl lda #$00 adc GP.OPENCNT cmp #$08 bcs LAD8D lda GP.ParamT sta GP.CRTYPE ldx #$C3 ldy #$01 cmp #$0F bne LAD82 ldy #$0D LAD82 stx GP.CRACCESS sty GP.CRSTTYPE lda #MLI.C.CREATE jmp GP.GOSYSTEM LAD8D lda #$0C rts BS.KW.RENAME lda GP.FoundBITS lsr lsr lda #MLI.C.RENAME bcs LAD9E jmp BS.ERR10 BS.KW.DELETE lda #MLI.C.DESTROY LAD9E jmp GP.GOSYSTEM BS.KW.LOCK jsr BS.GetFileInfo lda GP.FIACCESS and #$3C ora #$01 sta GP.FIACCESS jmp BS.SetFileInfo BS.KW.UNLOCK jsr BS.GetFileInfo lda #$C3 ora GP.FIACCESS sta GP.FIACCESS jmp BS.SetFileInfo BS.KW.PREFIX lda GP.FoundBITS+1 and #$04 sec bne LADCB lda GP.FoundBITS lsr LADCB lda #$C6 bcs LAD9E lda ZP.PROMPT beq LADF0 jsr BS.CROUT ldx #$00 LADD8 cpx BS.CMDBUF.LEN beq LADE8 lda BS.CMDBUF,x ora #$80 jsr BS.COUT inx bne LADD8 LADE8 jsr BS.CROUT jsr BS.CROUT clc rts LADF0 lda #$FF sta GP.PFXACTV clc rts *-------------------------------------- MAN SAVE usr/src/basic.15/basic.s.b LOAD usr/src/basic.15/basic.s ASM