From 60be01ed6c43ace241b8027d86ba329b10209cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 15 Jun 2016 08:21:42 +0200 Subject: [PATCH] Kernel Rewrite #6.1 --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.DEV.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes DRV/DHGR.DRV.S.txt | 41 +++++--- INC/LIBGFX.I.txt | 19 +++- LIB/LIBGFX.S.txt | 43 +++++++- README.md | 8 +- SBIN/DESKTOP.S.txt | 19 ++-- SBIN/GFX/MOUSE.PTR.S.txt | 33 ------ SYS/KERNEL.S.BIN.txt | 139 ------------------------ SYS/KERNEL.S.REL.txt | 152 +++++++++++++++++++++++++++ SYS/KERNEL.S.txt | 1 + ScreenShot.bmp => ScreenShot.IP1.bmp | Bin ScreenShot.IP2.bmp | Bin 0 -> 216118 bytes _MAKEDIR.txt | 4 +- 15 files changed, 259 insertions(+), 200 deletions(-) delete mode 100644 SBIN/GFX/MOUSE.PTR.S.txt create mode 100644 SYS/KERNEL.S.REL.txt rename ScreenShot.bmp => ScreenShot.IP1.bmp (100%) create mode 100644 ScreenShot.IP2.bmp diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 2a0bb6601fe603f51ff14c9e5f5fac94f55a6c00..22cb1241d9f5ca5554a32193645c0ea17b0bb0a6 100644 GIT binary patch delta 819 zcmXX?T}V@57(QoiIm^;=&NI{bzW%fZp)S3c(jS4kE+m4)h_qv%X*g%lMO}nH+fk>U zp&ml$rZrGn?5o+J?!*ZEfqo3UNiz)de0sC&ri*UuJ4e3{-sk;)-{SDVvA* zQ4&Z1dn6n4He$PEYiEvrjP+r}2r0AC40!~joII?FAx#94(H}vb{_s8o_hCqfsA0kq zImUXCArv}{tY|DH8PqKIP8kW}j$v#zIgDf&m*#deovF*ypGUAb^SM5$_vxFwG?>T} zL_rMmGr6B6Ty}*GGr3OVu46L0f-hl>1<}pIoqp^bz?8b$8^-#p4K8zM$DO-v4@-TM p*DCn&x0SqkuE4Q>Q_c={04UKv#|fhB0Byj#J%`~NKmC`l{tu?yNPqwU delta 773 zcmXYvO-vI(7>0M27F)_s6)4*ZWyYeh9yA1vg`g4=U`-@qqQQgWCKl))@t^@QQJT=z zgKPurfy9ezBP7+1E;KQo2*d;-Q0M_qULc6e9BlC7!5DRR%N*vJ`DWgkd6J24S)yAO zwajdqgU2f6a0RA_pZ zvqmR4PT=u|2Df(tJf;bQnFG?u_6|K*ulj_Dn=zVFDt{S0=e3e${BrlFTPh-$&v64* zBH0MOoEs=2QZZ3)VH@$0-?*5_4Y3y6$6fe*k4{oHB0q_R%vSQQh{!);-rF7m>xhNN zl=PaD0wWC)<#k@IO&TK9X^q1 z5&6F8OLsh5d^5s>{Ock71OLJn#G@( zKf*_0%5_jK&UGQ&g;so7;uGS1ND82_encP8hNd}w+R0--5;@$9L?n_U+z7*_rhSvcIA?MNss`T(uQWR&xR;C}7r==|kDF^K&jQyI-%cvo5b`-#c}x z0UWPtMV#QHyCQxR=|=?}?Ke%GS8vo$-D?07vYmB*I14NbcKVTx=70{!Fq}aD@gA7@ H1)BZ?PGB^k diff --git a/A2OSX.DEV.po b/A2OSX.DEV.po index f7c90bab750e84c8abb1c0cbbd8a59f5977aa9a2..4628d0af1ac1bcd2bda6f2d8ce32df60ff914bed 100644 GIT binary patch delta 211 zcmZp8z|ru4V}mM7FcSkCg9PJcPd{e{B*4$kz{tSB#Bf|eN<^9AF$0*v#BkZk(+^1% z13w2gWt$n9Iv5wRu`w~!PiEv%+^o#=kWu|HnhmAO42RWuAqGR4ObkrwK)pACiqY)B Vs+d{5*^sB*kcV-*ArI44c>s)WBbopJ delta 50 zcmZp8z|ru4V}mLS8v_Fyg9PJdMy9Kbi`dwh82@i(;$dQHb`WTH5MbQyAi#7$ezSvs G4HE!SlnkT* diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 15a7cbfc4cacb61d4a4e97eb6db92f1505df195c..caa6a8dc635890d0fef085f0f924a76c9a14ac1e 100644 GIT binary patch delta 6064 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 ZPBitBlt + lda (ZPBitBlt) rts *-------------------------------------- DRV.CS.END *-------------------------------------- +Shift.0 .HS 0000000000000000 + .HS 0120040810204000 +*-------------------------------------- +Shift.1 .HS 0000000000000000 + .HS 0000000000000001 +*-------------------------------------- +*-------------------------------------- Mono.NMasks .DA #%01111110 .DA #%01111101 .DA #%01111011 diff --git a/INC/LIBGFX.I.txt b/INC/LIBGFX.I.txt index eee49fb3..f654d3d2 100644 --- a/INC/LIBGFX.I.txt +++ b/INC/LIBGFX.I.txt @@ -3,10 +3,23 @@ PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 - .LIST OFF - .OP 65C02 + .LIST OFF + .OP 65C02 *-------------------------------------- -LIBGFX.test .EQ 4 +S.BITMAP.F .EQ 0 +S.BITMAP.F.BBP1 .EQ %00000001 +S.BITMAP.F.BBP2 .EQ %00000010 +S.BITMAP.F.BBP4 .EQ %00000100 +S.BITMAP.F.BBP8 .EQ %00001000 +S.BITMAP.RowBytes .EQ 1 +S.BITMAP.W .EQ 4 +S.BITMAP.H .EQ 6 +S.BITMAP.DATA .EQ 8 +*-------------------------------------- +LIBGFX.InitDevA .EQ 4 +LIBGFX.CUR.show .EQ 6 +LIBGFX.CUR.Hide .EQ 8 +LIBGFX.CUR.Select .EQ 10 *-------------------------------------- MAN SAVE INC/LIBGFX.I diff --git a/LIB/LIBGFX.S.txt b/LIB/LIBGFX.S.txt index 66d30235..9d8b5f45 100644 --- a/LIB/LIBGFX.S.txt +++ b/LIB/LIBGFX.S.txt @@ -12,6 +12,8 @@ AUTO 6 .INB INC/A2OSX.I .INB INC/LIBGFX.I *-------------------------------------- +ZPPtr1 .EQ ZPLIB +*-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld @@ -28,14 +30,53 @@ CS.START cld *-------------------------------------- .1 .DA LIB.LOAD .DA LIB.UNLOAD -*-------------------------------------- + .DA InitDevA + .DA CUR.Show + .DA CUR.Hide + .DA CUR.Select .DA 0 *-------------------------------------- LIB.LOAD LIB.UNLOAD clc rts + +*-------------------------------------- +InitDevA sta hDev + >SYSCALL SYS.GetDevInfoA + bcs .9 + >STYA ZPPtr1 + + + clc + rts + +.9 stz hDev + sec + rts +*-------------------------------------- + .INB LIB/LIBGFX.S.CUR *-------------------------------------- CS.END +hDev .BS 1 +*-------------------------------------- +CUR.Arrow.And .DA #%00000001 + .DA #%00000011 + .DA #%00000101 + .DA #%00001001 + .DA #%00010001 + .DA #%00100011 + .DA #%01110101 + .DA #%00011000 +*-------------------------------------- +CUR.Arrow.Ora .DA #%00000000 + .DA #%00000000 + .DA #%00000010 + .DA #%00000110 + .DA #%00001110 + .DA #%00011100 + .DA #%00001000 + .DA #%00000000 +*-------------------------------------- MAN SAVE LIB/LIBGFX.S ASM diff --git a/README.md b/README.md index d68b490d..1ac7ede0 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # A2osX Multi-Tasking OS for Apple II ## Requires : -Enh IIe (65c02 cpu) with 128k, //c, IIgs +Enhanced IIe (65c02 cpu) with 128k, //c, IIgs + ## General Information: -**A2OSX.BOOT.po** : 140k A2osX boot disk will all binaries -**A2OSX.SRC.po** : 800k S-C MASM boot disk with all sources +**A2OSX.BOOT.po** : 140k A2osX boot disk with all binaries +**A2OSX.DEV.po** : 140k A2osX disk will ASM binaries & INClude files +**A2OSX.SRC.po** : 800k S-C MASM boot disk with all sources OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR. (OApple+shift+1,OApple+shift+2,OApple+shift+3 on FR keyboard) diff --git a/SBIN/DESKTOP.S.txt b/SBIN/DESKTOP.S.txt index 6ca80e1e..3fdc213e 100644 --- a/SBIN/DESKTOP.S.txt +++ b/SBIN/DESKTOP.S.txt @@ -10,6 +10,7 @@ AUTO 6 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I + .INB INC/LIBGFX.I *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -29,6 +30,7 @@ CS.START cld .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT +L.LIBGFX .DA LIBGFX L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.MSG.INIT .DA MSG.INIT @@ -37,6 +39,10 @@ L.MSG.INIT .DA MSG.INIT CS.INIT >LDYA L.MSG.INIT >SYSCALL SYS.PSTROutYA + >LDYA L.LIBGFX + >SYSCALL SYS.LoadLibYA + sta hLIBGFX + >LDYA L.DEVNAME.GFX >SYSCALL SYS.GetDevByNameYA bcc .10 @@ -80,6 +86,9 @@ CS.INIT >LDYA L.MSG.INIT pla sta pDev + lda hDevGFX + >LIBCALL hLibGFX,LIBGFX.InitDevA + * jmp .8 lda #15 @@ -146,14 +155,10 @@ CS.DOEVENT ldy #S.EVT.hDEV cmp hDevMouse bne .99 - lda (pEvent) - and #S.EVT.F.MOUSE - beq .99 - ldy #S.EVT.DATALO lda (pEvent),y and #4 mouse move - beq .99 + beq .98 >PUSHBI 15 COLOR @@ -173,7 +178,7 @@ CS.DOEVENT ldy #S.EVT.hDEV ldx #DEVMGR.GFX.SETPIXEL jsr GoDevGFX - clc +.98 clc rts .99 sec @@ -188,7 +193,9 @@ GoDevMouse jmp (pDevMouse) CS.END DEVNAME.GFX >PSTRING "GFX" DEVNAME.MOUSE >PSTRING "MOU1" +LIBGFX >PSTRING "libgfx.o" MSG.INIT >PSTRING "DESKTOP:Init...\n" +hLibGFX .BS 1 hDevGFX .BS 1 pDevGFX .BS 2 hDevMouse .BS 1 diff --git a/SBIN/GFX/MOUSE.PTR.S.txt b/SBIN/GFX/MOUSE.PTR.S.txt deleted file mode 100644 index 6ab52969..00000000 --- a/SBIN/GFX/MOUSE.PTR.S.txt +++ /dev/null @@ -1,33 +0,0 @@ -PR#3 -PREFIX /A2OSX.SRC -NEW -INC 1 -AUTO 6 - .LIST OFF - .OP 65C02 - .OR $2000 - .TF /A2OSX.BOOT/SBIN/GFX/MOUSE.PTR -*-------------------------------------- - -*-------------------------------------- -Arrow.And .DA #%00000001 - .DA #%00000011 - .DA #%00000101 - .DA #%00001001 - .DA #%00010001 - .DA #%00100011 - .DA #%01110101 - .DA #%00011000 -*-------------------------------------- -Arrow.Ora .DA #%00000000 - .DA #%00000000 - .DA #%00000010 - .DA #%00000110 - .DA #%00001110 - .DA #%00011100 - .DA #%00001000 - .DA #%00000000 -*-------------------------------------- -MAN -SAVE SBIN/GFX/MOUSE.PTR.S -ASM \ No newline at end of file diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 5471fc9a..f672375f 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -136,145 +136,6 @@ S.LoadBinA.hMem .BS 1 S.LoadBinA.AuxType .BS 2 S.LoadBinA.FileLen .BS 2 *-------------------------------------- -* S.BinRelocateYA : -* YA = Ptr to Code -* R.AX = Code Length -* R.BX = Range Start address to relocate -* R.CX = Range End address to relocate -* R.DX = offset to apply to all abs addresses between R.BX and R.CX -*-------------------------------------- -S.BinRelocateYA >STYA ZPQuickPtr1 - ldy #H.BIN.JMP relocate Main JMP - lda (ZPQuickPtr1),y - clc - adc R.DL - sta (ZPQuickPtr1),y - - iny - lda (ZPQuickPtr1),y - adc R.DH - sta (ZPQuickPtr1),y - - ldy #H.BIN.RELOC.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes) - bra S.JmpRelocate - -S.DrvRelocateYA >STYA ZPQuickPtr1 - ldy #0 - -S.JmpRelocate lda (ZPQuickPtr1),y Start Relocate JMP table - tax - iny - ora (ZPQuickPtr1),y - beq S.CodeRelocate $0000 = end of table - - dey - txa - clc - adc R.DL - sta (ZPQuickPtr1),y - - iny - lda (ZPQuickPtr1),y - adc R.DH - sta (ZPQuickPtr1),y - - iny - - bra S.JmpRelocate - -S.CodeRelocate lda ZPQuickPtr1 - clc - adc R.AL Make ZPQuickPtr2=End of code - sta ZPQuickPtr2 =ZPQuickPtr1+AX (code len) - lda ZPQuickPtr1+1 - adc R.AH - sta ZPQuickPtr2+1 - - iny - tya add current offset in Y to Ptr - clc - adc ZPQuickPtr1 - sta ZPQuickPtr1 - bcc .5 - inc ZPQuickPtr1+1 ZPQuickPtr1=Current Code PTR - clc - -.5 lda (ZPQuickPtr1) get OPCODE - tax - lda OPCODES,x get OPCODE definition - bpl .7 abs addressing? - - and #3 save Opcode length... - pha - - ldy #1 - lda (ZPQuickPtr1),y Get LO - sec - sbc R.BL - iny - lda (ZPQuickPtr1),y Get HI - sbc R.BH - bcc .6 addr < AX, out of range - - dey - lda (ZPQuickPtr1),y Get LO - sec - sbc R.CL - iny - lda (ZPQuickPtr1),y Get HI - sbc R.CH - bcs .6 addr > CX, out of range - - dey - lda (ZPQuickPtr1),y Get LO - clc - adc R.DL add DX to abs address - sta (ZPQuickPtr1),y store relocated addr LO - iny - lda (ZPQuickPtr1),y Get HI - adc R.DH - sta (ZPQuickPtr1),y store relocated addr HI - -.6 pla - -.7 clc A = OPCODE length - adc ZPQuickPtr1 - sta ZPQuickPtr1 - bcc .8 - inc ZPQuickPtr1+1 - -.8 lda ZPQuickPtr1 is Current PTR < Code Limit ? - sec - sbc ZPQuickPtr2 - lda ZPQuickPtr1+1 - sbc ZPQuickPtr2+1 - bcc .5 yes, continue relocating - - clc - rts -*-------------------------------------- -* 65C02 OPCODES -* Bit 7 : 1 absolute addressing -* Bit 1-0 : opcode + @ length -*-------------------------------------- -* x0.x1.x2.x3.x4.x5.x6.x7.x8.x9.xA.xB.xC.xD.xE.xF -OPCODES .HS 01.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 - .HS 83.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 - .HS 01.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.01.83.83.03 - .HS 01.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.01.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 - .HS 02.02.02.01.02.02.02.02.01.83.01.01.01.83.83.03 -*-------------------------------------- MAN SAVE SYS/KERNEL.S.BIN LOAD SYS/KERNEL.S diff --git a/SYS/KERNEL.S.REL.txt b/SYS/KERNEL.S.REL.txt new file mode 100644 index 00000000..fedd59e0 --- /dev/null +++ b/SYS/KERNEL.S.REL.txt @@ -0,0 +1,152 @@ +PR#3 +PREFIX /A2OSX.SRC +NEW +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +* S.BinRelocateYA : +* YA = Ptr to Code +* R.AX = Code Length +* R.BX = Range Start address to relocate +* R.CX = Range End address to relocate +* R.DX = offset to apply to all abs addresses between R.BX and R.CX +*-------------------------------------- +S.BinRelocateYA >STYA ZPQuickPtr1 + + ldy #H.BIN.JMP relocate Main JMP + lda (ZPQuickPtr1),y + clc + adc R.DL + sta (ZPQuickPtr1),y + + iny + lda (ZPQuickPtr1),y + adc R.DH + sta (ZPQuickPtr1),y + + ldy #H.BIN.RELOC.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes) + bra S.JmpRelocate + +S.DrvRelocateYA >STYA ZPQuickPtr1 + + ldy #0 + +S.JmpRelocate lda (ZPQuickPtr1),y Start Relocate JMP table + tax + iny + ora (ZPQuickPtr1),y + beq S.CodeRelocate $0000 = end of table + + dey + txa + clc + adc R.DL + sta (ZPQuickPtr1),y + + iny + lda (ZPQuickPtr1),y + adc R.DH + sta (ZPQuickPtr1),y + + iny + + bra S.JmpRelocate + +S.CodeRelocate lda ZPQuickPtr1 + clc + adc R.AL Make ZPQuickPtr2=End of code + sta ZPQuickPtr2 =ZPQuickPtr1+AX (code len) + lda ZPQuickPtr1+1 + adc R.AH + sta ZPQuickPtr2+1 + + iny + tya add current offset in Y to Ptr + clc + adc ZPQuickPtr1 + sta ZPQuickPtr1 + bcc .5 + inc ZPQuickPtr1+1 ZPQuickPtr1=Current Code PTR + clc + +.5 lda (ZPQuickPtr1) get OPCODE + tax + lda OPCODES,x get OPCODE definition + bpl .7 abs addressing? + + and #3 save Opcode length... + pha + + ldy #1 + lda (ZPQuickPtr1),y Get LO + sec + sbc R.BL + iny + lda (ZPQuickPtr1),y Get HI + sbc R.BH + bcc .6 addr < AX, out of range + + dey + lda (ZPQuickPtr1),y Get LO + sec + sbc R.CL + iny + lda (ZPQuickPtr1),y Get HI + sbc R.CH + bcs .6 addr > CX, out of range + + dey + lda (ZPQuickPtr1),y Get LO + clc + adc R.DL add DX to abs address + sta (ZPQuickPtr1),y store relocated addr LO + iny + lda (ZPQuickPtr1),y Get HI + adc R.DH + sta (ZPQuickPtr1),y store relocated addr HI + +.6 pla + +.7 clc A = OPCODE length + adc ZPQuickPtr1 + sta ZPQuickPtr1 + bcc .8 + inc ZPQuickPtr1+1 + +.8 lda ZPQuickPtr1 is Current PTR < Code Limit ? + sec + sbc ZPQuickPtr2 + lda ZPQuickPtr1+1 + sbc ZPQuickPtr2+1 + bcc .5 yes, continue relocating + + clc + rts +*-------------------------------------- +* 65C02 OPCODES +* Bit 7 : 1 absolute addressing +* Bit 1-0 : opcode + @ length +*-------------------------------------- +* x0.x1.x2.x3.x4.x5.x6.x7.x8.x9.xA.xB.xC.xD.xE.xF +OPCODES .HS 01.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 + .HS 83.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 + .HS 01.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.01.83.83.03 + .HS 01.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.01.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 + .HS 02.02.02.01.02.02.02.02.01.83.01.01.01.83.83.03 +*-------------------------------------- +MAN +SAVE SYS/KERNEL.S.REL +LOAD SYS/KERNEL.S +ASM diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 32068cd4..ef49ab95 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -243,6 +243,7 @@ A2osX.E000 .EQ * .INB SYS/KERNEL.S.BIN .INB SYS/KERNEL.S.DRV .INB SYS/KERNEL.S.LIB + .INB SYS/KERNEL.S.REL .INB SYS/KERNEL.S.TSK .INB SYS/KERNEL.S.EVT *-------------------------------------- diff --git a/ScreenShot.bmp b/ScreenShot.IP1.bmp similarity index 100% rename from ScreenShot.bmp rename to ScreenShot.IP1.bmp diff --git a/ScreenShot.IP2.bmp b/ScreenShot.IP2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6eae9bf0df79a9942a87985d2a2eed22dcbe5648 GIT binary patch literal 216118 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 M`mQ*pAcKMb2l%BPxBvhE literal 0 HcmV?d00001 diff --git a/_MAKEDIR.txt b/_MAKEDIR.txt index ea391711..81f13f61 100644 --- a/_MAKEDIR.txt +++ b/_MAKEDIR.txt @@ -7,10 +7,12 @@ CREATE SBIN CREATE SBIN/GFX CREATE SYS CREATE USR +PREFIX /A2OSX.DEV +CREATE INC +CREATE BIN PREFIX /A2OSX.SRC CREATE BIN CREATE DRV -CREATE INC CREATE LIB CREATE SBIN CREATE SBIN/GFX