Re: [hatari-devel] Hatari freezing when running FIX24.PRG

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi,

Just checking what the copy of FIX24 I provided actually does ;-). As
already mentioned it's an updated version of the one that was published
in ST Computer 4/91, and it does not yet try to re-map memory from the
TT-RAM to the ST-RAM area.
And yes, you are right, there is another program (attached) that makes
this memory usable. I completely forgot about this one, even though it
was actually published together with an update to FIX24 one month later.
For those who know German and are interested in how the PMMU works, those
two articles may be interesing in this context. I'm currently re-learning
things I completely forgot :).

Note that I cannot test this on a real TT right now, but it is safe to
assume that both programs were working on real TTs. But as Christian
already pointed out, there might be problems with more than 10 MB of
ST-RAM.
While trying to run more tests with Hatari I just stumbled upon a problem:
With only 4 MB ST-RAM configured NVDI does not install on Hatari. First
I thought this was another NVDI issue, but then I noticed that it looks
as if no AUTO order program is executed at all when I configure 4 MB of
ST-RAM. For reference I attached my configuration file once again. With
this configuration Hatari launches everything in my AUTO folder on C,
but when I reconfigure (after pressing F12) Hatari to only provide 4 MB
ST-RAM and then reboot, no AUTO folder programs are executed anymore.

Best regards

Uwe

> Le 09/10/2018 à 18:46, Nicolas Pomarède a écrit :
> > Yes, that's the other option I was considering, that fix24.prg doesn't 
> > support so much ST RAM.
> > 
> > If I run with less ST RAM (10 MB), then fix24 is working, there's no crash.
> > 
> > Uwe, what working memory config did you use on your TT to be sure we 
> > test the same under Hatari ?
> 
> If I understand correctly, if you have TT RAM, then fix24 will also try 
> to map part of this 32bit TT RAM inside the 24 bit address space to 
> reach the maximum possible.
> 
> So, if you have 10 MB of ST RAM, you can still access the first 4 MB of 
> your TTRAM from A00000 to E00000. If you have 4 MB of ST RAM, then 10 MB 
> of TT RAM will be visible just after the ST RAM (this would need some 
> extra code to change memtop / phystop accordingly so that TOS really 
> sees this memory region and use it, maybe some other program needed to 
> be ran after fix24.prg to take this into account)
> 
> Nicolas
> 
> 
************************************
*                                  *
* ADDMEM V1.3                      *
*                                  *
* erlaubt in Verbindung mit FIX24  *
*                                  *
* die Nutzung des TT-RAM unter TOS *
*                                  *
* (C) 1991 by Uwe Seimet           *
*                                  *
************************************


	mc68030
	loadfast


GEMDOS   = 1
CCONWS   = 9
PTERMRES = 49
MALLOC	= 72
MFREE	= 73
MSHRINK	= 74


XBIOS    = 14
SUPEXEC  = 38


hdv_rw   = $476            ;Lese-/Schreibvektor
_sysbase	= $4f2
_p_cookies = $5a0          ;Pointer auf cookie jar


fixmagic = "FIX2"
magic    = "MADD"


	opt o+,w-


	text

	move.l 4(sp),a0
	lea stack+400,sp
	move.l 12(a0),a6		;L�nge des TEXT-Segments
	add.l 20(a0),a6		;L�nge des DATA-Segments
	add.l 28(a0),a6		;L�nge des BSS-Segments
	lea $100(a6),a6		;f�r Basepage
	pea (a6)
	pea (a0)
	clr -(sp)
	move #MSHRINK,-(sp)
	trap #GEMDOS		;�berz�hligen Speicher freigeben
	lea 12(sp),sp
	tst.l d0			;alles klar?
	bne err1			;leider nicht-

	pea -1
	move #MALLOC,-(sp)
	trap #GEMDOS
	addq.l #6,sp
	subq.l #2,d0
	move.l d0,-(sp)
	move #MALLOC,-(sp)
	trap #GEMDOS
	addq.l #6,sp
	move.l d0,d7

         pea install(pc)
         move #SUPEXEC,-(sp)
         trap #XBIOS
         addq.l #6,sp
         subq.b #1,errflg
         beq.b quit1                ;Fehler-
         bpl.b quit2                ;bereits
                                    ;installiert-

	move.l d7,-(sp)
	move #MFREE,-(sp)
	trap #GEMDOS
	addq.l #6,sp

         pea message(pc)
         move #CCONWS,-(sp)
         trap #GEMDOS
         addq.l #6,sp
 
         clr -(sp)
         pea (a6)			;Programm
         move #PTERMRES,-(sp)
         trap #GEMDOS               ;resident
                                    ;halten
