I've found couple of bugs from DigiBooster Professional DEMO beta:
1. DBPro check SysBase->SoftVer for kickstart version. This is wrong, SoftVer contains exec *revision*. You should use SysBase->LibNode.lib_Version.
2. 0xbfe001 and 0xbfec01 should not be poked/peeked under Pegasos. To know if system has Amiga chipset check SysBase->MaxLocMem, it is 0 under Pegasos/Efika/etc and nonzero with real classic Amiga HW.
3. Window LockLayer / UnlockLayer code is wrong. It should first lock LayerInfo. Here's the proper code:
Code: Select all
/* lock */
LockLayerInfo(&win->WScreen->LayerInfo);
LockLayer(0, win->WLayer);
/* unlock */
UnlockLayer(win->WLayer);
UnlockLayerInfo(&win->WScreen->LayerInfo);
Code: Select all
include "intuition/intuition.i"
include "lvo/layers.i"
; a1 = window
lockwindowlayer
move.l (wd_WScreen,a1),a0
move.l a1,-(sp)
lea (sc_LayerInfo,a0),a0
jsr (_LVOLockLayerInfo,a6)
move.l (sp)+,a1
sub.l a0,a0
move.l (wd_WLayer,a1),a1
jmp (_LVOLockLayer,a6)
; a0 = window
unlockwindowlayer
move.l a0,-(sp)
move.l (wd_WLayer,a0),a0
jsr (_LVOUnlockLayer,a6)
move.l (sp)+,a0
move.l (wd_WScreen,a0),a0
lea (sc_LayerInfo,a0),a0
jmp (_LVOUnlockLayerInfo,a6)