>Well, morelibspace should be after BlizKick to avoid excessive
>rebooting at power up (you should get 2 reboots then, instead of 3). In this case KEEPEXEC isn't required either.
morelibspace do no reboot when you dont use the parameter REBOOT.Only OS3.1 users must use REBOOT.
morelibspace add a resident module after load.When setpatch on OS > 3.1 do the reboot then after the reset in the
early bootphase at priority 70 it change the exec Funktion MakeLibrary.That Exec is not kill after every reset is a document AOS Feature.
Exec is only create when switch on the amiga, if the checksum is wrong or *exec\KickCheckSum is wrong.
And blitzkick seem support this with the Option.
makelibrary must patch so early because AOS create intuiton layer graphics etc libraries.
blitzkick seem use priority 0 (same as amiga rom update)or i am wrong ?.
When use priority 0 all system libraries are create and it is not possible to add new library functions to layer intuition graphics.
When blitzkick do exec not kill, then the Boot check for resident tags, find the morelibspace resident
and patch Makelibrary long time before blitzkick do any action.So all must work
here is complete source in amiblitz.(pointers have always a * before.? is a address label
If FindResident_("morelibspace") Then End
memsize=?endresi-?begin+150+SizeOf .Resident
*kicktag.MemList=AllocMem_(memsize,$10001)
*resi.Resident=*kicktag+80
codemem.l=*resi+SizeOf .Resident
*kicktag\ml_Node\ln_Type=0;#NT_KICKMEM
*kicktag\ml_NumEntries=1
*kicktag\ml_ME\meu_Addr=*kicktag,memsize
*resi.Resident\rt_MatchWord=$4afc
*resi\rt_Flags=#RTF_COLDSTART
*resi\rt_Version=45,0,70
*resi\rt_Name=(?name-?begin)+codemem,(?name2-?begin)+codemem
*resi\rt_Init=codemem
*resi\rt_EndSkip=SizeOf .Resident;+(codemem+(?endresi-?begin +SizeOf .Resident))
*resi\rt_MatchTag=*resi
CopyMem_ ?begin,codemem,?endresi-?begin
*exec.ExecBase=execbase
*kicktag\ml_Node\ln_Succ=*exec\KickMemPtr
*exec\KickMemPtr=*kicktag
Poke.l *resi-4,*exec\KickTagPtr OR $80000000
Poke.l *resi-8,*resi
*exec\KickTagPtr=*resi-8
*exec\KickCheckSum=SumKickData_
CacheClearU_
If NumPars=1 AND Par$(1)="REBOOT" Then ColdReboot_
End
begin
MOVEM.l a0-a6/d0-d7,-(a7)
MOVE.l $4,a6
MOVE.l a6,a1
LEA newfunc(pc),a0
MOVE.l a0,d0
MOVE.l #-84,a0 ;makelibrary
JSR -420(a6)
LEA oldfunc(pc),a0
MOVE.l d0,(a0)
MOVEM.l (a7)+,a0-a6/d0-d7
RTS
newfunc
MOVEM.l d1/a1/a2/a3,-(a7)
CMP.l #1492,d0 ;diskfont
BEQ 'ok
CMP.l #134,d0 ;diskfont
BEQ 'ok
CMP.l #3150,d0 ;intuition library
BEQ 'ok
CMP.l #544,d0 ;graphics library
BEQ 'ok
CMP.l #46,d0 ;layers library
BEQ 'ok
CMP.l #348,d0 ;icon.library
BEQ 'ok
BRA 'skip
'ok
MOVEQ #0,d0
CMP.w #-1,(a0)
BNE 'dolong
MOVE.l a0,a2
ADDQ.w #2,a0
LEA funcs(pc),a1
'g1 CMP.w #-1,(a0)
BEQ 'em1
MOVE.w (a0)+,d1
EXT.l d1
ADD.l a2,d1
MOVE.l d1,(a1)+
ADDQ.l #1,d0
BRA 'g1
'em1 ADDQ.l #1,d0
LEA dummy(pc),a0
MOVE.l a0,(a1)+
CMP.l #350,d0
BNE 'em1
MOVE.l #-1,(a1)+
LEA funcs(pc),a0
BRA 'doit
'dolong
LEA funcs(pc),a1
'g2 CMP.l #-1,(a0)
BEQ 'em1
MOVE.l (a0)+,(a1)+
ADDQ.l #1,d0
BRA 'g2
'doit MOVE.l #10000,d0
'skip MOVEM.l (a7)+,a1/a2/d1/a3
MOVE.l oldfunc(pc),-(a7)
RTS
dummy: TRAP #0
RTS
funcs: Ds.l 410
oldfunc: Dc.l 0
name: Dc.b "morelibspace",0
name2: Dc.b "morelibspace V45",0
Even
endresi
>What would be cool, is that all libraries of AFA_OS could be "ROMmable" modules, is this possible someday?
I dont know. blitzkick must support the increase of library space to have room for additional OS functions
for example AFA graphicslib support that functions but the original library creation code have no room for this functions in the library.that the functions can add is the job of morelibspace
SETFUNC(AndRegionRegionND,Graphics,GfxBase);
SETFUNC(CopyRegion,Graphics,GfxBase);
SETFUNC(NewRectRegion,Graphics,GfxBase);
SETFUNC(SetRegion,Graphics,GfxBase);
SETFUNC(ClearRegionRegion,Graphics,GfxBase);
SETFUNC(IsPointInRegion,Graphics,GfxBase);
SETFUNC(CreateRastPort,Graphics,GfxBase);
SETFUNC(FreeRastPort,Graphics,GfxBase);
}