Misc Commodore Projects

  • strict warning: Non-static method view::load() should not be called statically in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/views.module on line 1118.
  • strict warning: Declaration of views_handler_field::query() should be compatible with views_handler::query($group_by = false) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_field.inc on line 1148.
  • strict warning: Declaration of views_handler_sort::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_sort.inc on line 165.
  • strict warning: Declaration of views_handler_sort::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_sort.inc on line 165.
  • strict warning: Declaration of views_handler_sort::query() should be compatible with views_handler::query($group_by = false) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_sort.inc on line 165.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_filter.inc on line 599.
  • strict warning: Declaration of views_handler_filter::query() should be compatible with views_handler::query($group_by = false) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_filter.inc on line 599.
  • strict warning: Non-static method views_many_to_one_helper::option_definition() should not be called statically, assuming $this from incompatible context in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_filter_many_to_one.inc on line 25.
  • strict warning: Non-static method views_many_to_one_helper::option_definition() should not be called statically, assuming $this from incompatible context in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/handlers/views_handler_filter_many_to_one.inc on line 25.
  • strict warning: Declaration of views_plugin_query::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/plugins/views_plugin_query.inc on line 181.
  • strict warning: Declaration of views_plugin_style_default::options() should be compatible with views_object::options() in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/plugins/views_plugin_style_default.inc on line 24.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /var/www/vhosts/kludgesoft.com/httpdocs/sites/all/modules/views/plugins/views_plugin_row.inc on line 136.

Greyscale renderer for JPX

renderer screenshot

Above is a shot of my renderer displaying 'pup.jpg'

- it uses standard hires bitmap mode and a floyd-steinburg error diffusion dither. For each 8x8 area of pixels, it finds the minimum and maximum grey levels of the image, and picks the two nearest VIC greys for that block and dithers using those levels. This means that only the nearest appropriate grey levels are used, but for some parts of the image it can mean some blocking effects (for example, around the pups ear on the left).

Adrian Gonzales original renderer used standard bitmap mode also but used the same 2 grey levels for the entire screen. It also used dark grey & light grey which results in a loss of contrast compared with using white & black. This is the renderer I first saw and thought I could improve on, as above.

Adrian has since made two more renderers:

  • MCM-lace greyscale renderer which uses 2 multicolour mode bitmaps interlaced in alternate frames, in a mode sometimes called 'drazlace'. By mixing different grey levels with each alternate frame you get an in-between grey level, but at the expense of noticable flicker. (Note, you can't see this flicker in the screenshot becasue it is a merged image of both frames)
  • IFLI full-colour renderer using two interlaced FLI mode screens. I'm not completely sure how he did the colour selection for this, but it's pretty damn good!. Again, this mode suffers from flicker (see comment above)

These two modes use lots of memory (18 and 32k respectively) and require tricks to maintain the display. My renderer uses standard hires bitmap mode with no code required to maintain the display once it is rendered.

C64 'laptop'

A combination of a c64c keyboard/motherboard, 1581 disk drive internals and sealed 12v batteries into a compact, portable, battery powered c64 system. Built into the keyboard is a 'button joystick' - similar to the mouse pointers found on some modern laptops. The screen is presently an external 5" b/w dc tv which can sit on top of the unit. The system uses a high efficiency power supply to extend battery life, and can operate either on internal batteries, 12vdc (eg. in a car) or mains power (via 12vdc adapter).

After mucking around with dozens of ideas for a case, I've finally found a case that, with little modification, fits all the components perfectly - a 64c case! It occured to me that I could use the case from the c64c, but just add about a 2cm spacer between the top & botton halves. This will leave enough space below the keyboard for the batteries, and above the main PCB for a 1581 drive mechanism & controller. Perfect!
 

Lightgun for the c64

Sometime in the past I managed to come across an atari lightgun, and this device works perfectly with a c64/128 using the lightpen interface on joystick port 1. I wrote an article about it which appeared in the now defunct 'Commodore Fever' paper magazine, and you can read it here.

Robotics with the c64

Using a c64 to control robots and other devices.

(these pages still in development)

Plus/4 version of d64it 20/05/2012 - 12:44

Imre Széll from Hungary (aka 'siz') has ported d64it to the Plus/4.

You can find his port here - D64IT plus/4 - and the forum discussion of the port on the Plus/4 world forums here.

I've also mirrored the full zip file (source and Plus/4, c64 & c128 programs) here - d64it.zip or just the Plus/4 version itself - d64it_plus4.prg

d64it-vic released - d64it for the Vic20! 05/09/2009 - 22:26

I've recently done a vic20 version of d64it, so now you can extract d64's (or create them) natively on your trusty (rusty?) old vic 20! It needs a vic with 8k or more of expansion ram.

You can download d64it-vic here.