30

On the Color Computer, I/O address &FF00 is used for both the joysticks and the keyboard row input. Bits 0/1 are toggled by the two joystick port buttons, and these bits are the same as rows 1/2 for the keyboard. BASIC continually scans for keyboard input by looking at &FF00 (for the row) and &FF02 (for the column). Since &FF02 will not ...


13

From here it looks like the official way is to use RND(N) to seed, where is N is a negative number. But according to this you can also just copy a byte from a timer to the RND seed with: POKE 280,PEEK(275) If your program shows a title screen with a loop checking for a user keypress, you could: Do X=RND(0) in the loop. This will put you at a random place ...


13

There are two variations of the cartridge port on the Color Computer lines. The attached image shows the pin out of the CoCo 2 & 3. The CoCo 1 cartridge port is slightly different, in that it offers -12 volts DC on pin 1 and +12 volts DC on pin 2 (from the Color Computer Technical Reference Manual (Tandy).pdf file available here): The CoCo 2 & 3 do ...


13

Most of this info comes from the Color Computer 3 Service Manual (26-3334), except for the actual frequencies used on the cassette: On the tape, frequency shift keying is used, with a zero bit encoded by a single 1200 Hz sine wave, and a one bit encoded by a single 2400 Hz sine wave. (Yes, this means some bytes play faster than others.) The service manual ...


13

Yes, it is pre-emptive. See: https://sourceforge.net/p/nitros9/wiki/The_Kernel/#multiprogramming In particular, it uses the 60 Hz interrupt to switch between active processes with the same priority. As a side note, some of the Color Computer I/O devices are CPU intensive (e.g., the bit-banger serial port and the floppy drive). This makes the system ...


13

It's one divided by the clock. So for 0.895 MHz divide 1 by 895000 and the answer is 1.117318 micro seconds. for 1.79 Mhz it's 558.6592 nano seconds. I suspect however that the clock will be some multiple of NTSC timing (or PAL for European computers). Wikipedia gives NTSC timing as 3.579545Mhz which divided by four gives 0.89488625Mhz (i.e. nearly your 0....


13

I posted this question because I had those thoughts, and then spent ages going through multiple dead ends until I finally found it (my Google-fu is on the fritz). So that I don't have to go through that again... According to an article by Marty Goodman in the July 1983 issue of Hot CoCo: The Head-Banger Bug You may have noticed that just after power up or ...


11

Based on the absolute dearth of information on the Motorola 68486/68487 video chipset (RMS), I would conclude that it was never officially released as a product for OEMs, and was therefore never used in any actual computer products. [UPDATE: Per OP finding, it appears that one company, Micro Concepts of the UK, was offering an SBC based on the 68000/010 ...


11

If you have a Multi-Pak, put the Program Pak in Slot 1 and set the switch to slot 2. Turn on the Multi-Pak and then the Color Computer 3. type: PALETTE RGB to set the proper color set. type: POKE 65407,0 to switch the Multi-Pak to slot 1. The game will then automatically start with the proper colors.


10

From Marty Goodman, writing in The Rainbow, January 1987, page 102: The reason for the Multi-Pak fix for the CoCo 3 is at least twofold. First, the older PAL chips used to decode the software slot select port for the Multi-Pak “ghosted” from $FF7F to $FF9F. That is, when a value was written to $FF7F, it appeared at $FF9F also, and vice versa. This ghosting ...


9

Your first option is to remove the 6809 from the CoCo. Some CoCo 1 and 2 models, all you have to do is remove the CPU from a socket and put a new one in. Other CoCo 1 and 2 models, and all CoCo 3 models have the CPU soldered directly to the PCB. You can use either destructive or non-destructive means to remove the existing CPU; that choice is up to you. ...


8

The major difference between drive speeds in classic computers is the philosophy and design of the drive and it's attachment mechanism. Some computers, such as the TRS-80/CoCo and Apple II lines, used a bus-level connection that allows the drive's controller to dump data in a parallel fashion from the drive to the computer's RAM. Other lines, such as Atari ...


8

I found a lovely answer on page 54 of "Color Computer 1/2/3 Hardware Programming" by Chris Lormont. The joystick and button values are found by reading addresses $FF60 - $FF63. The first time an address on the Color Computer 1/2/3 is accessed (read), it sets up an A/D conversion cycle for the channel as you specify above. THEN the next read is the value ...


7

The CoCo has an interrupt called fast interrupt (FIRQ) which is connected to the video output horizontal sync pulse. The IRQ happens every 1/16 of a millisecond (62.5 microseconds). The extended basic command timer uses this interrupt to increment its counter. Remember that the IRQ happens independently of what you see on screen so this is why the number ...


7

The documentation generally does apply correctly between OS-9 and NitrOS-9. To understand the advantages over OS-9, it is good to look back that the different eras of the project. In the beginning, Bill Nobel, Curtis Boyle, and Wes Gale decided to rewrite parts of the operating system to support to newly discovered features of the 6309 microprocessor. OS-9 ...


7

You can manage CoCo disk images quite easily with MAME's imgtool. I've assumed you want to use RS-DOS on a CoCo 2, launching xroar via: xroar -default-machine coco2bus To make a blank, single-sided disk image, enter imgtool create coco_jvc_rsdos new.dsk The file will be 161280 bytes long: 35 tracks × 9 sectors × 512 bytes per sector. I'm assuming your ...


7

The fewer kinds of input a computer has to deal with, the easier its life is. This applies equally to physical ports and to the provisions for input in the BIOS and operating system generally. Abolishing “joystick button input” as a separate category makes everything much simpler. The same applies to function keys on keyboards (such as the arrow keys). ...


7

Tim's answer referencing Marty Goodman offers a good explanation, but not really any options for users today who might need to make this upgrade. The 3024 model can be modified with a simple PAL upgrade, available from Cloud9 If you have access to a programmer and the proper GAL, there's information on Coco3.com for another option: If you get a Gray or ...


6

For the ZX Spectrum there is a project called ZX Pie. AFAIU this is a TK-Pie application. As the name suggests, it's a board attached to the ZX Spectrum's expansion slot that 'listens' the Address Bus and the Data Bus and connect them to a Raspberry Pi. Then the Pi works like a latch and uses all data stored in Video RAM area starting from 4000h and ...


6

According to this gem Tandy's Little Wonder, The Color Computer 1979-1991, When OS-9 came out a flaw was quickly discovered in the Tandy disk controller (and all others made at that time). Although OS-9 was a multi-user, multi-tasking true DOS, the CoCo disk controller was not! The controller used a simple design that interrupted the 6809 during disk ...


6

While in normal mode, the SCII (and the Tandy and other manufacturers' controllers) would not buffer data. The CPU would wait as the drive would read and write data to and from the computer's memory. While data transfer for the CoCo was pretty quick for the day, this process would not allow the CPU to do any other work. The SCII had a second mode which was ...


5

I would make the assumption that, in the CoCo 3's case, a 32k, 64k or 128k ROM can be created. According to the discussion on the CoCo Mailing list, the normal size is a little less than 16k or 32k. Any carts that require larger ROMS need to have hardware MMU's to take advantage of a bank-switching scheme. There's a seller on eBay who sells a 512k cart ...


4

Address 65280 (Hex &FF00) is the I/O port on the CoCo for the joystick and the keyboard row input. It is the case that the lower 2 bits are assigned to the left and right joystick buttons. Bit 7 is associated with the joystick direction, which is why it can be either 0 OR 1 while a button is pressed. So, your proposed approach is correct.


4

The manual asks for a "tee" connector - that's a simple wire connection without any logic inside (and equivalent to monitor passthrough that's also supported). You can safely use an Y-cable instead.


4

With some Google sorcery, I finally located a system that used the elusive RMS chip set: The Microbox 3 manufactured and sold by UK-based company "Micro Concepts" from Cheltenham! I can only find it described in detail one place and that is in the Electronics & Wireless World issue of May 1986. On page 63, it is announced as the British rival to the ...


3

To make sure you have a chip that will handle the needed clock rate, look for the letter between the 3 or 8 and the 0. A 68A09E or 63A09E can run at up to 1 MHz. A 68B09E or 63B09E can run at up to 2 MHz. There are 63C09Es that can run at up to 3 MHz.


3

If your lucky enough to have a socketed Microprocessor from the factory, the process is removing the old chip and installing the new chip. You do have to make sure your new 6309 is the E version, E for external clock. You also have to make sure your new part can handle the 1.8 mHz clock speed for a CoCo 3, or 0.89 mHz clock speed of the CoCo 1 and 2. If ...


2

OS-9, which NitrOS-9 is based on, could be either pre-emptive or not. If not, context switches could occur when the currently running process did a system call. To be pre-emptive, there has to be a source of periodic interrupts and a module, clock, with an interface that lets the OS use said source.


2

This very topic is currently being debated on the Cocolist - the answer is 'a little less than 32K' on a Coco3, unless (as Cactus states above) you resort to bank switching: https://pairlist5.pair.net/pipermail/coco/2016-May/153680.html


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