Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.

Hot answers tagged

26

Internally, a BASIC program isn't represented as the text you see when you list it, but as a tokenized data structure where each of the language keywords are represented in an optimized 1-character form. Basically, if the upper bit is set in a character byte (i.e. values >= 128/$80), it is processed as a token. Note that this does not only apply to the ...


22

Simple reason: Commodore had an overstock of 2114 Chips at that time (*1), so Jack Tramiel, then president of Commodore, ordered the project (*2) to use them. Yeah, but why 5 KiB? Why not just 4KiB? Due the nature of the 6502, RAM is needed at address 0, while the way the 6560 VIC (*3) was addressed called for RAM at $1xxx. So with a continous memory of 4 ...


17

The Fix for cc65 This was discussed in cc65 issue #946 and fixed by cc65 PR #965. That was merged to the master branch on 2019-10-26, and should appear in V2.19 of cc65. (I don't know when that release will happen, however; it's been five months since the last release.) It is, however, quite easy to do your own build of cc65 if you want to use the master ...


17

C64 Basic used a CR as EOL for disk files. (source: Commodore SX-64 User's Guide, page 22: “CR stands for the CHR$ code 13, the carriage return, which is automatically PRINTed at the end of ever PRINT or PRINT# statement … ”, and verified by hex dump of disk image showing 0x0d at line end.)


15

What I don't understand is why this quirk exists and how it works. As usual, lousy programming. It's a routine that exists in next to every Microsoft Basic, but often modified by the receiving company. It's used to list a line. On the 6502 version space was a premium, so they tried to cut down as much as possible in tests. And lets be serious, a 'real' ...


12

You're correct; the only interrupts on offer in a Vic-20 are those from a VIA — they're plain old 6522s in the Vic-20, not 6526s. The original VIC chip exposes the current scan line via a couple of registers so instead you'd perform a busy loop until it got to the number you wanted, then cue the VIA. I'm not a C64 expert but besides the lack of hardware ...


12

You cannot do that on the VIC-20; not only is no such feature provided by the built-in hardware but there's also no ROMDIS signal on the memory expansion bus or anything else similar. PETs with a 64kb upgrade have a register at $FFF0 for memory selection that allows the ROMs to be paged out (see e.g. "2.2 Control Register" in this document — the 8096 is an ...


9

I thought the RS-232 port on the Vic-20 was completely separate from the cartridge port, so a thing had to be plugged into one or the other, and if the modem was plugged into the latter then it could not use the former. What am I missing? Or better what is mixed up. The device (Serial IEC) bus is often called a serial port, but that one was driven by VIA#2 ...


9

First note that in "real" retro computers the amount of address lines on a memory chip is generally much lower than the address lines the CPU has. This means that you won't be able to "fill" the CPU's address space without using some more logic, and, obviously, multiple memory chips. Beyond its address and data lines, every memory chip has some more control ...


8

SD2IEC SD2IEC is a free software which turns an ATmega644 microcontroller into an emulated VC1541. It attempts a near-complete emulation (I think REL files aren't implemented, but nearly noone ever used them.) The emulation also supports some common fastloaders, most prominently that of The Final Cartridge III. You store .d64 disk images onto a FAT ...


8

I'm not really sure how this question is meant, so this is maybe less of an answer as an attempt to understand the question first and answer accordingly. If I attach a 16 KiB EEPROM to a 6502 or similar, and put some kind of operating system on it, it will run fine, but won't have access to any other form of memory. You may still need logic to assign the ...


7

Monte Davidoff's floating point routines for early Microsoft BASIC used Chebyshev Modified Taylor series for EXP(x). There's a very helpful disassembly of the TRS-80 MC-10 ROM here: http://www.roust-it.dk/coco/mc10/romlist.txt. It's 6800 assembly, and the whole commented routine (using the same constants) is: TBLF59B FCB $81,$38,$AA,$3B,$29 ;1.44269504 (...


7

The dongle for the PaperClip word processor plugged into joystick port 1. It read bits 0 and 1 from the dongle and wrote bits 2, 3 and 4 to control it. Keyboard interference probably wasn't an issue with this use case.


7

The VLOW signal on Pin 4 of the VIC-20's monitor port has a low-pass filter applied to it, where Pin 5 (VHIGH) is not filtered. See this post, which specifically says: Then the signal is buffered by emitter follower Q7, with a 270 ohm load and fed to pin 5 of the video socket directly and to pin 4 via 3.9uH inductor L2 and C18 which together form a low ...


7

Here are the answers of which I am aware, and I know there are others: https://jammingsignal.com/commodore-wi-fi-modem/ Schema's WiFi modem. Connects via the user port. Has a TFT display, and you connect to WiFi using Hayes-modem-like AT commands. http://www.lemon64.com/forum/viewtopic.php?t=65312 C64net WiFi modem from Central Texas Commodore Users' ...


7

Pi1541 Pi1541 is a real-time, cycle exact, Commodore 1541 disk drive emulator that can run on a Raspberry Pi 3B, 3B+ or 3A+. It's a Raspberry Pi hat and some specialized software that emulates the 6502 CPU as well as the two 6522 VIAs of a real Commodore 1541 floppy drive. It emulates the whole disk drive so floppy speeders or any other specialized ...


6

The VIC-20 has 1K of low memory ram containing room for the zeropage, the stack and kernal and basic working areas. ($000-$03FF) and 4K of main RAM ($1000-$1FFF) so the main ram is a multiple of 4. see memory map


6

Fax machines used to use thermal paper by the pallet, and it is still commonly available wherever office supplies are sold (including amazon). While this will be wider (not, as the problem is with the cash register rolls, narrower) than what these vintage printers need, this problem can be fixed with a guide and a sharp knife (and in the worst case re-...


5

The Compute's Gazette Disk menu used raster tricks to set the background color on a per-line basis, and the Demon Attack cartridge used a black character color as the "apparent" background while it changed the background color every scan line to achieve colorful demons like the Atari 2600 version. My recollection is that the Compute's Gazette menu did not ...


4

4 3/8 inches is 111.125 mm. A Google search for the Swedish term termopapper (thermal paper) 110mm gives me at least four hits on the first page alone for online stores that sell such paper. While none of those four appear at a glance to state whether it's in stock or not, it's clearly possible to procure. They even appear to offer different core diameters, ...


4

There is a series of cable variants called X1541 collectivly, which have been used as an adapter of the PC parallel port (when PCs still had an parallel port) to the Commodore IEC bus interface. This made it possible to connect a Commodore disk drive to an IBM PC, and also to emulate a Commodore disk drive by connecting the Commodore computer to the PC. ...


4

There were several cards, in the mid 1980s, based on use of 64 KiB. Except that it was usually not to use full 64 Kib, but to get RAM at the right location some (game) program wanted it. For example this page shows three different boards of that time frame. The main issue with RAM in the VIC20 is less the amount of RAM, than that its use swaps around, ...


3

The Inception 8 joysticks adapter uses a joystick port for two-way communication between C64 and Inception board. Basically, a program at the C64 would send a command sequence via the joystick port, switches the port to listen and receives the Inception board's reply. In most cases, the information communicated is the state of the joysticks connected to the ...


3

The Atari's originally included a 12V feed that was passed out through SIO and could be used to drive RS-232. I think the only product that ever used it was the 835 modem, but I'm not sure, it might have had a separate power supply as well. Starting from the 1200, the 12V was removed and people started to get creative. The later Atari modems were similar in ...


3

Novaterm 10 has built-in PPP and a telnet client. It does NOT have a working web or ftp client. You'll need a Swiftlink, Turbo232 or HART cartridge, a modem, and a dialup ISP. There are various ethernet cards like the 64NIC+, The Final Ethernet, and RR-Net which work with various software and alternative operating systems for the C64 including Contiki and ...


2

I remember downloading a lot of dox files off BBS's back in the day, and given that most files were ascii from other platforms, I think the standard CrLf or Cr or Lf end of line was common. But I also remember word processors like Bank Street Writer and Speedscript being proprietary file formats. So it was probably dealers choice; no official standard, and ...


2

So-called cartridge modems existed for a few different platforms: Commodore - originally came out with the VICModem (1600) but also, later, the 1650, 1660, and 1670 modems, all of which fit onto the user port of the VIC-20, Commodore 64 or Commodore 128. While not technically cartridges, they were cartridge-like in format, and simply connected to the ...


1

Common 8-bit CPUs have sixteen address lines and eight data lines appearing on their own dedicated pins on the chip; these are connected in various ways to other devices in the system to form the system address bus and data bus. Memory and other devices have their own sets of address and data pins, which will be connected in various ways to the address and ...


1

While you can't do this on the VIC-20 at all, nothing is stopping you from programming your own ROM. It would not be difficult to create a ROM-switching socket or adapter of some sort, à la JiffyDOS, which does exactly this trick to let you switch from the custom high-speed-disk-I/O ROM to and from the standard ROM. This trick would, of course, work on the ...


1

The VIC-20 was aimed at the home gaming crowd who wanted to play video games but needed an excuse to justify to their wives why it was OK to drop $400 on a computer. The excuse was "could use it for the kids homework" or some such. That's why the thing had a full keyboard. However later when the C64 came out Commodore dropped the price on the 20's and ...


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