60

Elimination des Sous-expressions Commune, ça me suffisait wink
je n'ai pas trop regardé ça, j'ai préféré faire du smc, c'est plus marrant cheeky
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

61

Martial Demolins :
tiens, truc marrant, j'ai pas retouché au TSR depuis deux/trois semaines, il est donc toujours en nostub, j'ai juste rajouté les optimisations proposéées par Pollux (merci bien au passage, -30 octets au moins!!!)
mais quand j'installe le TSR, puis seulement après Pre0S, il déconne complètement, et s'installe plusieurs fois de suite quand on l'éxécute plusieurs fois de suite, au lieu de s'installer/désinstaller/s'installer/désinstaller...

J'ai pas pu regarder au débuggueur (j'ai constaté ça on-calc), et donc je ne sais pas trop à quoi c'est dû. Surement au fait que PreOS fait pas mal joujou avec les vecteurs en s'installant, mais je ne pensais pas qu'il touchait à ça.

Quelqu'un sait d'où ça vient? je n'ai plus rien pour compiler/débugguer et regarder ce qui se passe... sad

alors j'ai essayé qqes trucs :
fastkbd -> "installed"
preos -> "installed"
preos -> "uninstalled"
fastkbd -> "installed"
fastkbd -> "uninstalled"
fastkbd -> "installed"
fastkbd -> "uninstalled"
fastkbd -> "installed"
fastkbd -> "uninstalled"
a priori, bug de preos qui remet les vecteurs d'origine du TIOS

fastkbd -> "installed"
preos -> "installed"
fastkbd -> "installed"
fastkbd -> "uninstalled"
fastkbd -> "installed"
fastkbd -> "uninstalled"
preos -> "uninstalled"
fastkbd -> "installed"
fastkbd -> "uninstalled"
fastkbd -> "installed"
fastkbd -> "uninstalled"
fastkbd -> "installed"
fastkbd -> "uninstalled"

idem, même problème. mais je pense que tu ne peux rien faire, à part une recherche dans tous les handles de ton programme (ce qui peut-être assez rapide)

accessoirement je suis tombé à 369o cheeky
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

62

63

de rien smile
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

64

Pollux > tiens, le code qui reste en ram, une fois un peu optimisé smile
;=============================================================
;	Interrupt
;=============================================================
Interrupt:
plop2:
        move.l	2(a7),$123456;on met l'adresse de retour dans OldJump [à modifier à l'initialisation]
plop:
        move.l	#$123456,2(a7);On met FastKbd dans l'adresse de retour [à modifier à l'initialisation]
        dc.w	$4EF9
OldInterrupt:
        dc.l	0;On exécute le trap #4  [à modifier à l'initialisation]

;=============================================================
;	Accelerate the keyboard
;=============================================================
FastKbd:	;destroys d0-d2/a0-a1
plop4:
	move.l  #40*65536+20,$1234; [à modifier à l'initialisation]
	movem.l a0-a1/d0-d2,-(a7)
	pea.l	Str(pc)
plop5:
	jsr	$123456;ST_helpMsg [à modifier à l'initialisation]
	addq.l	#4,sp
	movem.l (a7)+,a0-a1/d0-d2				;clear *str and the second word
	dc.w	$4EF9
OldJump:
	dc.l	0; [à modifier à l'exécution]
	even
Str:
	dc.b	"Keyboard accelerated!",0
	even
EndInterrupt:


à comparer au code précédent :
        
Interrupt:
	movem.l	d0-d3/a0-a4,-(sp)
	lea.l	OldInterrupt(pc),a0
	lea.l	$600001,a3
	lea.l	$90,a4
	moveq	#2,d3
	move.l	(a4),-(sp)		;save current vector
	bclr.b	d3,(a3)
	move.l	(a0),(a4)		;write old vector
	bset.b	d3,(a3)
	movem.l	d0-d2/a0-a1,-(sp)
	trap	#4			;call old vector
	movem.l	(sp)+,d0-d2/a0-a1
	bclr.b	d3,(a3)
	move.l	(sp)+,(a4)		;write current vector
	bset.b	d3,(a3)
	bsr	FastKbd			;accelerate the keyboard
	movem.l	(sp)+,d0-d3/a0-a4
	rte

;=============================================================
;	Accelerate the keyboard
;=============================================================
FastKbd:	;destroys d0-d2/a0-a1, but set a2 at ($c8)!
	movea.l	$c8,a2
	pea.l	20*65536+40			;2 delays in 2 words
	movea.l	OSInitBetweenKeyDelay*4(a2),a0
	jsr	(a0)
	addq.l	#2,sp				;clear 1 word
	movea.l	OSInitKeyInitDelay*4(a2),a0
	jsr	(a0)
	pea.l	Str(pc)
	movea.l	ST_helpMsg*4(a2),a0
	jsr	(a0)
	addq.l	#6,sp				;clear *str and the second word
	rts
	even
OldInterrupt:	dc.l	0
Str:		dc.b	"Keyboard accelerated!",0
EndInterrupt:

avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

65

66

#triloveoui#
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

67

Flanker :
Pollux > tiens, le code qui reste en ram, une fois un peu optimisé smile

Apparemment y avait encore 14 octets de graisse en trop hehe
;=============================================================
;       Interrupt
;=============================================================
Interrupt:
        bsr.s   ExecuteOldInt

;=============================================================
;       Accelerate the keyboard
;=============================================================
FastKbd:        ;does not destroy anything, but pops a word from the stack
plop4:
        move.l  #40*65536+20,$1234; [à modifier à l'initialisation]
        movem.l a0-a1/d0-d2,-(a7)
        bsr.s   plop5
        dc.b    "Keyboard accelerated!",0
        even
plop5:
        jsr     $123456;ST_helpMsg [à modifier à l'initialisation]
        addq.l  #4,sp
        movem.l (a7)+,a0-a1/d0-d2                               ;clear *str and the second word
        addq.l  #2,sp
        rts

ExecuteOldInt:
        move.w  4(a7),-(a7)
        dc.w    $4EF9
OldInterrupt:
        dc.l    0;On exécute le trap #4  [à modifier à l'initialisation]

EndInterrupt:

(et accessoirement ça fait moins de code d'installation aussi puisqu'il y a deux endroits à self-modifyer en moins happy)


(et sinon si on ne tient pas à exécuter FastKbd() en mode utilisateur, on peut remplacer move.w 4(a7),-(a7) par move.w #$2700,-(a7) et addq.l #2,sp ; rts par rte, ça gagne encore 2 octets smile)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

68


Je sais que Flanker avait bossé sur des TSR kernel. Mais j'avoue que je ne sais pas comment ça se passe dans le cas que tu as cité...

J'attends toujours la doc officielle de desinstallation des TSR kernels par PreOS que Flanker m'avait promis il y a X mois.

69

utsrlib::kernel_uninstall equ utsrlib@0004

;******************************************************************************************************************************
; void utsrlib::kernel_uninstall(void);
;******************************************************************************************************************************
;
; warns all utsrs from a kernel uninstallation
; removes all utsrs from the utsr list
; keep in mind that even in case of errors, all utsrs will be removed 
;******************************************************************************************************************************


hehe
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

70

Oue mais appeller ca inside preos uninstall...
Pas encore convaincu.

71

fallait me le dire avant grin
le problème, c'est qu'il me faut apeller une lib :/
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

72

J'ai pas dit que je prendrais pas, hein ?

73

qu'est-ce qui ne te convient pas dedans ?

et si tu ne veux vraiment pas appeler de lib, donne-moi 2o à une adresse fixe dans la mémoire (ou un ram-call pour accéder à 2o)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant