Path: utzoo!mnetor!uunet!husc6!uwvax!oddjob!gargoyle!att-ih!ihnp4!ihlpg!chiodo From: chiodo@ihlpg.ATT.COM (Chiodo) Newsgroups: comp.sys.amiga Subject: Re: ChipRAM Message-ID: <5007@ihlpg.ATT.COM> Date: 10 Mar 88 18:47:30 GMT References: <4WA4qxy00V4E09s0Sb@andrew.cmu.edu> Reply-To: chiodo@ihlpg.UUCP (55315-Chiodo,J.) Organization: AT&T Bell Laboratories - Naperville, Illinois Lines: 190 Keywords: EA,fixboot,nomem Summary: Some fixes Hi Doug, I just went through the same thing with EA and other games, I just got my 2000 about 2 months ago and finally got the last game to work. I like to play games on my Amiga and have a fairly large collection. These tools should about lick the memory problem: FIXBOOT.ARC NOFASTMEM NOMEM HACKERFIX.ARC FIXBOOT.ARC - This is on just about every BBS I have logged onto. This will rewrite some of the boot track (so don't use an original) and give your expansion memory back when rebooted. Fixboot claims to only work on with Skyfox and Arcticfox but try them on all your non working game I found about 9 more programs to work. NOFASTMEM - On the WB1.2 disk as you probably know works only with games that do not boot into a non-workbench environment. Note however this program does not work with everything (don't know why). HACKERFIX.ARC - This will fix hacker I not only does it choke on extra ram but it has no mouse control either. This program (same author as fixboot.arc) fixes the second release of hacker I. (the program knows the releases). Again use a copy. NOMEM - This programs was posted to the NET a while ago, I included it at the end of his message. It needs to be assembled and remember to use the relocatable option of the assembler. This program is last resort for me, you run the program and it will ask you to insert a disk in drive df0: press the left mouse and the machine reboots with NO extra memory. The bad thing is you have to turn the machine off to get your extra memory back. I am trying to make a complementary program (givemebackfastmem :-) ) to reinstall the fast mem after reboot. (I do not like turning my machine on and off alot), but he used all kinds of absolute addresses and they are not documented anywhere. This should fix just about all your games, watch out for new ones having the same problem (there are just a few mainly european cheapies). Yah it's a pain but if you use fixboot then you only have to do it once. Here the NOMEM messages: From ihnp4!homxb!mtuxo!mtune!rutgers!ames!ucbcad!ucbvax!DHDURZ1.BITNET!G35 Tue Dec 1 13:22:43 CST 1987 Article 11083 of comp.sys.amiga: Path: ihlpg!ihnp4!homxb!mtuxo!mtune!rutgers!ames!ucbcad!ucbvax!DHDURZ1.BITNET!G35 >From: G35@DHDURZ1.BITNET Newsgroups: comp.sys.amiga Subject: re:NoFastMem Message-ID: <8711301555.AA25287@jade.berkeley.edu> Date: 30 Nov 87 16:47:36 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 57 Someone mentioned that the NoFastMem command doesn't work if the program you want to start has to be booted i.e. after a reset. This small assembler program shold solve these problems. Please note: it works only on 500 and 2000 machines, as it uses direct ROM-calls and you have to switch off/on to get your fastmem back, cntl-A-A would have no effect. I know that this is not the way to code programs on the Amiga, the program is just a hack, but works fine (for me). The program is very simple: the startup-code calls a routine which passes in a4 the length of the $c00000-mem attached. The program just sets a4 to NULL and jumps into the startup routine. ------------------------ cut here --------------------------- move.l 264(a2),a4 ; function = Output() moveq #12,d0 ; every cli-command does this, no idea why jsr (a5) ; call Dos-function move.l #txt,d2 ; address of text move.l #txtend-txt,d3 ; length of text move.l -24(a2),a4 ; function = Write() moveq #12,d0 ; ???? (as above, seems to be important) jsr (a5) ; call Dos-function wait btst #6,$bfe001 ; test left mouse button bne wait ; wait until pressed ; the next section is copied from the original reset routine ; (reset starts at $fc00d2) lea.l $040000,a7 ; stack-pointer lea.l $dff000,a4 ; startaddress of customchips move.w #$7fff,d0 move.w d0,154(a4) ; disable interrupts move.w d0,156(a4) ; disable interrupt request move.w d0,150(a4) ; disable DMA move.w #512,256(a4) ; bitplane control move.w #0,272(a4) ; ??? move.w #$444,384(a4) ; set color 0 (dark grey) ; some registers have to be set to a specified value: lea.l $400,a6 ; a6 = execbase suba.w #$fd8a,a6 move.l #0,a4 ; no fast mem move.l #$ffffffff,d6 ; d6 holds the error code, -1= no guru jmp $fc0208 ; reset and boot text dc.b 'Insert disk & press left mouse button',10 textend equ * ------------------------------------------------------------------- BTW I coudn't download this program to host, i had to type it in, so there might be a bug somewere, just tell me if doesn't work... -Werner Werner Guenther (g35@dhdurz1.bitnet) Hi, I tried your program to disable any expansion memory on the 500 and 2000, but it gurued on me (00000004.xxxxxx -sorry I'm at work forgot to write down the address). I read you typed it in from memory and I assume you got an address wrong. I HATE paying EA for an upgrade to a few games I have that will not work on my (soon to arrive) A2000. Thanks for the source. Which assembler do you use ? I heard about a new one coming out (k-Seka from Kuma) heard anything about it ? I currently use Quelos assembler, its not specfically for the Amiga but I needed the closest Motorola Compatable assembler out. Well thanks for the program. John Chiodo AT&T Bell Labs IH 5A-441 (312)979-2863 Naperville, Il. From uucp Thu Dec 10 23:53 X 1987 >From rutgers!dhdurz1.bitnet!G35 Thu Dec 10 18:52:54 1987 remote from moss Received: by moss.ATT.COM (smail2.5) id AA02312; 10 Dec 87 18:52:54 EST (Thu) Received: by RUTGERS.EDU (5.54/1.15) id AA08790; Thu, 10 Dec 87 18:50:09 EST Message-Id: <8712102350.AA08790@RUTGERS.EDU> Received: from PSUVAX1.BITNET by WISCVM.WISC.EDU ; Thu, 10 Dec 87 17:36:56 CDT Date: Wed, 09 Dec 87 18:53:50 GMT To: moss!ihlpg!chiodo From: rutgers!dhdurz1.bitnet!G35 Subject: RE:NoMem X-Status: O Date: 9 December 87, 18:52:44 GMT From: GUENTHER WERNER G35 at DHDURZ1 To: MOSS!IHLPG!CHIODO at RUTGERS HI, I got you message yesterday, so I took a printout of my posting home and typed it in... well, it works ! So the problem seems to be my/your assembler/linker. I use a very old version from MetaComCo (11.??), I don't have your assembler and haven't even heard about it, but I don't see why we shound't get the program work: 1) The program has to be invoked from CLI as some of the registers are supposed to point to some data field (in this case A2 should point to the dos-action-table and A5 to the dos-call routine) 2) The program shoud be RELOCATABLE, if your assembler does not, you can force relocation. Just substitute any move.l #address,register (only addresses whithin the program!) by lea #address(PC),An move.l An,register (only if 'register' isn't 'An' -:) (this is only one of the possibilities...) PS. Relocation Table is normaly set up by the Linker.... so the assembler should produce an object file... 3) Everything above 'bne wait' might be deleted, as it only prints a silly message and waits for left-mouse-button. To say the truth the program still works if everything including ';some registers have...' is trashed. I'm shure I told you a lot of things you already know, but this one might be new: the k-seka assembler is very popular here in Germany, it's an integrated assembler-editor-debugger package which loads up all in one, you dont't have to use CLI or linkers or dissasemblers. The only drawback is that I don't own it. ok, goobye, hope you get this message, I get usualy lost in nets,portals, gateways,uucp,uue etc.,etc... -werner