TechTinkering - Retro Computers, Programming, General Technical Tinkering2023-11-15https://techtinkering.com/feed.xmlteykllModula-2 Compilers on CP/Mhttps://techtinkering.com/articles/modula-2-compilers-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2022-09-10
2022-09-10
Modula-2 is a great language in general and is a good choice for programming on CP/M. There are three good compilers available for CP/M which all require a Z80 processor and we'll compare each in turnIs SUBLEQ the Right Choice for a VM?https://techtinkering.com/articles/is-subleq-the-right-choice-for-a-vm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2022-06-24
2022-06-24
SUBLEQ is an interesting architecture because of its simplicity, adaptability and power. It is therefore an attractive choice for a simple virtual machine. However, this comes at a cost which we willXCCP: A Shell Extension for CP/Mhttps://techtinkering.com/articles/xccp-a-shell-extension-for-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2022-06-01
2022-06-01
XCCP describes itself as an Extended Console Command Processor for CP/M. It supports the 8080 and v1.0 was released by Anton R. Fleig in 1984. Like EPEX, XCCP doesn't require installing so we can begiEPEX: An Environment Extension for CP/Mhttps://techtinkering.com/articles/epex-an-environment-extension-for-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2022-05-18
2022-05-18
Epex is an evironment extension for CP/M. It stands for Environmental Processing EXecutive, and v1.1 was released by James H. Whorton in 1986. It can make using CP/M much more comfortable at the costFile Comparison Utilities on CP/Mhttps://techtinkering.com/articles/file-comparison-utilities-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2022-04-27
2022-04-27
There are many utilities available for CP/M to compare the differences between files and to distribute those differences. All the utilities in this article can be found on the Walnut Creek CD.
Binary 80 Columns in Software on the Commodore VIC-20https://techtinkering.com/articles/80-columns-in-software-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2022-01-20
2022-01-20
If you have good eyesight, a well-tuned display and patience it is possible to use 80 columns in software on the VIC-20. This is really just an experiment but considering the limitations of the Vic I Breakout Style Games on CP/Mhttps://techtinkering.com/articles/breakout-style-games-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-12-02
2021-12-02
Breakout style video games were pretty popular at one time both at Arcades and on home computers. The games are based on a simple concept where you have to destroy a group of 'bricks' at the top of t64 Column Text Mode on the Commodore VIC-20https://techtinkering.com/articles/64-columns-sideways-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-11-18
2021-11-18
With a little lateral thinking and by putting the television on its side we can create a 64 column sideways text mode on the VIC-20. This article will demonstrate this and show how it is done. PrevioHamurabi and Similar Games on CP/Mhttps://techtinkering.com/articles/hamurabi-and-similar-games-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-10-07
2021-10-07
Hamurabi is probably the best known land and resource management game on CP/M. However, there are a few other similar text-based games that sought to extend the concept such as Dukedom and Kingdom. TWord Processors on the Commodore VIC-20https://techtinkering.com/articles/word-processors-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-09-16
2021-09-16
Word processing is possible on the VIC-20 and can be surprisingly comfortable despite the small screen text area. Here I will show a variety of word processors each of which handles the 22 column restGetting the Address of BASIC Variables on the VIC-20https://techtinkering.com/articles/getting-the-address-of-basic-variables-on-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-07-14
2021-07-14
Getting the address of a BASIC variable can be useful if you want to pass data to a machine code routine or want to access the bytes of a variable directly to improve speed and reduce garbage collectioSaving and Loading Memory on the VIC-20https://techtinkering.com/articles/saving-and-loading-memory-on-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-06-23
2021-06-23
Saving and loading memory is quite easy on the VIC-20 once you know how. However, it isn't obvious how to do this and therefore this article will present a few simple ways of doing it from BASIC and AAdvanced Use of .LBR files on CP/Mhttps://techtinkering.com/articles/advanced-use-of-lbr-files-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-05-31
2020-10-13
Lots of utilities make use of .LBR (Library) files to provide extra facilities such as the ability to run commands from archives or mount them as if they were drives. This article shows some more advaWorking with .LBR files on CP/Mhttps://techtinkering.com/articles/working-with-lbr-files-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-05-13
2021-05-13
The .LBR (Library) file format was the most common form of multi-file archive on personal computers at one time. It was created by Gary P. Novosielski in 1982 for use by his LU (Library Utility) progrBasic Line Storage on the VIC-20https://techtinkering.com/articles/basic-line-storage-on-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-03-17
2021-03-17
BASIC programs are stored in memory using a simple structure that we can investigate and manipulate. This article will show how they are stored and contains a BASIC program to go through each line of Programming in Assembly with VICMON on the VIC-20https://techtinkering.com/articles/programming-in-assembly-with-vicmon-on-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-02-22
2021-02-22
VICMON is a machine language monitor released by Commodore in 1982 and is great for programming the VIC-20. Its interactive nature means that it can often be quicker to develop via this rather than usStoring Machine Code in REM Statements on the VIC-20https://techtinkering.com/articles/storing-machine-code-in-rem-statements-on-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-01-25
2021-01-25
BASIC programs often contain machine code routines but they take up quite a lot of space in BASIC. An interesting way to reduce the amount of space that they take is to store the machine code in REM sRe-execute Programs in Memory on CP/Mhttps://techtinkering.com/articles/re-execute-programs-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2021-01-11
2021-01-11
After a transient program terminates on CP/M it's often possible to re-execute it in memory without having to reload it from disk. This is a great little trick if using slow disks as it's much quickeVisualizing Zero Page on the Commodore VIC-20https://techtinkering.com/articles/visualizing-zero-page-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-12-21
2020-12-21
The VIC-20 is a very flexible little machine and allows us to choose which area of memory represents the screen map. One interesting thing we can do is use this to visualize a section of memory such Code and Data in Display Memory on the VIC-20https://techtinkering.com/articles/code-and-data-in-display-memory-on-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-12-07
2020-12-07
The unexpanded Commodore VIC-20 only had 5K of RAM and therefore creative ways had to be found to maximize the available RAM. The display memory would use some of this memory and therefore one option I Love ED on CP/Mhttps://techtinkering.com/articles/i-love-ed-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-11-23
2020-11-23
I love ED on CP/M. It's often derided but I think it's just misunderstood and with a little practise its true value can shine through. It's elegant, easy to learn and only has about 25 commands but tDouble-Width C64 Style Font on the Commodore VIC-20https://techtinkering.com/articles/double-width-c64-style-font-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-11-09
2020-11-09
The C64 used a fatter double-width font because the video quality of early VIC-IIs wasn't very good. Therefore they had to make the C64's font fatter than the VIC-20's. However, this fatter font lookThe Pilot Programming Language on CP/Mhttps://techtinkering.com/articles/the-pilot-programming-language-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-10-22
2020-10-22
Pilot was created by John A. Starkweather in the early 1960s as a programming language for Computer Assisted Instruction. It has often been compared to Logo because of its use with children. However,Walnut Creek CD: C64 Imageshttps://techtinkering.com/articles/walnut-creek-cd-c64-images/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-09-24
2020-09-26
The Walnut Creek CD has a number of images on it from the 1980s and this article displays a selection of the Commodore C64 images that can be found on the CD. The quality of some of these pictures is Walnut Creek CD: .RLE Imageshttps://techtinkering.com/articles/walnut-creek-cd-rle-images/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-09-17
2020-09-17
The Walnut Creek CD has lots of images on it from the 1980s and this article displays a selection of the .RLE images that can be found on the CD. Where there are duplicates they are only shown once.
.Image Viewers on CP/Mhttps://techtinkering.com/articles/image-viewers-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-09-03
2020-09-03
CP/M is by default a text-only affair. However, many of the machines that can run CP/M have hardware that would allow them to display graphics. As BBSing started to grow so too did the distribution oTerminal Programs for BBSing on the Commodore VIC-20https://techtinkering.com/articles/terminal-programs-for-bbsing-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-07-23
2020-07-26
The VIC-20 introduced many people into the world of BBSing, but only a few of the many terminal programs that were available for the Vic have survived. They each have their own pros and cons and here SUBLEQ on the Commodore VIC-20https://techtinkering.com/articles/subleq-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-07-09
2020-07-09
I have created a SUBLEQ Virtual Machine for the Commodore VIC-20. SUBLEQ is a computer architecture that has only one instruction: SUBLEQ. The instruction stands for SUbtract and Branch if Less than SUBLEQ - A One Instruction Set Computer (OISC)https://techtinkering.com/articles/subleq-a-one-instruction-set-computer/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-05-29
2020-05-29
SUBLEQ has to be one of the easiest architectures to implement in either software or hardware and this is the main reason for its design as a teaching aid. It has only one instruction, hence why it isHome Computers: 100 Icons that Defined a Digital Generationhttps://techtinkering.com/articles/home-computers-100-icons-that-defined-a-digital-generation/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-04-23
2020-04-23
As soon as you pick up this coffee table style book you know that you're in for a treat. A quick flick through reveals page after page of beautiful photos accompanied by well layed out text describingThe Mouse Programming Language on CP/Mhttps://techtinkering.com/articles/the-mouse-programming-language-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-03-11
2020-03-11
Mouse is an interpreted stack orientated language designed by Peter Grogono around 1975. It was designed to be a small but powerful language for microcomputers, similar to Forth, but much simpler. OnSweet 16 (The 6502 Dream Machine) Ported to the VIC-20https://techtinkering.com/articles/sweet-16-the-6502-dream-machine-ported-to-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-02-29
2020-02-29
Sweet 16 was created by Steve Wozniak to reduce code size and make it easier to handle 16-bit pointers and arithmetic for his Apple Integer BASIC. He wrote it around 1977 and referred to it in an artiPosition Independent Code (6502) on the Commodore VIC-20https://techtinkering.com/articles/position-independent-code-6502-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-02-04
2020-02-04
If we are writing 6502 machine code and want to to create a routine or program that can be placed in any location then we have to create Position Independent Code (PIC) or make the code relocatable. HAdding Basic Stubs to Assembly Language on the Commodore VIC-20https://techtinkering.com/articles/adding-basic-stubs-to-assembly-language-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2020-01-16
2020-01-16
To make machine language programs more friendly it's nice to add a Basic stub which contains a line with a SYS statement to start the code. This is easy to do on the VIC-20 and the process gives you aHand Assembling to Machine Code on the Commodore VIC-20https://techtinkering.com/articles/hand-assembling-to-machine-code-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-12-18
2019-12-18
I quite enjoy designing machine language routines on paper and then hand assembling them. For many people this would have been their only option until they got a more advanced machine language monitor6502 Machine Language Tables and Aidshttps://techtinkering.com/articles/6502-machine-language-tables-and-aids/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-12-04
2019-12-04
When programming using machine code there are a few useful aids that can make it easier to do. I have created a couple of tables for the 6502 that can make the process easier. They are based on tableTokenize/De-tokenize Commodore Basic Programs Using petcathttps://techtinkering.com/articles/tokenize-detokenize-commodore-basic-programs-using-petcat/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-11-21
2019-11-21
petcat is a utility provided with the VICE Commodore emulator that you can use to convert Basic source code contained in ASCII text files to .PRG files or vice versa. It is also able to convert ASCII Changing Screen Dimensions on the Commodore VIC-20https://techtinkering.com/articles/changing-screen-dimensions-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-11-08
2019-11-08
To make the most of the limited amount of memory on the VIC-20, we can increase and decrease the screen size depending on our program's priorities and what we want to achieve. If we increase the size Moving the Picture Origin on the Commodore VIC-20https://techtinkering.com/articles/moving-the-picture-origin-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-10-03
2019-10-03
The VIC-20's VIC chip provides a simple yet flexible video display and one of the features that can be quite useful is the ability to alter the picture origin on the screen. This feature allows us to DABAR: A Hebrew Vocabulary Drill System on CP/Mhttps://techtinkering.com/articles/dabar-a-hebrew-vocabulary-drill-system-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-09-19
2019-09-19
I recently came across an interesting program called DABAR to drill Hebrew vocabulary. The program works in a similar way to flash cards, by displaying a word in Hebrew and then asking for its EnglishSpreadsheets on the Commodore VIC-20https://techtinkering.com/articles/spreadsheets-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-09-07
2019-09-07
The VIC-20 had a number a spreadsheet programs released for it which despite the limited resources of the Vic could actually be quite usable. The two best known are SimpliCalc and PractiCalc, but ther40 Columns in Basic on the Commodore VIC-20https://techtinkering.com/articles/40-columns-in-basic-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-08-23
2019-08-23
There are a number of programs that allow you to use 40 columns of text from Basic on a Commodore VIC-20. This can be useful as by default the Vic's screen is 22 columns by 23 rows. They are suppliedBackgammon: The Peelgrunt Game of Gammon IV on CP/Mhttps://techtinkering.com/articles/backgammon-the-peelgrunt-game-of-gammon-iv-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-08-08
2019-08-08
My favourite traditional board game is Backgammon and the best version I have found for CP/M is The Peelgrunt Game of Gammon IV, v2.0 released 1st April 1986 by David C. Oshel. It is available on the DIR Alternatives on CP/Mhttps://techtinkering.com/articles/dir-alternatives-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-07-13
2019-07-29
There are lots of great alternatives to the standard CP/M DIR command, which add extra functionality and combine features that normally have to be accessed through other CP/M commands such as STAT or SMission: Impossible on CP/Mhttps://techtinkering.com/articles/mission-impossible-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-06-19
2019-06-19
Mission: Impossible simulates a foreign espionage mission based on the TV series. Your mission, should you decide to accept it, is to recover the objects or person taken by enemy agents and hidden in Hunt the Wumpus on CP/Mhttps://techtinkering.com/articles/hunt-the-wumpus-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-06-13
2019-06-15
Hunt The Wumpus was created by Gregory Yob in 1973 after seeing some of the hide and seek style games distributed by the People's Computer Company. Games such as Hurkle, Snark and Mugwump were all baCP/M Standard Console Control Charactershttps://techtinkering.com/articles/cpm-standard-console-control-characters/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-06-07
2019-06-07
CP/M helped provide a consistent console interface for the user by supporting a number of standard control characters through the BDOS console functions. This was great for the user and made life muchTransferring Files to and from CP/M .D71 Disk Images Using ctoolshttps://techtinkering.com/articles/transferring-files-to-and-from-cpm-d71-disk-images-using-ctools/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-05-24
2019-05-24
Using Vice to emulate a Commodore 128 running CP/M works very well, but it isn't easy to get CP/M files directly onto and off a .D64/.D71 disk image. The easiest way to do this under Linux is to use cEmulating a CP/M System With z80packhttps://techtinkering.com/articles/emulating-a-cpm-system-with-z80pack/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-05-21
2022-11-11
z80pack is great for creating an emulated CP/M system. It can either be used to create a general CP/M system or can emulate a specific system such as an IMSAI or ALTAIR including a graphical front-panInstrument Flight Simulator on CP/Mhttps://techtinkering.com/articles/instrument-flight-simulator-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-05-15
2019-05-15
Instrument Flight Simulator is a text mode flight simulator for CP/M which uses standard ASCII characters to display an instrument panel for the plane. The aim of the game is to land the aircraft safeInteractive File Managers on CP/Mhttps://techtinkering.com/articles/interactive-file-managers-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-05-10
2019-05-10
CP/M has a number of interactive file managers that can be used to make it easier to handle common file operations rather than using the command line driven commands supplied with CP/M such as: DIR, ERFelix Animation System on CP/Mhttps://techtinkering.com/articles/felix-animation-system-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-04-23
2019-04-23
In 1979 the University of Tennessee/Knoxville's Computer Science Department released Felix v2.1 for CP/M, which is available on the Walnut Creek CD. It aimed to provide a basis for computer animation Compression and Archiving on CP/Mhttps://techtinkering.com/articles/compression-and-archiving-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-04-05
2019-05-19
CP/M has the ability to handle lots of different compression and archive formats which was important due to the limited capacity of floppy disks and the cost of downloading/uploading files on BBS's. TText Viewers on CP/Mhttps://techtinkering.com/articles/text-viewers-on-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-03-27
2019-03-27
There are lots of text viewers on CP/M and I want to show the three that I use most often. I have recently been going through the Walnut Creek CD to see if I can find any better text viewers, but afteWrite Hand Man - CP/M's Answer to Sidekickhttps://techtinkering.com/articles/write-hand-man-cpms-answer-to-sidekick/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-03-19
2019-04-25
CP/M is a single tasking operating system and having grown-up with single tasking systems this has never really been a problem for me. There is style of program that would make my life easier, howeverBenchmarking Basic on Vintage Computershttps://techtinkering.com/articles/benchmarking-basic-on-vintage-computers/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-03-06
2019-03-13
There are a few machines I'm quite interested in comparing so I decided to create a simple Basic benchmark to get an idea of their relative speed. The benchmark tests 7 aspects and is inspired by qsbbIntroducing Ornament a Tcl Template Modulehttps://techtinkering.com/articles/introducing-ornament-a-tcl-template-module/Lawrence Woodmanhttps://lawrencewoodman.github.io
2019-01-02
2019-01-02
Ornament is a Tcl template module that allows you to define, parse and compile a template to produce a script which can then be run using a safe interpreter. The idea came from the Templates and substAdvent of Code 2018: 25 Days, 25 Languageshttps://techtinkering.com/articles/advent-of-code-2018-25-days-25-languages/Lawrence Woodmanhttps://lawrencewoodman.github.io
2018-12-01
2018-12-30
There are lots of different programming challenges, but this year one in particular has caught my attention and I have decided to take part. Advent of Code starts 1st December with daily programming pWhat the Dormouse Said by John Markoffhttps://techtinkering.com/2016/03/06/book-review-what-the-dormouse-said-by-john-markoff/Lawrence Woodmanhttps://lawrencewoodman.github.io
2016-03-06
2016-03-06
The premise of this book is that the 60s/70s counter-culture led to the personal computer revolution. I think the book demonstrated well how this influenced SAIL and how the Augment lab innovations ledHow to Make Thunderbird Feel Like Gearyhttps://techtinkering.com/2014/06/22/how-to-make-thunderbird-feel-like-geary/Lawrence Woodmanhttps://lawrencewoodman.github.io
2014-06-22
2014-06-22
Geary is a lightweight email client inspired by gmail's interface. Its simple minimalistic interface is quite pleasant to use and initially I was really pleased to switch to it from Thunderbird. HoweBeware of Immutable Lists for F# Parallel Processinghttps://techtinkering.com/2014/04/19/beware-of-immutable-lists-for-fsharp-parallel-processing/Lawrence Woodmanhttps://lawrencewoodman.github.io
2014-04-19
2014-04-19
With F#, the list often feels like the default choice of data structure. It is immutable and hence easy to reason about, however its use can come at a great cost. If you are using lists to process laRendering Racket Package Scribblings on Github Using gh-pageshttps://techtinkering.com/2013/08/29/rendering-racket-package-scribblings-on-github-using-gh-pages/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-08-29
2013-08-29
With the new package management system for Racket, there is a need to host documentation for the package somewhere. Github allows you to host web pages, and hence a package's documentation, by puttingProgrammable Character Sets: A Simple Alternative to Bitmap Displayshttps://techtinkering.com/2013/05/29/programmable-character-sets-a-simple-alternative-to-bitmap-displays/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-05-29
2013-05-29
Programmable or reconfigurable character sets were a simple alternative to fully bitmappable displays. The main driving force behind their creation was a desire to keep the cost of computers low: RAM Adding a Basic Stub to a VIC-20 Assembly Language Programhttps://techtinkering.com/2013/05/10/adding-a-basic-stub-to-a-vic-20-assembly-language-program/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-05-10
2013-05-10
To make machine language programs more friendly it is nice to add a basic stub which contains a line with a SYS statement to start the code. This is easy to do on the Vic-20 and the process gives you Creating a TTY Simulator in Assembly Language on the VIC-20https://techtinkering.com/2013/05/04/creating-a-tty-simulator-in-assembly-language-on-the-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-05-04
2013-05-04
The Vicmon machine language cartridge is an excellent tool for exploring the Vic-20. This article and its associated video will show you how to use it to create a simple program that will change the nBBS Ads: Getting the Word Outhttps://techtinkering.com/2013/04/23/bbs-ads-getting-the-word-out/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-04-23
2013-04-23
BBS Ads were important to users and sysops of BBS's. There wasn't any universal directory like the phone book, and during the heyday of BBS's (early '80s to the mid '90s), most people couldn't easily Beginning Assembly Programming on the Commodore VIC-20https://techtinkering.com/2013/04/16/beginning-assembly-programming-on-the-commodore-vic-20/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-04-16
2019-11-26
The Commodore VIC-20 is a great machine to learn an assembly language on. It was released in 1981 and was the first computer to sell one million units, which contributes to its popularity today. The Using C-Kermit to Exchange Files With Telnet BBS'shttps://techtinkering.com/2013/04/09/using-c-kermit-to-exchange-files-with-telnet-bbs-s/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-04-09
2013-04-09
Most BBSs that are still running now do so via telnet. In many ways this is great as it allows people from all around the world to access a BBS as if it were local to them. The problem comes though, Connecting to a Remote Serial Port over TCP/IPhttps://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-04-02
2019-11-26
Most modern machines don't have a serial port as standard; you could use a USB to serial lead, however, if you have another machine available that does have a serial port you can access it remotely oveUsing Netcat to Create ad hoc Links Between Applications or Machineshttps://techtinkering.com/2013/03/25/using-netcat-to-create-ad-hoc-links-between-applications-and-machines/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-03-25
2013-03-25
Netcat is a simple Unix utility which reads and writes data across network connections using the TCP or UDP protocol. It is often described as the "Swiss-army knife for TCP/IP" because of itIf Only Borland Had Stuck With Turbo Modula-2 For CP/Mhttps://techtinkering.com/2013/03/12/if-only-borland-had-stuck-with-turbo-modula-2-for-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-03-12
2013-03-12
I have written previously about why Turbo Pascal is a Great Choice For Programming Under CP/M and now it is time to talk about what could have been. You probably haven't heard of Turbo Modula-2 for CPTurbo Pascal: A Great Choice For Programming Under CP/Mhttps://techtinkering.com/2013/03/05/turbo-pascal-a-great-choice-for-programming-under-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-03-05
2013-03-05
CP/M was blessed with many programming languages, each with their own strengths and weaknesses. I think that Turbo Pascal stands out from these and I'm not alone. When Turbo Pascal was released in 19xdgbasedir: A Tcl Module to Access the XDG Base Directory Specificationhttps://techtinkering.com/2013/02/27/xdgbasedir-a-tcl-module-to-access-the-xdg-base-directory-specification/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-02-27
2013-02-27
Unix has traditionally lacked a consistent way of storing user specific and system wide configuration and support files. This has lead to a mess of dot files in a user's home directory and other assocCompiling a Tcl Script into an Executablehttps://techtinkering.com/2013/02/20/compiling-a-tcl-script-into-an-executable/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-02-20
2013-02-20
Locating Tcl scripts to load from an executable can be awkward if you want to make your program cross-platform. An easier way is to compile a Tcl script directly into the executable and let that scripFloppy Days: A New Vintage Computing Podcasthttps://techtinkering.com/2013/02/19/floppy-days-a-new-vintage-computing-podcast/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-02-19
2013-02-19
I have just finished listening to the first episode of Floppy Days and I'm pleased to report that it looks like this is going to be a good addition to the vintage computing landscape. The presenter, RUsing Dynamically Generated Header Files with CMakehttps://techtinkering.com/2013/02/12/using-dynamically-generated-header-files-with-cmake/Lawrence Woodmanhttps://lawrencewoodman.github.io
2013-02-12
2013-02-12
Sometimes it can be useful to dynamically generate header files and include them from a C source file. However, it can be a little difficult getting CMake to recognize when to generate the files and wEmbedding an SDL Surface in a Tk Windowhttps://techtinkering.com/2012/06/26/embedding-an-sdl-surface-in-a-tk-window/Lawrence Woodmanhttps://lawrencewoodman.github.io
2012-06-26
2012-12-02
Tk is great, but sometimes it just isn't fast enough. SDL is fast, but has no support for input dialogs and other GUI conventions. By embedding an SDL surface in a Tk window you get the best of both Refactoring: Arm Yourself in the War Against Useless Commentshttps://techtinkering.com/2012/04/26/refactoring-arm-yourself-in-the-war-against-useless-comments/Lawrence Woodmanhttps://lawrencewoodman.github.io
2012-04-26
2012-04-26
Comments, comments, everywhere, but are they making your code clearer or just distracting you? Comments are meant to be there to explain code and help you to understand it. However, they are often ouDealing Sympathetically with Legacy Codehttps://techtinkering.com/2012/04/20/dealing-sympathetically-with-legacy-code/Lawrence Woodmanhttps://lawrencewoodman.github.io
2012-04-20
2012-04-20
I have often noticed programmers getting worked up about the legacy code they are maintaining. I know it is annoying having to wade through poor code, or
worrying about making changes for fear of unexPisceans and October Babies More Likely to Become Poets. Scraping Wikipedia Reveals Allhttps://techtinkering.com/2011/09/08/pisceans-and-october-babies-more-likely-to-become-poets/Lawrence Woodmanhttps://lawrencewoodman.github.io
2011-09-08
2011-09-08
This is the second in a series of articles looking into whether when you were born affects your future. In the previous article I looked at Nobel laureates, which are, of course, from a range of fieldDoes When You Were Born Affect Your Chance of Becoming a Nobel Laureate? Scraping Wikipedia to Find Outhttps://techtinkering.com/2011/08/24/does-when-you-were-born-affect-your-chance-of-becoming-a-nobel-laureate/Lawrence Woodmanhttps://lawrencewoodman.github.io
2011-08-24
2011-08-24
There has been a lot of talk in the UK recently about whether when you were born affects your schooling. Lots of teachers have noticed how pupils born at the end of the Summer often struggle compared Improving the related_posts feature of jekyllhttps://techtinkering.com/2011/08/17/improving-related-posts-on-jekyll/Lawrence Woodmanhttps://lawrencewoodman.github.io
2011-08-17
2011-08-17
Now that I have converted TechTinkering over to Jekyll, I have come up against a bit of a problem with site.related_posts: The results are always just the latest posts, and are not filtered or ordered Mida - A Microdata parser/extractor library for Rubyhttps://techtinkering.com/2011/04/16/mida-a-microdata-parser-extractor-library-for-ruby/Lawrence Woodmanhttps://lawrencewoodman.github.io
2011-04-16
2011-04-16
I have recently released Mida as a Gem for parsing/extracting Microdata from web pages. Not many sites at the moment are using Microdata, in fact, apart from this site, I only know of one other: TrustA Jekyll Plugin to Display Ratings as Star Imageshttps://techtinkering.com/2011/02/15/a-jekyll-plugin-to-display-ratings-as-star-images/Lawrence Woodmanhttps://lawrencewoodman.github.io
2011-02-15
2011-02-15
I have been using Jekyll a lot recently on the Trust a Friend website and found the need to display a rating as a series of stars. Initially I implemented this in JavaScript, which worked fine, but I The National Museum of Computing at Bletchley Parkhttps://techtinkering.com/2010/06/15/the-national-museum-of-computing-at-bletchley-park/Lawrence Woodmanhttps://lawrencewoodman.github.io
2010-06-15
2010-06-15
The National Museum of Computing is the UK's largest museum dedicated to computing. It is located on the Bletchley Park estate just south of Milton Keynes and is easy to get to by car, bus or train. xAce is Back in Active Development and Looking For Contributorshttps://techtinkering.com/2010/05/06/xace-is-back-in-active-development-and-looking-for-contributors/Lawrence Woodmanhttps://lawrencewoodman.github.io
2010-05-06
2010-05-06
xAce is a great Jupiter Ace emulator and is in fact the one that I use the most, however it hasn't been actively developed since 1997 and therefore has some shortcomings. I am keen to improve the emulIntroducing TextPix v0.1 - A program to convert an image into a character set and text mode screen datahttps://techtinkering.com/2010/04/16/introducing-textpix-v0-1/Lawrence Woodmanhttps://lawrencewoodman.github.io
2010-04-16
2010-04-16
I have today released TextPix v0.1 This is a program to take an image and convert it into a redefined character set and the associated text mode screen data referencing that character set.
The programGetting Colour ANSI Emulation to Work Properly When Connecting to a BBS With Telnet Under Linuxhttps://techtinkering.com/2010/02/14/getting-colour-ansi-emulation-to-work-properly-when-connecting-to-a-bbs-with-telnet-under-linux/Lawrence Woodmanhttps://lawrencewoodman.github.io
2010-02-14
2010-02-14
I have noticed that the number of people interested in using telnet to access BBSs seems to be growing, which I'm really pleased to see. However lots of people seem to be having trouble getting colourSetting up a Beowulf Cluster Using Open MPI on Linuxhttps://techtinkering.com/2009/12/02/setting-up-a-beowulf-cluster-using-open-mpi-on-linux/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-12-02
2009-12-02
I have been doing a lot of work recently on Linear Genetic Programming. This requires a great deal of processing power and to meet this I have been using Open MPI to create a Linux cluster. What folMy Top 10 Classic Text Mode BSD Gameshttps://techtinkering.com/2009/08/11/my-top-10-classic-text-mode-bsd-games/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-08-11
2009-08-11
Recently, I have been playing a collection of text mode games that were commonly found on Unix Systems during the 70s and 80s. These games are surprisingly playable and, for me, they really show that Running 4K FORTRAN on a DEC PDP-8https://techtinkering.com/2009/07/14/running-4k-fortran-on-a-dec-pdp8/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-07-14
2009-07-14
4K FORTRAN was a subset of FORTRAN II and was the first high-level language available for the DEC PDP-8. It consisted of two parts: the 4K FORTRAN Compiler (nicknamed "Fivetran") and the 4K A Quickstart Guide to Editing Paper Tape With the Symbolic Tape Editor on the DEC PDP-8https://techtinkering.com/2009/06/16/a-quickstart-guide-to-editing-paper-tape-with-the-symbolic-tape-editor-on-the-dec-pdp-8/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-06-16
2009-06-16
Before re-writable storage devices, such as tape drives, become popular for the DEC PDP-8, owners had to rely on paper tape. This was fine for loading programs on pre-punched tape, but left the probleElectronic Brains: Stories from the Dawn of the Computer Age by Mike Hallyhttps://techtinkering.com/2009/06/03/book-review-electronic-brains-stories-from-the-dawn-of-the-computer-age-by-mike-hally/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-06-03
2009-06-03
This is an interesting history of computer development around the world during the 1940s and 50s. The book grew out of a radio series on BBS Radio 4 and contains lots of original material gained from Emulating a DEC PDP-8 with SimHhttps://techtinkering.com/2009/05/26/emulating-a-dec-pdp8-with-simh/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-05-26
2009-05-26
The DEC PDP-8 mini-computer was launched on 22 March 1965 and was a great success. It was fairly cheap for the day and could easily be expanded. What attracts me most to the PDP-8 is its simple desigImproving the Standard SUBLEQ OISC (One Instruction Set Computer) Architecturehttps://techtinkering.com/2009/05/15/improving-the-standard-subleq-oisc-architecture/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-05-15
2009-05-15
When I first came across SUBLEQ,
I really liked the beauty and simplicity of the design. However, I have now been experimenting with it for quite a while and have noticed one aspect of the standard imConnecting a Parallel Printer to a Modern Linux Machine Using a LogiLink USB to Parallel Cable, D-SUB 25pinhttps://techtinkering.com/2009/05/06/connecting-a-parallel-printer-to-a-modern-linux-machine-using-a-logilink-usb-to-parallel-cable/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-05-06
2009-05-06
I have a number of older printers that I would like to connect to my modern machine, but have been unable to do so because my computer doesn't have a parallel interface. After searching the internet fAn Introduction to Corewarhttps://techtinkering.com/2009/04/30/an-introduction-to-corewar/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-04-30
2009-04-30
I remember reading about Corewar roughly 20 years ago and thinking that I will have to have a go at that when I get the time. As often happens in life, things got in the way and I only recently manageThe Smallest Communication Program in the World?https://techtinkering.com/2009/04/23/the-smallest-communication-program-in-the-world/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-04-23
2009-04-23
I was going through a backup of my dos machine, taken in 1998, and came across some source code which I haven't seen for a long time. It was great to see that old code, and I must set-up a machine so Hello, World! in SUBLEQ Assemblyhttps://techtinkering.com/2009/03/29/hello-world-in-subleq-assembly/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-03-29
2009-03-29
After writing a previous article: The SUBLEQ URISC (Ultimate RISC) / OISC (One Instruction Set Computer) Architecture. I was left thinking that I should really have given at least a "hello, worldAn Introduction to Test-Driven Developmenthttps://techtinkering.com/2009/03/18/an-introduction-to-test-driven-development/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-03-18
2009-03-18
For the past 6 months I have been using Test-Driven Development (TDD) on a new project. It has made such a difference to the quality of my code, that I feel I just have to share it's benefits with thoThe SUBLEQ URISC (Ultimate RISC) / OISC (One Instruction Set Computer) Architecturehttps://techtinkering.com/2009/03/05/the-subleq-urisc-oisc-architecture/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-03-05
2009-03-05
I have been interested in the limits of RISC (Reduced Instruction Set Computer) architecture for a while and recently came across OISC (One Instruction Set Computer) \ URISC (Ultimate RISC) architexAce - A Jupiter Ace Emulator for Unix (Patched to correct garbled display)https://techtinkering.com/2009/02/12/xace-a-jupiter-ace-emulator-for-unix-patched-to-correct-garbled-display/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-02-12
2009-02-12
The only Jupiter Ace emulator that I found, which would work under Linux, was written by Edward Patel and is called xace. There is also a Windows version available, but I don't know anything more abouThe Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks, Jr.https://techtinkering.com/2009/01/26/book-review-the-mythical-man-month-essays-on-software-engineering-by-frederick-p-brooks-jr/Lawrence Woodmanhttps://lawrencewoodman.github.io
2009-01-26
2009-01-26
This book, written in 1975, offers a fascinating insight into the software engineering process used at that time. The author draws from his experience as project manager for the IBM System/360 and OS/Bouncing Babieshttps://techtinkering.com/2008/12/16/bouncing-babies/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-12-16
2008-12-16
Bouncing Babies is one of the first games I remember playing on an IBM PC Compatible. I recall looking at this funny game and thinking that it really was a strange concept. It was released as SharewaChinese Man Spotted On Tissuehttps://techtinkering.com/2008/12/08/chinese-man-spotted-on-tissue/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-12-08
2008-12-08
It really is funny the things that we spot sometimes. Most of us must have looked up at the clouds and spotted animals, houses and other imagined objects. We are also used to the occasional news repoMy Top 10 Commodore 64 Demoshttps://techtinkering.com/2008/11/24/my-top-10-commodore-64-demos/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-11-24
2008-11-24
There are so many great demos for the Commodore 64 and the demo scene is still thriving. Surprisingly there are even new effects being created for this machine. I have spent many hours going through Beneath a Steel Sky, My Favourite Graphical Adventure Gamehttps://techtinkering.com/2008/11/13/beneath-a-steel-sky-my-favourite-graphical-adventure-game/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-11-13
2008-11-13
Beneath a Steel Sky was released for the PC in 1994 by Revolution Software. It was received well and has gone on to be considered a cult classic. It uses the Virtual Theatre engine which was first usHow to File Good Bug Reportshttps://techtinkering.com/2008/11/12/how-to-file-good-bug-reports/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-11-12
2008-11-12
The real advantage of Open Source software is that many people from all around the globe can work to make it better. This means that bugs can be detected and often fixed much more quickly than with clUsing ScummVM to Play Classic Adventure Gameshttps://techtinkering.com/2008/11/10/using-scummvm-to-play-classic-adventure-games/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-11-10
2008-11-10
ScummVM is Virtual Machine, that allows you to run adventure games created for a number of game creation engines. This is a great way of playing those classic adventure games that you loved so much, oWriting my First Program to Toggle in to the IMSAI 8080https://techtinkering.com/2008/11/05/writing-my-first-program-to-toggle-in-to-the-imsai-8080/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-11-05
2008-11-05
I have long been fascinated with entering programs into computers by methods not involving a standard keyboard and monitor. This interest was peeked by my last article: Using the latest z80pack, versiUsing the latest z80pack, version 1.17, to emulate an Altair 8800 or IMSAI 8080 using the new graphical FrontPanelhttps://techtinkering.com/2008/10/29/using-the-latest-z80pack-version-1-17-to-emulate-an-altair-8800-or-imsai-8080-using-the-new-graphical-frontpanel/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-29
2008-10-29
Udo Munk has just released the latest version of his z80pack emulator, version 1.17, which now includes John Kichury's FrontPanel library. As well as being a superb emulator to run CP/M on, it now givIs this steamer really not to be used by girls?https://techtinkering.com/2008/10/28/is-this-steamer-really-not-to-be-used-by-girls/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-28
2008-10-28
I was preparing the walls of our nursery on the weekend, ready for the arrival of our first child in December. I was about to start steaming off the border and thought I'd better look at the instructiUsing DOSBox to Run DOS Games and Applicationshttps://techtinkering.com/2008/10/24/using-dosbox-to-run-dos-games-and-applications/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-24
2008-10-24
There were some brilliant games and applications released for DOS, and some of the games such as Command and Conquer are still very playable. There are a number of options to play these games today, fInstalling the HI-TECH Z80 C Compiler for CP/Mhttps://techtinkering.com/2008/10/22/installing-the-hi-tech-z80-c-compiler-for-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-22
2012-12-11
My language of choice is C and I am currently getting more involved with the CP/M operating system. I have therefore decided that it would be nice to have a C compiler working under CP/M. There are aInstalling ZDE 1.6, a programmers editor for CP/Mhttps://techtinkering.com/2008/10/21/installing-zde-1-6-a-programmers-editor-for-cpm/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-21
2008-10-21
To do any serious programming under CP/M, the first thing you need is a good programmers editor. There aren't many in the archives, but I have tried most of them and found ZDE to be the best. It is sSetting up z80pack to Create an Emulated CP/M Systemhttps://techtinkering.com/2008/10/17/setting-up-z80pack-to-create-an-emulated-cpm-system/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-17
2019-11-26
I have decided to try out some old CP/M software, but need something to run it on. I could either do this on my Commodore 128 or through emulation. Unfortunately the 1571 disk drive for my Commodore PDP-8 in 'Three Days of the Condor'https://techtinkering.com/2008/10/14/pdp-8-in-three-days-of-the-condor/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-14
2008-10-14
I watched 'Three Days of the Condor' the other night and loved seeing what I believe is a Dec PDP 8/E being used. Also featured in connection with this machine was a DecWriter, paper tape reader and pFundamentals of Operating Systems by A.M. Lister - Second Editionhttps://techtinkering.com/2008/10/07/book-review-fundamentals-of-operating-systems-by-a-m-lister/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-10-07
2008-10-07
It was fascinating to read this book from 1979 and see how operating system design was viewed then, compared to now. The biggest change being the shift in importance from batch processing to the interHow to share an SSL certificate and still use cookieshttps://techtinkering.com/2008/09/16/how-to-share-an-ssl-certificate-and-still-use-cookies/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-09-16
2008-09-16
Website hosting companies often provide a shared SSL certificate, but this presents the web designer with the problem of how to use it for a site that uses cookies. I have read many people say that thIs Cobol Really Understandable After 14 Years?https://techtinkering.com/2008/08/08/is-cobol-really-understandable-after-14-years/Lawrence Woodmanhttps://lawrencewoodman.github.io
2008-08-08
2008-08-08
COBOL has been in the news quite a lot recently and I have been reading that there are still huge amounts of COBOL code running and being written. This led me to wonder why this language was still bei