Skip to content

Programming by Design

If you're not prepared to be wrong, you'll never come up with anything original. – Sir Ken Robinson

  • About
  • Java-PbD
  • C-PbD
  • ASM-PbD
  • Algorithms
  • Other

Author: William Jojo

Data Transformation with Regex

Posted on February 1, 2024February 2, 2024 By William Jojo
Uncategorized

Overview Sometimes, we have data in one form that needs to be put into another as code or storage in a database. Many editors, like Sublime Text, have Find/Replace tools for complex data transformations. IntelliJ has a similar facility within its editor (Edit/Find/Replace). This brief tutorial explains some regexes (regular expressions) used to achieve quick … Read More “Data Transformation with Regex” »

Machine Code – Assembly Language

Posted on January 18, 2024August 13, 2024 By William Jojo
C64, ciss-111

(Updated July 22, 2024) Overview The methods of programming CPUs/computers have had a vast history. This document is intended to provide a historical introduction to the complexity of how systems were programmed. The details contained here concern the 6502 and 6510 processors. The 6510 was used in the Commodore 64. This was chosen for its … Read More “Machine Code – Assembly Language” »

Group Project 2 (of 2)

Posted on December 29, 2023May 2, 2024 By William Jojo
CISS-111-Project

CISS-111 Group Project 2 Write a BASIC tokenizer for the Commodore 64 (C64). Read Crafting Interpreters, Chapter 4 sections 4.4 and later for a basic understanding of what you are building. Take as much code as you think you need from that model. You don’t need it all, nor do you need it necessarily as … Read More “Group Project 2 (of 2)” »

Comparative Languages

Posted on October 1, 2023July 14, 2024 By William Jojo
Code

(Updated July 14, 2024) String name; int len; name = “Bill”; len = name.length(); System.out.println(name.charAt(0)); System.out.println(name.charAt(1)); System.out.println(name.charAt(2)); System.out.println(name.charAt(3)); System.out.println(“The length of the string is ” + len); String name; int len; name = “Bill”; len = name.length(); System.out.println(name.charAt(0)); System.out.println(name.charAt(1)); System.out.println(name.charAt(2)); System.out.println(name.charAt(3)); System.out.println(“The length of the string is ” + len); String name; int len; name … Read More “Comparative Languages” »

Commodore 64

Posted on September 13, 2023April 21, 2024 By William Jojo
C64

(Updated April 21, 2024) Table of contents Overview Emulation Operation Test Drive VICE Overview The Commodore 64 was notably the best-selling computer in history. It was inexpensive, easy to use, and had a following larger than any other platform from that period. Using the MOS-6510 (a descendant of the VIC-20’s MOS-6502), anyone familiar with the … Read More “Commodore 64” »

The Hex Dump

Posted on September 10, 2023January 20, 2025 By William Jojo
Algorithms

(Updated December 18, 2024) Overview Hex dumps have been around for a very long time. Looking at binary is mind-numbing, and looking at decimal numbers is less than ideal. Using hexadecimal to show values is much easier on the eyes. With some experience, you can see the binary tucked inside, as each hex digit represents … Read More “The Hex Dump” »

Commodore 64 Code Examples

Posted on September 8, 2023April 21, 2024 By William Jojo
C64

(Updated April 21, 2024) BASIC kaleid.bas 10 print chr$(147) 20 ca=1024:cp=54272:r=25:co=40 30 poke 53280,0:poke 53281,0 40 forw=3to50:fori=1to12:forj=0to12:k=i+j 50 c=j+j+j/(i+3)+i*w/12 60 k1=ca+i+(co*k):i1=ca+k+(co*i):c1=cp+k1:c2=cp+i1 70 k2=ca+(co-i)+(co*(r-k)):i2=ca+(co-k)+(co*(r-i)):c3=cp+k2:c4=cp+i2 80 k3=ca+(co-i)+(co*k):c5=cp+k3:i3=ca+k+(co*(r-i)):c6=cp+i3 90 k4=ca+(co-k)+(co*i):c7=cp+k4:i4=ca+i+(co*(r-k)):c8=cp+i4 100 poke k1,81:poke c1,c:poke i1,81:poke c2,c 110 poke k2,81:poke c3,c:poke i2,81:poke c4,c 120 poke k3,81:poke c5,c:poke i3,81:poke c6,c 130 poke k4,81:poke c7,c:poke i4,81:poke c8,c 140 nextj,i,w 150 goto … Read More “Commodore 64 Code Examples” »

Group Project 1 (of 2)

Posted on July 11, 2023February 3, 2025 By William Jojo
CISS-111-Project

CISS-111 Group Project 1 (Updated December 8, 2024) Write a disassembler for the Commodore 64 (C64) program in the 6502/6510 assembly language. Learning outcomes Working with a translation table. Working with existing data to build a new representation. Working with data type manipulations. Working with switch expressions. Working with unsigned byte data. Working with unique … Read More “Group Project 1 (of 2)” »

CISS-111 Project 8

Posted on May 1, 2023 By William Jojo
CISS-111-Project

CISS-111 Project 8 Write a Java program to demonstrate using an N-ary tree to replicate a filesystem structure. Learning outcomes Working with N-ary trees. Working with existing code to build a new representation. Working with Nodes and how to arrange them based on certain criteria. Working with databases. Working with exceptions. Confirmation program produces desired … Read More “CISS-111 Project 8” »

IntelliJ JDBC Configuration

Posted on April 30, 2023March 27, 2025 By William Jojo
Other

Updated March 27, 2025 Overview This documentation applies to some projects, notably Projects 5 and 8. It is also a basic setup for generic JDBC connectivity to a MySQL database. Setup You must download the MySQL JDBC jar file from https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-9.2.0.zip and then extract the contents of the zip file. You only need the mysql-connector-j-9.2.0.jar … Read More “IntelliJ JDBC Configuration” »

Posts pagination

Previous 1 … 3 4 5 … 19 Next

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Copyright © 2018 – 2025 Programming by Design.