quit1:   pea fixerr(pc)
         move #CCONWS,-(sp)
         trap #GEMDOS
         addq.l #6,sp
quit2:   clr -(sp)
         trap #GEMDOS

install:
         move.l _p_cookies,d0       ;keine
         beq.b err1                 ;cookies-
         move.l d0,a0
find_fix:movem.l (a0)+,d0-d1
         tst.l d0
         beq.b err1                 ;kein FIX24-
         cmp.l #magic,d0
         beq.b err2                 ;ADDMEM schon
                                    ;installiert-
         cmp.l #fixmagic,d0         ;FIX24 nicht
         bne find_fix               ;installiert-
         move.l #magic,-8(a0)       ;magic
                                    ;ersetzen
         move.l d1,d0
         clr d0
         swap d1
         clr d1
         move.l _sysbase,a0
         move.l $71e2,d2            ;Pointer auf MPB (TOS 3.01)
         cmp #$0301,2(a0)
         beq.s next_md
	move.l $70e8,d2		;MBP f�r TOS 3.05
	cmp #$0301,2(a0)
	beq.s next_md
	move.l $73ca,d2		;MPB f�r TOS 3.06
next_md: move.l d2,a0
         move.l (a0),d2             ;Zeiger auf n�chsten MD holen
         bne next_md                ;noch nicht letzter Block-
         movem.l d0-d1,4(a0)        ;Start, L�nge
                                    ;des neuen
                                    ;Blocks
         movem.l d0-d1,low

         move.l hdv_rw,o_rw       ;neue DMA-
         move.l #hrw,hdv_rw       ;Routinen
         rts

err1:    move.b #1,errflg
         rts

err2:	move.b #2,errflg
         rts


         dc.l "XBRA"
         dc.l magic
o_rw:    dc.l 0
hrw:
         move.l 6(sp),d0            ;Pufferadresse
         sub.l low(pc),d0
         bcs.b cont
         cmp.l len(pc),d0
         bcc.b cont
         add.l #$01000000,d0        ;neue Adresse
                                    ;berechnen
         move.l d0,6(sp)            ;und ersetzen
cont:    move.l o_rw(pc),a0         ;weiter
         jmp (a0)                   ;wie gehabt-


message: dc.b $0d,$0a,"ADDMEM V1.3 "
         dc.b "installiert",$0d,$0a
         dc.b "� 1991 by Uwe Seimet",$0d,$0a,$00
fixerr:  dc.b $0d,$0a,"ADDMEM l�uft nur "
	dc.b "in Verbindung mit FIX24!"
	dc.b $0d,$0a,$00


         even

low:     dc.l 0   ;neue Startadresse des TT-RAM
len:     dc.l 0   ;Gr��e des TT-RAM-Bereichs

errflg:  dc.b 0   ;Fehlerflag


	bss

stack:	ds.l 100

Attachment: ADDMEM.PRG
Description: Binary data

[Log]
sLogFileName = stderr
sTraceFileName = stderr
nTextLogLevel = 4
nAlertDlgLogLevel = 1
bConfirmQuit = FALSE
bNatFeats = TRUE
bConsoleWindow = FALSE

[Screen]
nMonitorType = 0
nFrameSkips = 5
bFullScreen = FALSE
bAllowOverscan = FALSE
nSpec512Threshold = 16
nForceBpp = 0
bUseExtVdiResolutions = FALSE
nVdiWidth = 1280
nVdiHeight = 1024
nVdiColors = 0
bShowStatusbar = FALSE
bShowDriveLed = FALSE
bAspectCorrect = TRUE
bCrop = FALSE
nMaxWidth = 832
nMaxHeight = 576
bKeepResolution = FALSE
bForceMax = FALSE
bMouseWarp = TRUE
nRenderScaleQuality = 0
bUseVsync = FALSE
bResizable = TRUE
bUseSdlRenderer = TRUE

[Joystick0]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = 1
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl

[Joystick1]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = 0
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl

[Joystick2]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = 2
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl

[Joystick3]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = 3
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl

[Joystick4]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = 4
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl

[Joystick5]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = 5
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl

[Keyboard]
bDisableKeyRepeat = TRUE
nKeymapType = 1
szMappingFileName =

[ShortcutsWithModifiers]
keyOptions = 111
keyFullScreen = 102
keyMouseMode = 109
keyColdReset = 99
keyWarmReset = 114
keyScreenShot = 103
keyBossKey = 105
keyCursorEmu = 106
keyFastForward = 120
keyRecAnim = 97
keyRecSound = 121
keySound = 115
keyPause = 0
keyDebugger = 19
keyQuit = 113
keyLoadMem = 108
keySaveMem = 107
keyInsertDiskA = 100

[ShortcutsWithoutModifiers]
keyOptions = 293
keyFullScreen = 292
keyMouseMode = 0
keyColdReset = 0
keyWarmReset = 0
keyScreenShot = 0
keyBossKey = 0
keyCursorEmu = 0
keyFastForward = 0
keyRecAnim = 0
keyRecSound = 0
keySound = 0
keyPause = 19
keyDebugger = 0
keyQuit = 0
keyLoadMem = 0
keySaveMem = 0
keyInsertDiskA = 0

[Sound]
bEnableSound = FALSE
nPlaybackFreq = 44100
szYMCaptureFileName = /home/us/hatari.wav
bEnableMicrophone = TRUE
nSdlAudioBufferSize = 0
YmVolumeMixing = 2
bEnableSoundSync = FALSE

[Memory]
nMemorySize = 14336
bAutoSave = FALSE
szMemoryCaptureFileName = /home/us/.hatari/hatari.sav
szAutoSaveFileName = /home/us/.hatari/auto.sav
nTTRamSize = 16384

[Floppy]
bAutoInsertDiskB = TRUE
nWriteProtection = 0
szDiskAZipPath =
szDiskAFileName =
szDiskBZipPath =
szDiskBFileName =
szDiskImageDirectory = /home/us/hatari
FastFloppy = FALSE
EnableDriveA = FALSE
EnableDriveB = FALSE
DriveA_NumberOfHeads = 2
DriveB_NumberOfHeads = 2

[HardDisk]
bBootFromHardDisk = TRUE
bUseHardDiskDirectory = TRUE
szHardDiskDirectory = /home/us/TT
#szIdeMasterHardDiskImage = /dev/sdh
#szIdeSlaveHardDiskImage = /dev/sdc
nWriteProtection = 0
nGemdosCase = 0
nGemdosDrive = 0
bFilenameConversion = FALSE
bGemdosHostTime = FALSE

[ROM]
szTosImageFileName = /opt/atari/tos306de.img
#szTosImageFileName = /opt/atari/etos512k.img
szCartridgeImageFileName =
bPatchTos = TRUE

[RS232]
bEnableRS232 = FALSE
szOutFileName = /dev/modem
szInFileName = /dev/modem

[Printer]
bEnablePrinting = TRUE
szPrintToFileName = /tmp/prn.out

[Midi]
bEnableMidi = FALSE
sMidiInFileName = /dev/snd/midiC1D0
sMidiOutFileName = /dev/snd/midiC1D0
sMidiInPortName = Off
sMidiOutPortName = Off

[System]
nCpuLevel = 3
nCpuFreq = 32
bCompatibleCpu = FALSE
bBlitter = FALSE
nDSPType = 0
bPatchTimerD = TRUE
bFastForward = TRUE
bAddressSpace24 = FALSE
bCycleExactCpu = FALSE
n_FPUType = 68882
bMMU = FALSE
bFastBoot = FALSE
nModelType = 4
VideoTiming = 3
bSoftFloatFPU = FALSE

[Debugger]
nNumberBase = 10
nDisasmLines = 8
nMemdumpLines = 8
nDisasmOptions = 15
bDisasmUAE = FALSE
nSymbolLines = -1
nExceptionDebugMask = 515
bSymbolsResident = FALSE
bMatchAllSymbols = FALSE

