Spiro's CBM Blog

To content | To menu | To search

Friday, March 5 2010

Commodore GCR "mysteries"

In a forum post on the German Forum-64, Nicolas Welte ("x1541") explains that the Commodore engineers implemented the BIN to GCR conversion in the 8250 drives very tricky. He suggests that Commodore engineers generated the GCR code with a trick. In this blog entry, we will see that there was not much room to do otherwise.

Continue reading...

Saturday, July 18 2009

Disk drive compatibility between the Commodore 4040, 2031, 1540 and 1541 drives

Hello,

this is an entry where I recycle a text I wrote on Usenet in comp.sys.cbm (Message-ID: <slrnh4d06s.hip.usenet-200901@news.trikaliotis.net> about the Incompatibility between 4040 and 2031/1540/1541 drive's disks).

Someone asked about the incompatibility between disks written with the 4040 drive, and ones written with a 1541 drive. I try to give some insight into why there once was an incompatibility, but this should have been gone with newer drives (that is: Newer firmware).

Continue reading...

Sunday, April 5 2009

Using FFMPEG DLL with MSVC compiled program

Hello,

this is a somehow unusual blog post for this blog. For VICE, we had a problem with using the FFMPEG DLLs from code that was compiled with the Microsoft C compiler (MSVC6 up to MSVC 2008). When using these DLLs, VICE crashed with segmentation faults.

After we found the solution, we also found out that someone else was having the same problem here: MinGW DLL used in MinGW and VC++ app (memory alignment): It was simply an alignment problem.

Continue reading...

Wednesday, January 28 2009

Memory-Read (M-R) command error in the floppy drives 2031, 1540, 1541, 1570, 1571, 1581 (and, most probably, 1551)

I just found out something that was not known to me beforehand. I am not sure if this is a known bug. However, I decided to document it, in case someone else stumbles upon it.

If issuing a Memory-Read ("M-R") command on the floppy (2031, 1540, 1541, 1570, 1571, 1581), the M-R is stopped early if the memory area to read crosses a page boundary,

Additionally, you cannot read beyond $02D4 (on the 154x/157x drives) or $02CF (on the 1581 drive). The drive will just abort the read. Furthermore, it sends out an additional CR (0x0D), which is the normal end of the answer send back. However, because the data is incomplete, you might be tempted to believe that CR is part of the read data. However, it is not.

Continue reading...

Tuesday, December 16 2008

C64 talk at 25C3

There is an article by Michael Steil which will be printed in the Congress Proceedings of the 25th Chaos Communication Congress 2008 (25C3). It accompanies his talk "The Ultimate Commodore 64 Talk - Everything about the C64 in 64 Minutes". I take this opportunity to comment on some of the statements there, reviving this blog.

Continue reading...

Sunday, October 21 2007

The VICE monitor - part V: Debugging program execution

In my last post, we saw how to start the execution at a specific address. I presented an example on how to call a function; in that case, it was the function to set the cursor to a specific address. Unfortunately, it did not work as it should have worked. In this part of the sequel, we will find out what went wrong and why the C64 behaved in a rather irritating way.

Continue reading...

Saturday, October 6 2007

The VICE monitor - part IV: Program execution and changing registers

Being able to read and write memory contents, disassembling and using lables is a good thing when it comes to use a monitor. Anyhow, in many cases, you want to change the execution of a program. This is what a debugger is really like, and how you do this is covered in this part.

This part will also cover how to specify and convert numbers in different number systems (decimal, hexadecimal, octal, binary).

Continue reading...

Sunday, April 22 2007

The VICE monitor - part III: Using labels

In this part of the sequel on the VICE machine language monitor, I will show you how you can ease your job when using labels for the monitor.

Continue reading...

Sunday, April 1 2007

The VICE monitor - part II: Disassembling

In the last part of the series of the VICE monitor Part I, I wrote how you can open the monitor and look at memory contents, that is, get a dump. In this part of the series, I will show you how to disassemble the memory, that is, you can examine the program that lies in the memory. Additionally, we will have a look at labels in the VICE monitor.

Continue reading...

Sunday, March 25 2007

What do you want to know about the VICE monitor.

I just started the series on the VICE monitor. Anyway, I can only write what I think is important. This might be different from what YOU want to know. Thus, please use the comments to this entry to tell me what you want to know.

Continue reading...

The VICE monitor - part I: Starting and showing memory contents

From time to time, I read questions about the monitor of VICE. It seems its usage is not self-explanatory. Thus, I will try to start a series of articles where I explain the usage of the monitor of VICE. This is part I of this series, which handles starting the monitor and using it to statically examine the state of the computer.

Continue reading...

Spiro has started blogging

This is my blog where I will start to write about some things you might or might not find interesting.

Continue reading...