klm@munsell.UUCP (12/08/87)
I seem to recall that there is a 68020/68881 board for the Amiga that you install by pulling out your 68000 and plugging this board into it's socket. Is there such a beast? Is it too Amiga specific to be used as a general 68000 replacement? A friend of mine has a <generic 68000 board> that he would like to get a performance boost out of and this would seem like a rational way to go without replacing his whole system. He is a hardware person and probably wouldn't be too afraid of doing some, ahem, hacking to make it work. If you have any comments, please e-mail them to Ted Warren tlw@munsell. Don't reply to me or post to this group. He doesn't read this group, and I am leaving this site as of the 18th of December. I may be back on the net with a new address in the future. Then again, I may not. Goodbye Y'all, it's been fun. -- Kevin McBride - Newsaholic in Withdrawal // | Goodbye and so long Eikonix - A Kodak Co. // | until I get an account Until December 18th \\ // Amiga | set up at my new {encore,adelie}!munsell!klm \X/ Rules! | employer...
spierce@pnet01.cts.com (Stuart Pierce) (12/09/87)
A friend of mine added a 68020/68881 board to his Amiga 500. All of the games that we tried broke. I don't know whether this is because of the heavy copy-protection on the software, or what, but it has discouraged me from even considering a board of this type. Stuart Pierce
cmcmanis%pepper@Sun.COM (Chuck McManis) (12/10/87)
In article <2118@crash.cts.com> spierce@pnet01.cts.com (Stuart Pierce) writes: >A friend of mine added a 68020/68881 board to his Amiga 500. All of the games >that we tried broke. I don't know whether this is because of the heavy >copy-protection on the software, or what, but it has discouraged me from even >considering a board of this type. Generally, people who write games have the annoying habit of ignoring all the rules in the interest of speed. Invariably this breaks when the user upgrades the system. (Which is why the rules are there in the first place). What usually gets people is the Move SR, instruction which is privledged in the '020. If they had bothered to use the exec GetCC() function it would not be a problem. The other problem is that these programmers often have is that they use software timing loops that on the '020 make no sense at all. So the bottom line is if you just want to play games an '020 is not for you. It does however make compiles go faster. --Chuck McManis uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com These opinions are my own and no one elses, but you knew that didn't you.
rusty@vertigo.UUCP (M.W.HADDOCK) (12/10/87)
In article <36064@sun.uucp> cmcmanis@sun.UUCP (Chuck McManis) writes: >In article <2118@crash.cts.com> spierce@pnet01.cts.com (Stuart Pierce) writes: >>A friend of mine added a 68020/68881 board to his Amiga 500. All of the games >>that we tried broke. I don't know whether this is because of the heavy I guess you didn't try Marble Madness.... I play it on my CSA '020. The '020 actually makes the game playable and ==VERY== responsive - even by TWO people and then it's still got some CPU to spare!!! And no, I play from a Marauder backup but I haven't moved the thing to RAM yet. >>copy-protection on the software, or what, but it has discouraged me from even >>considering a board of this type. > >So the bottom line is if you just want to play games >an '020 is not for you. It does however make compiles go faster. Maybe I'm not much of a game player but I'd try the game on an '020 first before saying "pphhht" to it. Compiles with Manx go REALLY fast especially when everything's in RAM. I've never seen a compiler move that quick b'fore. Cache off, -Rusty- -- Rusty Haddock {{uunet!likewise!}cbosgd,rutgers!moss}!vertigo!rusty AT&T-IS Consumer Products Laboratories - Human Factors Laboratory Holmdel, New Joysey 07733 (201) 834-1023 -- Being schizophrenic is better than living alone. --
john13@garfield.UUCP (John Russell) (12/11/87)
In article <36064@sun.uucp> cmcmanis@sun.UUCP (Chuck McManis) writes: >In article <2118@crash.cts.com> spierce@pnet01.cts.com (Stuart Pierce) writes: >>A friend of mine added a 68020/68881 board to his Amiga 500. All of the games >>that we tried broke. > >Generally, people who write games have the annoying habit of ignoring all >the rules in the interest of speed. Invariably this breaks when the user >upgrades the system. (Which is why the rules are there in the first place). >What usually gets people is the Move SR, instruction which is privledged >in the '020. If they had bothered to use the exec GetCC() function >it would not be a problem. I've seen this mentioned a number of times, but no concrete examples of how it would be used or cases which would break with a 68020. Is moving the status register something that would only happen if you used assembler, or do any of the compilers generate it in certain cases? I certainly wouldn't want statements like "if (x == 0)" to start breaking :-) ! I imagine someone skilled enough to program a game on the Amiga in assembly who didn't use GetCC() when appropriate simply had't run into it, tucked away as it is in the middle of the other Exec functions. Speaking of things breaking, is a numeric constant of the form 08 or 09 strictly legal under K&R C? It showed up in an old C-A program compiled under Greenhills C, and Manx complained since it expected numbers starting with 0 to be either hex (0x...) or octal (0...). John -- "Klaatu barada nikto... I always wondered what those words meant." "It means live from New York, IT'S SATURDAY NIGHT!" -- Ronald Reagan (Phil Hartman) shows Mikhail Gorbachev (Danny DeVito) the Washington sights
dillon@CORY.BERKELEY.EDU (Matt Dillon) (12/12/87)
>I've seen this mentioned a number of times, but no concrete examples of how >it would be used or cases which would break with a 68020. > >Is moving the status register something that would only happen if you used >assembler, or do any of the compilers generate it in certain cases? I certainly I know of no compilers which use MOVE SR, it is strickly a hand-programmed opcode. The SR contains the condition codes, supervisor state, trace mode, and interrupt mask. The only reason anybody uses MOVE SR,x is to check the trace mode, supervisor state, or interrupt mask. The condition codes can be read/written with MOVE CCR. Motorola decided MOVE SR should become privilaged (user programs should not know about supervisor flags) under the 68010 and 68020. I see it in copyprotection a lot, but not much else. >Speaking of things breaking, is a numeric constant of the form 08 or 09 >strictly legal under K&R C? It showed up in an old C-A program compiled under Not legal. It is supposed to be octal. -Matt
cmcmanis%pepper@Sun.COM (Chuck McManis) (12/12/87)
>I've seen this mentioned a number of times, but no concrete examples of how >it would be used or cases which would break with a 68020. What happens is that most games are written in assembler for speed. The 68000 keeps its condition codes in the status register. When you want to check some combination of the status bits the assy programmer moves the status register into a data register and then uses the TEST instruction to sample the bits of interest. On a 68000 this works fine, on an '010 or '020 it cause a supervisor trap. > Is moving the status register something that would only happen > if you used assembler, or do any of the compilers generate it > in certain cases? I certainly wouldn't want statements like "if > (x == 0)" to start breaking :-) ! Yes, all of the high level languages I know of use the GetCC form to get the condition codes from the status register. > ... I imagine someone skilled > enough to program a game on the Amiga in assembly who didn't > use GetCC() when appropriate simply had't run into it, tucked > away as it is in the middle of the other Exec functions. Wrong, strangely enough a lot of people who program games for the Amiga seem to be stuck in a C64 mentality mode. You can recognize them by their desire to go to the hardware first rather than see if the OS can provide what they need. I realize that sometimes this is required and have no qualms with it when people can say "Well I tried using function X and just couldn't get the speed I needed, so I went directly to the hardware." But things like dropping data in to absolute memory locations, doing their own memory allocation schemes (which cannot be later made to specify chip memory only) etc etc. They say, "I'm not using Intuition, so why should I use Exec?" --Chuck McManis uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com These opinions are my own and no one elses, but you knew that didn't you.
phils@tekig.TEK.COM (Phil Staub) (12/12/87)
In article <8712111630.AA17999@cory.Berkeley.EDU> dillon@CORY.BERKELEY.EDU (Matt Dillon) writes: > I know of no compilers which use MOVE SR, it is strickly a >hand-programmed opcode. The SR contains the condition codes, supervisor state, >trace mode, and interrupt mask. The only reason anybody uses MOVE SR,x is >to check the trace mode, supervisor state, or interrupt mask. The condition >codes can be read/written with MOVE CCR. Motorola decided MOVE SR should >become privilaged (user programs should not know about supervisor flags) under >the 68010 and 68020. > > I see it in copyprotection a lot, but not much else. > > -Matt Check the edge of the page describing the MOVE CCR,<ea> instruction in the 68000 Programmers Reference Manual, and you'll see a little black bar indicating that a MOVE with a source operand of CCR is a 68010/68012 only instruction. This is the real problem. 68000 programs often use MOVE SR,<ea> to read the condition codes, since the MOVE CCR,<ea> instruction does not exist. 68010 programs *should* use MOVE CCR,<ea> to achieve the same purpose (i.e., if *all* they're interested in is the condition codes). There is no single solution which works on both processors, hence the GetCC() function. AmigaDOS determines which processor is installed on bootup and ensures that the right instruction (MOVE CCR, or MOVE SR,) gets executed as a result of branching to the GetCC vector in the jump table for the Exec library. Phil -- ------------------------------------------------------------------------------ Phil Staub "I do NOT approve. I merely said I UNDERSTAND." tektronix!tekigm2!phils - Spock phils@tekigm2.TEK.COM
randy@peora.ccur.com (Randy Hendry) (12/17/87)
>>Speaking of things breaking, is a numeric constant of the form 08 or 09 >>strictly legal under K&R C? It showed up in an old C-A program compiled under > > Not legal. It is supposed to be octal. Legal (but strange): K&R p.180 2.4.1 Integer constants: "An integer constant consisting of a sequence of digits is taken to be octal if it begins with 0 (digit zero), decimal otherwise. The digits 8 and 9 have octal value 10 and 11 respectively." However, the ANSI draft states things differently. X3J11/87-140 (August 3, 1987) p.24 ll.27-29: "A decimal constant begins with a nonzero digit and consists of a sequence of decimal digits. An octal constant consists of the prefix 0 optionally followed by a sequence of the digits 0 throught 7 only." -- Randy Hendry randy@peora.ccur.com (305) 850-1040 Concurrent Computer Corporation 2486 Sand Lake Road, Orlando, FL 32809-7642
cks@radio.toronto.edu (Chris Siebenmann) (12/17/87)
In article <8712111630.AA17999@cory.Berkeley.EDU> dillon@CORY.BERKELEY.EDU (Matt Dillon) writes: >>Speaking of things breaking, is a numeric constant of the form 08 or 09 >>strictly legal under K&R C? It showed up in an old C-A program compiled under > > Not legal. It is supposed to be octal. It is actually legal in K&R C. I don't know about its status in ANSI C; H&S says that 'originally, C also allowed the digits 8 and 9 in octal constants, but using them was always considered to be bad style' which leads me to suspect that many modern compilers no longer support them. The people in comp.lang.c would probably know the current status if anyone is really interested. Our Sun compiler (SunOS 3.4) supports them; Amiga Aztec C doesn't. Does anyone know if Lattice C does? [References: H&S section 2.7.1 (page 17 of the first edition) and K&R page 180, section 2.4.1.] -- "Hey, that's why Dad moved to Colorado. He sits Zen now. Me, I like the mountains." Chris Siebenmann {allegra,mnetor,decvax,pyramid}!utgpu!radio!cks cks@radio.toronto.edu or ...!utgpu!{yetti!lethe, darwin}!ontmoh!cks
alex@.UUCP (Alex Laney) (12/18/87)
In article <2118@crash.cts.com>, spierce@pnet01.cts.com (Stuart Pierce) writes: > A friend of mine added a 68020/68881 board to his Amiga 500. All of the games > that we tried broke. Tell us which ones! Most games are written in assembler, (should be:-) so they probably break on the old status register access instruction which is privileged on the '010,'020, etc. -- Alex Laney alex@xicom.UUCP ...utzoo!dciem!nrcaer!xios!xicom!alex Xicom Technologies, 205-1545 Carling Av., Ottawa, Ontario, Canada We may have written the SNA software you use. The opinions are my own.
kkaempf@rmi.UUCP (Klaus Kaempf) (12/19/87)
Sorry to post this, but i think this might be of interest for all. A company in Germany produces such a board, with a 7.2 Mhz 68020 and a 12 Mhz 68881, that replaces the 68000 directly. The unpopulated PCB cost DM 50.-, fully populated and tested ca. DM 1000.-. I don't have the address of the company with me know, but i can post it if there's enough interest. A friend of mine got this board for his Amiga A2000 last week. He is about to write an article for a german amiga-magazine about his experience. But the board and the A2000 don't seem to be close friends. Every 10 Minutes to 2 hours the machine simply stops working and even refuses to boot. It seems that the problem is with the DTACK timing. The A2000 is one of the first that were available in Germany. A small label on the PCB board says 'Production date Feb 87'. Has this problem been solved with the B2000 ? Has anybody else experience with a 68020 in his amiga ? Is there a solution for the older A2000 ? Thanks in advance, Klaus
cthulhu@athena.mit.edu (Jim Reich) (12/22/87)
In article <486@.UUCP> alex@.UUCP (Alex Laney) writes: > Most games are written in assembler, (should be:-) so they >probably break on the old status register access instruction which is >privileged on the '010,'020, etc. I know that most of the 68020 boards for the 1000 and 2000 fix the problem with the privileged instructions, but if that's the problem, worry not (yet). There is a hack. Lurking out there somewhere in Netland and BBSland (but does anyone out there remember where?) is a file describing a do-it-yourself 68010 upgrade. It included a software "wedge," a small assembler program which hunted down and intercepted the nasty instructions... May not help with copy protected programs, though... -- Jim cthulhu@athena.mit.edu --------------------------------------------------------------------------- "Does the Amiga ever get user meditation errors?" ---------------------------------------------------------------------------
schein@cbmvax.UUCP (Dan Schein CATS) (12/22/87)
In article <2086@bloom-beacon.MIT.EDU> cthulhu@athena.mit.edu (Jim Reich) writes: >In article <486@.UUCP> alex@.UUCP (Alex Laney) writes: >> Most games are written in assembler, (should be:-) so they >>probably break on the old status register access instruction which is >>privileged on the '010,'020, etc. > >I know that most of the 68020 boards for the 1000 and 2000 fix the problem >with the privileged instructions, but if that's the problem, worry not (yet). >There is a hack. Lurking out there somewhere in Netland and BBSland (but does >anyone out there remember where?) is a file describing a do-it-yourself 68010 >upgrade. It included a software "wedge," a small assembler program which >hunted down and intercepted the nasty instructions... May not help with >copy protected programs, though... This wedge is called DeciGel. I think it is on one of the Fish disks and if not - its on the commercial services (or maybe a BBS near you). > >"Does the Amiga ever get user meditation errors?" I don't know about user meditation errors, but my hacking sure causes my Amiga to get upset with me at times :-) -- Dan Schein uucp: {ihnp4|allegra|burdvax|rutgers}!cbmvax!schein Commodore AMIGA Bix: dschein Plink: Dan*CATS 1200 Wilson Drive phone: (215) 431-9100 ext. 9542 West Chester PA 19380 +----------------------------------------------------------------------------+ All spelling mistakes are a result of my efforts to avoid education :-) +----------------------------------------------------------------------------+ I help Commodore by supporting the AMIGA. Commodore supports me by allowing me to form my own suggestions and comments.
phils@tekig.TEK.COM (Phil Staub) (12/23/87)
In article <2086@bloom-beacon.MIT.EDU> cthulhu@athena.mit.edu (Jim Reich) writes:
.I know that most of the 68020 boards for the 1000 and 2000 fix the problem
.with the privileged instructions, but if that's the problem, worry not (yet).
.There is a hack. Lurking out there somewhere in Netland and BBSland (but does
.anyone out there remember where?) is a file describing a do-it-yourself 68010
^^^^^^
Yup, it's called DeciGel by Scott Turner and it's on FishDisk #18. Also, I
used the concept in a program I send to the {sources|binaries} newsgroups
about a week ago. It should show up any day now. Look for it as
PSTransformer.
.upgrade. It included a software "wedge," a small assembler program which
.hunted down and intercepted the nasty instructions... May not help with
.copy protected programs, though...
. -- Jim
. cthulhu@athena.mit.edu
Phil
--
------------------------------------------------------------------------------
Phil Staub "I do NOT approve. I merely said I UNDERSTAND."
tektronix!tekigm2!phils - Spock
phils@tekigm2.TEK.COM
farren@gethen.UUCP (Michael J. Farren) (12/26/87)
In article <486@.UUCP> alex@.UUCP (Alex Laney) writes: >Most games are written in assembler, (should be:-) This is rather an outmoded statement. While many games, especially those written for the 6502 processors, were written in assembler, this was mostly a response to the fact that higher-level languages on 8-bit processors generally require such a performance hit that they just weren't suitable, especially for typical arcade games, with their requirements for fast graphics. Even there, though, the rule was not hard and fast. In my five years doing games, I wrote games in BASIC, both interpreted and compiled, games in C, and games in assembler, depending on which was required to do the job. When you have a computer with the processing power of the Amiga, especially when the graphics power the co-processors give you is considered, the necessity for programming in assembler becomes much smaller. This isn't to say that assembler has no place - any time you want to squeeze the last possible ounce of performance in the minimum amount of memory, assembler is the way to go - but it does mean that assembler is quite often a choice among several choices, rather than the only way to go. -- Michael J. Farren | "INVESTIGATE your point of view, don't just {ucbvax, uunet, hoptoad}! | dogmatize it! Reflect on it and re-evaluate unisoft!gethen!farren | it. You may want to change your mind someday." gethen!farren@lll-winken.arpa | Tom Reingold, from alt.flame
grr@cbmvax.UUCP (George Robbins) (12/28/87)
In article <638@tekig.TEK.COM> phils@tekig.UUCP (Phil Staub) writes: > In article <8712111630.AA17999@cory.Berkeley.EDU> dillon@CORY.BERKELEY.EDU (Matt Dillon) writes: > > I know of no compilers which use MOVE SR, it is strickly a > >hand-programmed opcode. The SR contains the condition codes, supervisor > >state, > >trace mode, and interrupt mask. The only reason anybody uses MOVE SR,x is > >to check the trace mode, supervisor state, or interrupt mask. The condition > >codes can be read/written with MOVE CCR. Motorola decided MOVE SR should > >become privilaged (user programs should not know about supervisor flags) > >under the 68010 and 68020. > > Check the edge of the page describing the MOVE CCR,<ea> instruction in > the 68000 Programmers Reference Manual, and you'll see a little black > bar indicating that a MOVE with a source operand of CCR is a > 68010/68012 only instruction. This is the real problem. 68000 programs > often use MOVE SR,<ea> to read the condition codes, since the MOVE > CCR,<ea> instruction does not exist. 68010 programs *should* use MOVE > CCR,<ea> to achieve the same purpose (i.e., if *all* they're interested > in is the condition codes). There is no single solution which works on > both processors, hence the GetCC() function. AmigaDOS determines which > processor is installed on bootup and ensures that the right instruction > (MOVE CCR, or MOVE SR,) gets executed as a result of branching to the > GetCC vector in the jump table for the Exec library. Yes, Motorola screwed up on this, not implementing the MOV CCR register in the first places, and then deciding MOV SR should be illegal in user mode, rather than just masking off the bits that the user shouldn't be concerned with. In either case, one might argue that storing the condition codes, rather than testing them is a unusual activity, best left to system software, but once people have started using the instruction it's a little late. I belive either case can be handled adequatly with a trap handler, but for some reason (effiency? religion?) this is not built into the Amiga software. -- George Robbins - now working for, uucp: {uunet|ihnp4|rutgers}!cbmvax!grr but no way officially representing arpa: cbmvax!grr@uunet.uu.net Commodore, Engineering Department fone: 215-431-9255 (only by moonlite)