diff --git a/.Docs/.TEMPLATE.S.txt b/.Docs/.TEMPLATE.S.txt index 9a3f3b51..71f9b28d 100644 --- a/.Docs/.TEMPLATE.S.txt +++ b/.Docs/.TEMPLATE.S.txt @@ -16,7 +16,7 @@ ZS.START * MyPtr .BS 2 ZS.END .ED *--------------------------------------- -* File Header (16 Bytes) +* File Header (16 Bytes) *--------------------------------------- CS.START cld jmp (.1,x) @@ -84,7 +84,7 @@ CS.END * Put your constant here : * MSG.TEST .AZ "Test Message" *--------------------------------------- -* Per Process DATA segement (0 filled before INIT) +* Per Process DATA segment (0 filled before INIT) *--------------------------------------- .DUMMY .OR 0 diff --git a/A2osX.S.QC.txt b/A2osX.S.QC.txt index df8b02f5..552981c5 100644 --- a/A2osX.S.QC.txt +++ b/A2osX.S.QC.txt @@ -97,23 +97,23 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD jsr MLI .DA #MLIOPEN - .DA MLIOPEN00 + .DA MLIOPENK bcs .9 - lda MLIOPEN00+5 - sta MLIREAD00+1 - sta MLICLOSE00+1 + lda MLIOPENK+5 + sta MLIREADK+1 + sta MLICLOSEK+1 jsr MLI .DA #MLIREAD - .DA MLIREAD00 + .DA MLIREADK php pha jsr MLI .DA #MLICLOSE - .DA MLICLOSE00 + .DA MLICLOSEK pla plp @@ -148,18 +148,18 @@ A2osX.QC.PrintYA MLISETPREFIX00 .DA #1 .DA A2osX.QC.Prefix *-------------------------------------- -MLIOPEN00 .DA #3 +MLIOPENK .DA #3 .DA A2osX.QC.Prefix .DA $C00 .BS 1 *-------------------------------------- -MLIREAD00 .DA #4 +MLIREADK .DA #4 .BS 1 .DA $2000 .DA $8000 .BS 2 *-------------------------------------- -MLICLOSE00 .DA #1 +MLICLOSEK .DA #1 .BS 1 *-------------------------------------- SYSKERNEL >PSTR "SYS/KERNEL" diff --git a/A2osX.S.txt b/A2osX.S.txt index 4ea214a1..00fd86cd 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 @@ -12,20 +11,25 @@ AUTO 4,1 .INB INC/MONITOR.I .INB INC/MLI.I .INB INC/MLI.E.I + .INB INC/ZP.I + .INB INC/GFX.I *-------------------------------------- TmpPtr1 .EQ $0 main & aux ZP TmpPtr2 .EQ $2 main & aux ZP *-------------------------------------- +A2osX.LOGOLOAD .EQ $2000 A2osX.KMLOAD .EQ $2000 A2osX.KMMAXLEN .EQ $6000 A2osX.OpenBuff1 .EQ $8000 1024 Buffer for MLIOPEN01 A2osX.OpenBuff2 .EQ $8400 1024 Buffer for MLIOPEN02 A2osX.ReadBuff .EQ $8800 512 Buffer for MLIREAD01 Boot.Prefix .EQ $8A00 MLI.MAXPATH -KM.Filename .EQ $8A80 MLI.MAXPATH +LOGO.Filename .EQ $8A80 MLI.MAXPATH +KM.Filename .EQ $8B00 MLI.MAXPATH *-------------------------------------- * Kernel Stage 0 *-------------------------------------- +SYSTEM.START .EQ * .PH $1000 A2osX.Init0 >LDYAI $2000 @@ -67,10 +71,10 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest >LDYAI MSG.SYSMEM.KO jsr PrintFYA bra * - -.1 lda #$8C Reset 80 col screen ($0C:HOME) - jsr $C300 - +*-------------------------------------- +.1 jsr A2osX.Prefix + jsr A2osX.Screen80 Reset 80 col screen ($0C:HOME) + >LDYAI MSG.INIT0 jsr PrintFYA @@ -104,26 +108,6 @@ A2osX.CloseAll stz LEVEL Back To FILE LEVEL 0 .DA MLICLOSE01 bcs * *-------------------------------------- -A2osX.Prefix >LDYAI MSG.BOOTPREFIX - jsr PrintFYA - jsr MLI - .DA #MLIGETPREFIX - .DA MLIGETPREFIX01 - bcs * - ldx Boot.Prefix - stx A2osX.QC.B.Start+4 - - ldy #1 - -.1 lda Boot.Prefix,y - sta A2osX.QC.B.Start+4,y - ora #$80 - jsr COUT - iny - dex - bne .1 - jsr CROUT -*-------------------------------------- A2osX.RamDrv >LDYAI MSG.RAMDRV jsr PrintFYA @@ -167,12 +151,179 @@ A2osX.EnumKM >LDYAI MSG.KMENUM *-------------------------------------- A2osX.MLIQuit >LDYAI MSG.INIT0OK jsr PrintFYA + >DEBUG >DEBUGOA jsr MLI .DA #MLIQUIT .DA MLIQUIT01 bra * *-------------------------------------- +A2osX.Prefix >LDYAI MSG.BOOTPREFIX + jsr PrintFYA + jsr MLI + .DA #MLIGETPREFIX + .DA MLIGETPREFIX01 + bcs * + + ldx Boot.Prefix + stx A2osX.QC.B.Start+4 + + ldy #1 + +.1 lda Boot.Prefix,y + sta A2osX.QC.B.Start+4,y + iny + dex + bne .1 + + rts +*-------------------------------------- +A2osX.Screen80 lda #$8C + jsr $C300 + + ldx Boot.Prefix + +.1 lda Boot.Prefix,x + sta LOGO.Filename,x + dex + bpl .1 + + ldx Boot.Prefix + ldy #0 + +.2 inx + iny + lda A2osX.LOGO,y + sta LOGO.Filename,x + cpy A2osX.LOGO + bne .2 + + jsr MLI + .DA #MLIOPEN + .DA MLIOPEN00 + bcs .99 + + lda MLIOPEN00+5 + sta MLIREAD00+1 + sta MLICLOSE00+1 + + jsr MLI + .DA #MLIREAD + .DA MLIREAD00 + bcs .98 + + jsr .98 + bra A2osX.ScreenDLGR + +.98 jsr MLI + .DA #MLICLOSE + .DA MLICLOSE00 +.99 rts +*-------------------------------------- +A2osX.ScreenDLGR + lda #20 + sta WNDTOP + sta CV + jsr VTAB + + sta CLRHIRES + sta SETMIXED + sta CLRTEXT + sta SET80STORE + sta SETDHIRES + + lda #A2osX.LOGOLOAD+S.BM + sta TmpPtr1 + lda /A2osX.LOGOLOAD+S.BM + sta TmpPtr1+1 + + ldx #0 + +.1 lda SCR.BASEL,x + sta TmpPtr2 + lda SCR.BASEH,x + sta TmpPtr2+1 + + ldy #0 + +.2 lda (TmpPtr1),y + + pha + and #$f + phy + tay + lda PALETTE.AUX,y + ply + sta SETPAGE2 + sta (TmpPtr2),y + pla + lsr + lsr + lsr + lsr + sta CLRPAGE2 + sta (TmpPtr2),y + + iny + cpy #40 + bne .2 + + lda TmpPtr1 + clc + adc #80 + sta TmpPtr1 + bcc .3 + inc TmpPtr1+1 + +.3 ldy #0 + +.4 lda (TmpPtr1),y + + pha + and #$f + phy + tay + lda PALETTE.AUX,y + ply + asl + asl + asl + asl + sta SETPAGE2 + ora (TmpPtr2),y + sta (TmpPtr2),y + pla + and #$f0 + sta CLRPAGE2 + ora (TmpPtr2),y + sta (TmpPtr2),y + + iny + cpy #40 + bne .2 + + lda TmpPtr1 + clc + adc #80 + sta TmpPtr1 + bcc .3 + inc TmpPtr1+1 + + + + lda TmpPtr1 + clc + adc #80 + sta TmpPtr1 + bcc .7 + inc TmpPtr1+1 + +.7 inx + cpx #20 + bne .1 + + rts +*-------------------------------------- DisableRamDRV php sei lda DEVPTRS3D2 @@ -377,7 +528,7 @@ LoadKM ldx Boot.Prefix .DA MLICLOSE02 .99 rts *-------------------------------------- - .INB USR/SRC/X.PRINTF.S + .INB USR/SRC/SHARED/X.PRINTF.S *-------------------------------------- MSG.INIT0 .AZ "A2osX[Stage0]:Init\n" MSG.SYSMEM .AZ "Checking System Memory..." @@ -405,6 +556,19 @@ MLIONLINE01 .DA #2 .DA #0 .DA MLIONLINE01BUF MLIONLINE01BUF .BS 256 +*-------------------------------------- +MLIOPEN00 .DA #3 For DIR listing + .DA LOGO.Filename + .DA A2osX.OpenBuff1 + .BS 1 +MLIREAD00 .DA #4 + .BS 1 + .DA A2osX.LOGOLOAD + .DA 2048 + .BS 2 +MLICLOSE00 .DA #1 + .BS 1 +*-------------------------------------- MLIOPEN01 .DA #3 For DIR listing .DA Boot.Prefix .DA A2osX.OpenBuff1 @@ -416,6 +580,7 @@ MLIREAD01 .DA #4 .BS 2 MLICLOSE01 .DA #1 .BS 1 +*-------------------------------------- MLIOPEN02 .DA #3 .DA KM.Filename .DA A2osX.OpenBuff2 @@ -427,19 +592,29 @@ MLIREAD02 .DA #4 .BS 2 MLICLOSE02 .DA #1 .BS 1 +*-------------------------------------- MLIQUIT01 .DA #4 .DA #0 .DA 0 .DA #0 .DA 0 *-------------------------------------- +A2osX.LOGO >PSTR "A2OSX.LOGO" SYS >PSTR "SYS/" KM.PREFIX >PSTR "KM." +*-------------------------------------- +SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0 +SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07 +*-------------------------------------- +PALETTE.AUX .HS 00080109020A030B040C050D060E070F *-------------------------------------- .EP *-------------------------------------- A2osX.QC.B.Start .INB USR/SRC/A2OSX.S.QC + .LIST ON +SYSTEM.END .EQ * + .LIST OFF *-------------------------------------- MAN SAVE USR/SRC/A2OSX.S diff --git a/BIN/BMP2PIX.S.txt b/BIN/BMP2PIX.S.txt index ab14f8ae..8ce231e7 100644 --- a/BIN/BMP2PIX.S.txt +++ b/BIN/BMP2PIX.S.txt @@ -298,6 +298,7 @@ CS.RUN.24 lda #S.BM.F.BBP4 stx ZPOutputRowBytes+1 jsr CS.RUN.GetOutputBuf + bcs CS.RUN.RTS jsr DEBUG.ClrScr @@ -350,8 +351,24 @@ CS.RUN.24.LOOP inc ZPLineCount .5 jsr CS.RUN.GetNearestColor + pha jsr DEBUG.PLOT - + + lda ZPCntX + lsr + tay + + pla + bcc .6 + sta (ZPOutputBuf),y + bra .2 + +.6 asl + asl + asl + asl + ora (ZPOutputBuf),y + sta (ZPOutputBuf),y bra .2 .8 jsr CS.RUN.WRITE @@ -572,7 +589,14 @@ CS.RUN.GetOutputBuf sta ZPPtr1+1 bra .1 -.8 lda ZPPtr1 +.8 >LDYA.G ZPPtr1 + >SYSCALL Getmem + bcs .9 + >STYA ZPOutputBuf + txa + >STA.G hOutputBuf + + lda ZPPtr1 >STA.G OutputDataLen clc adc ZPOutputBuf @@ -584,7 +608,7 @@ CS.RUN.GetOutputBuf sta ZPOutputBuf+1 clc - rts +.9 rts *-------------------------------------- CS.RUN.WRITE >PUSHWI S.BM >PUSHEA.G PIX.Header diff --git a/BIN/USERADD.S.txt b/BIN/USERADD.S.txt index c1e2b00a..7e8804d1 100644 --- a/BIN/USERADD.S.txt +++ b/BIN/USERADD.S.txt @@ -4,6 +4,9 @@ NEW .OP 65C02 .OR $2000 .TF BIN/USERADD +*-------------------------------------- +USER.MAX .EQ 16 +PASS.MAX .EQ 64 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I @@ -33,7 +36,7 @@ CS.START cld .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data SegmentSize - .DA #16 Stack Size + .DA #64 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- @@ -105,7 +108,7 @@ CS.RUN.ROOT sec jsr CS.RUN.GetStr bcs .9 - + >PUSHEA.G PW+S.PW.PASSWD >PUSHW ZPStrPtr >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 @@ -141,7 +144,7 @@ CS.RUN.GetStr stz ZPStrLen >SYSCALL putchar bra .1 -.2 cmp #3 +.2 cmp #3 Ctrl-C beq .9 cmp #C.CR @@ -162,7 +165,12 @@ CS.RUN.GetStr stz ZPStrLen >SYSCALL printf bra .1 -.8 clc +.8 ldy ZPStrLen + lda #0 + sta (ZPStrPtr),y + + clc + .9 rts *-------------------------------------- * Called if option S.PS.F.EVENT enabled in Header diff --git a/INC/GFX.I.txt b/INC/GFX.I.txt index 3a7b6446..36f2562d 100644 --- a/INC/GFX.I.txt +++ b/INC/GFX.I.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF *-------------------------------------- * GFX Devices diff --git a/SYS/KERNEL.S.OSD.txt b/SYS/KERNEL.S.OSDX.txt similarity index 96% rename from SYS/KERNEL.S.OSD.txt rename to SYS/KERNEL.S.OSDX.txt index 5056f8e3..ca89f143 100644 --- a/SYS/KERNEL.S.OSD.txt +++ b/SYS/KERNEL.S.OSDX.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- ZPCmdPtr .EQ ZPDRV ZPDstBMPtr .EQ ZPDRV+2 @@ -831,6 +830,6 @@ SHIFT8.L7 .DA #%00000000,#%10000000,#%00000001,#%10000001,#%00000010,#%10000010 .DA #%00111100,#%10111100,#%00111101,#%10111101,#%00111110,#%10111110,#%00111111,#%10111111 *-------------------------------------- MAN -SAVE USR/SRC/SYS/KERNEL.S.OSD +SAVE USR/SRC/SYS/KERNEL.S.OSDX LOAD USR/SRC/SYS/KERNEL.S ASM diff --git a/SYS/KERNEL.S.SLIST.txt b/SYS/KERNEL.S.SLISTX.txt similarity index 93% rename from SYS/KERNEL.S.SLIST.txt rename to SYS/KERNEL.S.SLISTX.txt index 3a02cd23..4455daa4 100644 --- a/SYS/KERNEL.S.SLIST.txt +++ b/SYS/KERNEL.S.SLISTX.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- X.SLIST jmp (.1-SYS.SListGetData,x) .1 .DA SLIST.GetData @@ -477,6 +476,6 @@ SLIST.BytePtr .BS 1 SLIST.BlockPtr .BS 1 *-------------------------------------- MAN -SAVE USR/SRC/SYS/KERNEL.S.SLIST +SAVE USR/SRC/SYS/KERNEL.S.SLISTX LOAD USR/SRC/SYS/KERNEL.S ASM diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index c205c51c..249dab03 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -19,7 +19,7 @@ AUTO 4,1 .INB USR/SRC/SYS/KERNEL.S.DEF .INB USR/SRC/SYS/KERNEL.S.INIT - .INB USR/SRC/X.PRINTF.S + .INB USR/SRC/SHARED/X.PRINTF.S A2osX.MAIN .PH A2osX.EndTables .INB USR/SRC/SYS/KERNEL.S.CORE @@ -30,8 +30,8 @@ Mem.MLoMem .EQ * .LIST OFF .EP A2osX.AUX .PH $1000 - .INB USR/SRC/SYS/KERNEL.S.OSD - .INB USR/SRC/SYS/KERNEL.S.SLIST + .INB USR/SRC/SYS/KERNEL.S.OSDX + .INB USR/SRC/SYS/KERNEL.S.SLISTX .INB USR/SRC/SYS/KERNEL.S.PWDX .LIST ON Mem.XLoMem .EQ *