USANDO TUDE A LO BESTIA The Lawnmover Man / S.T. Casi desde que me compré el A1200 he tenido muchísimos problemas con demos, juegos y programas que no iban bien en el ordenador debido a problemas de incompatibilidad por la mala costumbre de muchos programadores de hacer las rutinas en ensamblador a lo bestia y sin tener en cuenta los modelos futuros del Amiga. Como muchos sabrán estos problemas eran debido sobretodo a los AGA y al 68020 del A1200. Si ya encima le metemos una Blizzard 030 o similar el grado de incompatibilidad con programas antiguos se incrementa de forma alarmante. Después de estar mirando y sacando programas DEGRADERS desde AmiNet creo que por fin he encontrado una forma de cargar casi el 70% de los programas que no van en el A1200 a pesar de desconectar los AGA. Para ello necesitamos de una utilidad llamada TUDE que es totalmente FREEWARE y que podemos encontrar en cualquier librería de dominio público, BBS o AmiNet. Acto seguido necesitamos una imagen de la ROM del Kickstart 1.3. Para ello hay que hacer un volcado desde la dirección F8000 hasta la FFFFF. Son en total 256Kb. Para hacer esto podeis usar un programa llamado GrabKick también de dominio público o compilad el source que viene al final de artículo en cualquier ensamblador y ejecutarlo en el Amiga 500. Ahora que ya tenemos todo hecho es hora de crearnos un diskette que hará de "degradador" del A1200 a un "casi A500". Para ello formateamos un diskette de manera "booteable". Para ello usamos la instrucción INSTALL DF0: del CLI. Tras ello creamos un directorio llamado C en el diskete donde ir el ejecutable del TUDE, otro llamado S donde irá el Startup-Sequence y por último la imagen de la ROM del 1.3 la grabamos en la raíz del disco con el nombre KICK34005.A500. Este nombre es muy importante pues si no es así el TUDE no reconocerá la ROM y pasará olímpicamente de cargarla. Ya tenemos casi todo listo. Ahora de lo que se trata es de usar un editor de texto donde crearemos el fichero STARTUP-SEQUENCE que irá en el directorio S del diskette y que incluirá las siguientes líneas:
TUDE CHIPMEM=1024KB TUDE KICKSTART1.3 Y ya está todo listo. Metemos el diskette en la unidad, reseteamos y cuando termine de cargar habremos convertido el A1200 en un A500 con 020 y 1MB de CHIP RAM. Si omitimos segunda línea tendremos toda la memoria que queramos. Si tenemos FAST RAM es recomendable desconectarla si usamos programas muy antiguos. También es posible usar 512Kb de memoria como en el A500 sin ampliar. Para ello cambiar la segunda línea por TUDE CHIPMEM=512Kb Os aseguro que el número de programas que os cargarán ahora y que antes no lo hacían es alarmante. He llegado a cargar incluso juegos tan antiguos como el Army Moves o el Bomb Jack que antes no conseguía cargar ni de pura coña. Espero que este artículo os haya sido provechoso a todos los que tengais el A1200 y esteis hartos de no poder usar muchos programas antiguos por culpa de la mala programación de algunos coders. Source para grabar la ROM del A500 en un ficheroTras compilar este source ejecutarlo con:
SECTION RipKickROM,CODE
*
INCLUDE "exec/types.i"
INCLUDE "exec/exec.i"
INCLUDE "libraries/dos.i"
*
xref _AbsExecBase exec.library base address
xref _LVOOpenLibrary exec.library subroutine
xref _LVOCloseLibrary exec.library subroutine
xref _LVOOpen dos.library subroutine
xref _LVOClose dos.library subroutine
xref _LVOWrite dos.library subroutine
*
movea.l _AbsExecBase,a6 Move exec.library address
cmpi.l #2,d0 Check for Entered Filename
blt.s useit None entered, goto useit
move.b #0,-1(a0,d0.L) else, overlay '0a'x with '00'x
move.l a0,d4 and save Filename address
bra.s OpenLib goto OpenLib
useit lea FName,a0 Load address of Default Filename
move.l a0,d4 and save it
OpenLib lea Dname,a1 Load dos.library
moveq.l #0,d0 version 0
jsr _LVOOpenLibrary(a6) and open it
movea.l d0,a6 Move dos.library address
move.l d4,d1 Move address of Filename
move.l #MODE_NEWFILE,d2 Mode = OUTPUT
jsr _LVOOpen(a6) Open file
tst.l d0 test open
beq.s ClosLib Bad open, goto ClosLib
move.l d0,d4 Save File pointer in d4
move.l d0,d1 Move File pointer to d1
move.l #$f80000,d2 Move KickROM address to d2
move.l #262144,d3 Move 256K to d3
jsr _LVOWrite(a6) Write file
move.l d4,d1 Move File pointer to d1
jsr _LVOClose(a6) Close file
ClosLib move.l a6,a1 Load dos.library address
movea.l _AbsExecBase,a6 Load exec.library address
jmp _LVOCloseLibrary(a6) Jump to CloseLibrary
* CloseLibrary will return to System
FName dc.b "RAM:KickStart.ROM",0
Dname dc.b "dos.library",0
Version dc.b "$VER: RipKickROM 2.1 (4.11.95)",0
end
|