| [hatari-devel] Hatari freezing when running FIX24.PRG |
[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]
Hi, When running the attached FIX24.PRG as the only program in the AUTO folder Hatari's TT emulation freezes. I cannot even kill Hatari with Ctrl-C, but have to use the kill command. It's quite likely that this is an issue with the PMMU emulation. PMMU, prefetch and cycle exact were enabled. FIX24 was an open-source replacement for Atari's non-open 24BIT.PRG, which used the PMMU to reduce the 32 bit address range to 24 bit in order to support programs that did not work with TT-RAM in the early days of the TT. I guess Hatari's 24 bits addressing option does the same. I attached both the binary and the sources. (Comments are in German because this is a slightly updated version of what was published in the German ST Computer magazine 4/91.) If you want to run FIX24 in order to reproduce the issue, note that FIX24 requires that no TT-RAM has been allocated yet. Usually it's the first program in the AUTO folder. Maybe this helps with resolving PMMU-related issues. Best regards Uwe
Attachment:
FIX24.PRG
Description: Binary data
**************************************
* *
* FIX24 V1.2 *
* *
* beschr�nkt Adressierung auf 24 Bit *
* *
* und erlaubt Nutzung des TT-RAM *
* *
* (C) 1993 by Uwe Seimet *
* *
**************************************
mc68030
loadfast
GEMDOS = 1
CCONWS = 9
SUPER = 32
PTERMRES = 49
MXALLOC = 68
TERM = 76
memtop = $42e ;Speicherobergrenze
_p_cookies = $5a0 ;Pointer auf cookie-jar
magic = "FIX2" ;f�r cookie
ttmagic = $1357bd13 ;Flag f�r TT-RAM
text
clr.l -(sp)
move #SUPER,-(sp)
trap #GEMDOS
addq.l #6,sp
move.l d0,d7
moveq #-1,d6 ;Fehlerflag
;setzen
lea sterr(pc),a6
move.l _p_cookies,d0
beq quit ;kein
;cookie jar-
move.l d0,a0
cloop: movem.l (a0)+,d0-d1
tst.l d0
beq quit ;Ende des
;cookie jar-
cmp.l #"_MCH",d0 ;Computertyp?
bne cloop ;nein-
swap d1
subq #2,d1 ;TT?
bcs quit ;nein-
moveq #0,d5
cmp.l #ttmagic,$5a8 ;TT-RAM
;vorhanden?
bne.b noram ;nein-
move.l $5a4,d0 ;Ende des
;TT-RAM
sub.l #$1000000,d0
ble.b noram ;kein
;TT-RAM-
lea ramerr(pc),a6
move.l d0,d5 ;Gr��e
;des TT-RAM
;in Bytes
swap d5 ;Gr��e
lsr #4,d5 ;in MBytes
move #1,-(sp) ;TT-RAM
move.l d0,-(sp) ;komplett
move #MXALLOC,-(sp) ;belegen
trap #GEMDOS
addq.l #8,sp
tst.l d0 ;TT-RAM ist
beq quit ;nicht leer-
noram: movec cacr,d0 ;Cache
or #$0808,d0 ;l�schen
and #$fefe,d0 ;und
movec.l d0,cacr ;abschalten
pmove dummy,tc ;�bersetzung
;anhalten
pmove dummy,tt0
pmove dummy,tt1
moveq #$00000001,d1
lea $0700,a0 ;Deskriptoren-
;Adresse
moveq #14,d0
fill1: move.l d1,(a0)+ ;Default-
add.l #$00100000,d1 ;Tabelle
dbra d0,fill1 ;aufbauen
move.l #$00f00041,(a0) ;Hardware-
;�bersetzung
subq #1,d5
bmi.b no_cook ;kein TT-RAM-
move.l memtop,d0
swap d0
move d0,d4
swap d4
clr d4
lsr #2,d0
lea $0700,a0
add.l d0,a0
move.l #$01000001,d1
fill2: add #$0010,d4 ;L�ngenfeld
move.l d1,(a0)+ ;TT-RAM-
add.l #$00100000,d1 ;Tabelle
;aufbauen
cmp.l #$00e00000,(a0) ;RAM-Ende
dbcc d5,fill2 ;erreicht?
move.l _p_cookies,a0
find: movem.l (a0)+,d0-d1
tst.l d0
bne find
movem.l d0-d1,(a0)
move.l d4,-(a0) ;cookie
move.l #magic,-(a0) ;eintragen
no_cook: pmove trans,tc ;�bersetzung
;neu starten
lea message(pc),a6
clr d6 ;Fehlerflag
;zur�cksetzen
quit: move.l d7,-(sp)
move #SUPER,-(sp)
trap #GEMDOS
addq.l #6,sp
pea (a6)
move #CCONWS,-(sp)
trap #GEMDOS
addq.l #6,sp
move d6,-(sp)
bmi.b error
clr.l -(sp)
move #PTERMRES,-(sp)
trap #GEMDOS
error:
move #TERM,-(sp)
trap #GEMDOS
trans: dc.l $80f84500 ;f�r TC-Register
sterr: dc.b $0d,$0a,"FIX24 l�uft nur "
dc.b "auf dem TT oder Falcon030!",$0d,$0a,$00
message: dc.b $0d,$0a,"FIX24 V1.2 "
dc.b "installiert",$0d,$0a
dc.b "� 1993 by Uwe Seimet",$0d,$0a,$00
ramerr: dc.b $0d,$0a,"Das TT-RAM ist "
dc.b "nicht leer!",$0d,$0a
dc.b "FIX24 V1.2 "
dc.b "nicht installiert",$0d,$0a,$00
bss
dummy: ds.l 1 ;f�r TC-Register
| Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |