Hot answers tagged

233

I'm the author of the TPUG article. The "BILL GATES SUCKS" message isn't really an Easter egg; that was just a conceit of mine to make the article a bit more interesting and to turn it into a bit of a puzzle. Here's how it works and how it was created: In any given infinite sequence random numbers, it's a mathematical certainty that a given subsequence of ...


97

Look at the development: ROM = read-only memory = can only be read when on the board, programmed in the chip factory. PROM = programmable read-only memory = can be programmed with a special programmer, but read-only when on the board. EPROM = erasable programmable read-only memory = can be repeatedly programmed with a special programmer, after erasing it ...


61

That's not a real easter egg. Someone just made an effort to find random seeds that produce the numbers to create the intended words. It would be an easter egg if the seed numbers were in some way related to CBM or Microsoft. A=RND(-A) initializes the (pseudo) random generator with A, generates a random number and stores it in A. The GOSUB20 subroutine then ...


39

The way I understand it, ROMs are like virtual games, Not really. ROMs are a piece of hardware storing a bit image. Like a disk, a tape or a punch card. It holds an image of the game's software. and emulators are like virtual game consoles, or handhelds. Basically yes. What I don't understand is how there are ROMs for arcade games, which don't have ...


31

What is algorithms use for boot/start sound (when turn on computer) Algorithm? Well, yes, technically everything is an algorithm. In this case it's simply executing the beep subroutine during reset, which in turn toggles the speaker line 192 times over 0.1s resulting in a sound of roughly 1 kHz, which should be is close to b′′. Lets have a look into the ...


31

EEPROM can't be "written to." It can be programmed. Programming is different. When there's EEPROM in a CPU's physical address space, ordinary write cycles will not affect it. Something out of the ordinary has to happen in order to change the EEPROM's contents. The oldest PROMs and EEPROMs had to be physically removed from the system and programmed ...


30

Excess capacity. ROM chips come in standard sizes based on powers of 2 and it is quite unlikely a particular size will be exactly what a game needs. For example, suppose a game displays numbers that are 8 x 8 pixels in size. It will need the digits from 0 to 9, each digit needs 64 bits so a ROM of 640 bits is required. That could be accommodated with a ...


27

I'd guess a lot of the systems used for development didn't clean the memory down in between usages. It's also likely that for games "gaps" got left between binary chunks. So if for a hypothetical system redefined characters had to start on a multiple of 256 (0x100) byte boundaries the memory layout might have looked like this: 0x0000 - 0x1789 - Compiled ...


22

The following is an excerpt from the article César Hernández Bañó and I wrote about the internals of the Inves Spectrum+, exposed after a detailed work of reverse enginnering. First, some background: César is the author of the first (and AFAIK, only) emulator that handles the oddities of the Inves Spectrum+. With time, his emulator has evolved and now it ...


21

The other answers already covered a lot, but there is something else that is important but which hasn't already been addressed in detail: Despite appearances to the contrary, arcade machines are quite frequently not built with unique hardware. For example, the hardware originally designed for Galaga was used for several additional games, including well ...


20

The Card featured 256 bytes of ROM. Is there evidence documenting how the cassette program was stored? The evidence is right there in the PCB photo you added. The two MMI 6301 chips, labled APPLE A3 and APPLE A4, at position 3 and 4, are 256 by 4 PROMs. The same type, produced by Monolithic Memories, as used on the Apple 1 motherboard for the monitor ...


18

I don't know if this is correct, but it seems to fit. The SNES sound chip is a full processor. It can run its own program and play sounds independently of the main processor. It is also possible for a Game Boy ROM to load a sound program into the SNES sound chip via the Super Game Boy. Animaniacs is one those games. While the way the SNES sound chip is ...


17

I've done this partially with Commodore PET Space Invaders which I used as a test program to debug my Commodore PET emulator. I used a disassembler to convert the program to assembly language and I then went through the code annotating it as I found out what it does. When I understood what a bit of code did, I would look for its entry point (my disassembler ...


17

Does fast page mode apply to ROM? No. Why should they? You're missing one step to start with in your chain of thoughts. (Fast) Page Mode is an improvement to the address multiplex protocol dynamic RAM uses. As such it isn't a general improvement, but a relative one, reducing the overhead the address multiplexing implies. Address multiplexing was ...


16

I don't know if this applies in every case, but, on the Commodore PET and by extension C64, an executable program file on disk/tape consisted of a load address (normally $0401 on the PET) and then literally a memory dump of the the region of RAM containing the program. The normal save routine would save all the memory until it got to the end of the BASIC ...


16

It can't be 'written to' in the sense of storing useful information written by a running program in the computer. It can be erased and re-programmed, which generally requires a special ROM programmer (rather than erasing and rewriting in place). So, the readonly-ness is from the viewpoint of the computer in which it's used. These days the line between that ...


15

The GBA's memory controller can be configured using WAITCNT, an MMIO port at 0x04000204, to use slow or fast timing when accessing the Game Pak slot. The BIOS boots up in slow mode, in case Nintendo would release games on slow ROM. But Nintendo ended up releasing all games on fast ROM, and when a game starts, it writes a value to WAITCNT to enable fast ...


15

As a personal project I had the idea to create a custom cartridge for my Commodore 64 and use an ATmega 1284p microcontroller to emulate eproms and/or custom chips. I doubt that this will work! The reason is simply the time needed by the microcontroller to react on a signal change: As far as I know, you have about 0.25µs to react on some edge on the C64 ...


15

You've answered your own question: this is a thankless and massive undertaking they of course can never make any money from it it's very illegal to make these available, which also puts them in serious danger of getting personally sued and having to pay money to Nintendo or others (this depends on the reader's jurisdiction, but it's a safe assumption) I'd ...


14

Splitting the ROM is not the same as byte-swapping the ROM. Amiga ROMs are usually split so that odd locations and even locations are stored in separate chips. This is because the 68000 has a 16-bit databus (i.e., it can fetch data 16 bits at a time), and the ROMs are normally 8 bits wide. The solution is to use two ROMs, so that one can contain the even ...


13

The original Apple II has up to 48K of RAM from $0000 to $BFFF and 10K of ROM between $C000 and $FFFF except for a hole between $D800 and $DFFF. You can get a language card which puts 16K of RAM under the ROM space. The Apple IIe has a full bank of 64K of RAM, just like the Apple II with the language card installed. The 128K models have an additional 64K ...


13

Simple Answer: Unlimited and Many Ofc, every system can only reserve a certain amount of real address space for cartridges, but then there is Bank Switching. Just take the original Atari 2600. Address space for ROM was 4 KiB, and many early games only used 2 KiB ROMs. But already in 1982 Burger Time came in a cartridge with 16 KiB ROM and some sort of bank ...


13

Your observation about the 64K address space is correct, your 32K RAM and 32K EEPROM will be able to fill that address space to 100%. In Z80 designs, the ROM/PROM/EPROM/EEPROM is usually placed starting at 0x0000 since when you do a RESET, the Z80 starts executing at 0x0000 and you usually want to have your program start there. Of course there are many ...


12

The standard US Apple //e Video ROM was pin compatible with 2732 (4k) EPROMs, but some foreign models (UK, German, French, Italian) used a 2764 (8k) compatible ROM with two character sets. Your clone might be the same or it might be different - the best way is to try to decode the pinout using either a logic probe (while on) or even a multimeter (while off) ...


12

There’s a detailed thread about this on Jul. Basically, there are three data storage orders used for Nintendo 64 ROMs: big-endian, which is the Nintendo 64’s native order (Z64 in the thread); little-endian, which is x86’s native order (N64); byte-swapped, which swaps bytes in the native data pair-wise (V64). Endianness determines the order in which data ...


11

You can get a sampling of prices for EPROMs the hard way, by checking ads from electronics magazine archives. For example on page 116 of Popular Electronics Jan. 1977 you can see the 1702A 2K(bit) EPROM listed for $12.95. The old magazines always had full-page ads with components near the end.


11

A typical EPROM series of that period is the 27xx series. Today's DIL EEPROMs still use the same pin layout. Access time varied with models. Datasheets with exact dates are difficult to google systematically, but for example, an Intel 2764A-250 had a 250ns access time in 1983, while the 2764A-1 variant had a 180ns access time in1989. So the ballpark is "...


11

RAM is designed to be quickly written many trillions of times without wearing out. Flash and EEPROM devices, by contrast, are designed to be quickly read many trillions of times without degradation, but writing will be orders of magnitude slower and impose significant wear; an EEPROM device that can reliably endure 10,000,000 write operations without ...


Only top voted, non community-wiki answers of a minimum length are eligible