[Video]
AviRecordVcodec = 2
AviRecordFps = 0
AviRecordFile = /home/us/test/hatari/hatari.avi

[ACSI]
bUseDevice1 = FALSE
sDeviceFile1 = /home/us/hatari/aranym.img
bUseDevice2 = FALSE
sDeviceFile2 = /home/us/hatari/win.img
bUseDevice3 = FALSE
sDeviceFile3 = /home/us/TT/D/HDDRUTIL
bUseDevice4 = FALSE
sDeviceFile4 = /home/us/TT/D/HDDRUTIL
bUseDevice5 = FALSE
sDeviceFile5 = /home/us/TT/D/HDDRUTIL
bUseDevice6 = FALSE
sDeviceFile6 = /home/us/TT/D/HDDRUTIL
bUseDevice7 = FALSE
sDeviceFile7 = /home/us/TT/D/HDDRUTIL
bUseDevice0 = TRUE
sDeviceFile0 = /home/us/hatari/aranym.img

[ShortcutsWithModifiers2]
keyOptions = 111
keyFullScreen = 102
keyMouseMode = 109
keyColdReset = 99
keyWarmReset = 114
keyScreenShot = 103
keyBossKey = 105
keyCursorEmu = 106
keyFastForward = 120
keyRecAnim = 97
keyRecSound = 121
keySound = 115
keyPause = 0
keyDebugger = 1073741896
keyQuit = 113
keyLoadMem = 108
keySaveMem = 107
keyInsertDiskA = 100
keySwitchJoy0 = 1073741882
keySwitchJoy1 = 1073741883
keySwitchPadA = 1073741884
keySwitchPadB = 1073741885

[ShortcutsWithoutModifiers2]
keyOptions = 1073741893
keyFullScreen = 1073741892
keyMouseMode = 0
keyColdReset = 0
keyWarmReset = 0
keyScreenShot = 0
keyBossKey = 0
keyCursorEmu = 0
keyFastForward = 0
keyRecAnim = 0
keyRecSound = 0
keySound = 0
keyPause = 1073741896
keyDebugger = 0
keyQuit = 0
keyLoadMem = 0
keySaveMem = 0
keyInsertDiskA = 0
keySwitchJoy0 = 0
keySwitchJoy1 = 0
keySwitchPadA = 0
keySwitchPadB = 0
[KeyShortcutsWithMod]
kOptions = O
kFullScreen = F
kMouseMode = M
kColdReset = C
kWarmReset = R
kScreenShot = G
kBossKey = I
kCursorEmu = J
kFastForward = X
kRecAnim = A
kRecSound = Y
kSound = S
kPause =
kDebugger = Pause
kQuit = Q
kLoadMem = L
kSaveMem = K
kInsertDiskA = D
kSwitchJoy0 = F1
kSwitchJoy1 = F2
kSwitchPadA = F3
kSwitchPadB = F4
kBorders = B

[KeyShortcutsWithoutMod]
kOptions = F12
kFullScreen = F11
kMouseMode =
kColdReset =
kWarmReset =
kScreenShot =
kBossKey =
kCursorEmu =
kFastForward =
kRecAnim =
kRecSound =
kSound =
kPause = Pause
kDebugger =
kQuit =
kLoadMem =
kSaveMem =
kInsertDiskA =
kSwitchJoy0 =
kSwitchJoy1 =
kSwitchPadA =
kSwitchPadB =
kBorders =

[SCSI]
bUseDevice0 = FALSE
sDeviceFile0 = /home/us/hatari/hatari
bUseDevice1 = FALSE
sDeviceFile1 = /home/us/hatari/hatari
bUseDevice2 = FALSE
sDeviceFile2 = /home/us/hatari/hatari
bUseDevice3 = FALSE
sDeviceFile3 = /home/us/hatari/hatari
bUseDevice4 = FALSE
sDeviceFile4 = /home/us/hatari/hatari
bUseDevice5 = FALSE
sDeviceFile5 = /home/us/hatari/hatari
bUseDevice6 = FALSE
sDeviceFile6 = /home/us/hatari/hatari


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/