RSSAmplifier

Blog

About on Steckschwein

Recent content in About on Steckschwein

steckschwein.deRSS feed ↗104 posts

Latest posts

VCFe25.0

VCFe25.0 has been awesome, as always. This time, all the talks have been recorded and will be available soon. The slides for our talk about our ATF150x toolchain are available here

UART: Double Trouble

The DUART TL16c2752 is supposed to be a rather big upgrade to the Steckschwein “core”. Now two serial interfaces, with 64 byte FIFOs each, instead of only one interface with 16 byte FIFOs. Oh, the possibilities. Using one line to explore UART interrupt handling while still having another one to upload code. Cool! With the 16C2752 being a part of the 16C550 family, we did expect it to…

Prototype with ATF1508 on Breadboard [UPDATE II]

We are going back to breadboarding for designing what will be the base for the new Steckschwein computer core. By “core” we mean CPU, RAM, ROM and the glue logic which will be accommodated in the ATF1508 CPLD. In order to communicate with the outside word, we also count the 16C550 UART as part of the core. Design goals Our main design goals are: Integrate SPI into the CPLD -> DONE…

CPLD Upgrade and new Toolchain

Since we introduced our new banking logic to access 512k RAM, our glue logic is being accommodated by a Xilinx XC9572 (without XL) CPLD. This component has long been deprecated when we started using it. We chose it because it was what we had available. The upgrade path would be the successor family XC95..XL. Those have been rather expensive lately, and finally AMD/Xilinx axed their whole CPLD line…

Golem.de Podcast featuring Steckschwein

We talked to Martin Wolf from Golem.de about our Project, how it came to be, and of course about our version of Pacman. Listen to our Episode (in German) here !

Finished moving to codeberg.org

After we moved this website to Codeberg Pages , we now finished moving our Repositories to www.codeberg.org . The resources page has been updated with the new URLs. Our repositories on GitHub will remain available as push mirrors, but may vanish at some point. Codeberg is a non-profit, community-led effort that provides Git hosting and other services for free and open source projects.

Our talk at VCFe 24.0

At this year’s installment of the Vintage Computer Festival Europa we talked about how the Steckschwein came to be in its current incarnation. Marko presented his feature complete implementation of Pacman - the only one for 6502 based systems that replicates the look and the behaviour (including bugs) of the original arcade almost completely. In case you could not attend our talk or even…

Save the date - VCFe 24.0

This year’s installment of the Vintage Computer Festival Europa is - again - a special one for us: VCFe 24.0 will be focused around “50 years of 6502”! So be prepared for lots of 6502 related and also unrelated exhibitions and talks! We will of course be there, too, presenting Marko’s Pacman implementation - the only one for 6502 based systems that replicates the look and…

We have moved (again)

We have indeed moved again. As of now, our homepage at www.steckschwein.de is no longer being hosted by Github Pages. Instead, we are now being hosted by www.codeberg.org . Codeberg is a non-profit, community-led effort that provides Git hosting and other services for free and open source projects. We believe that a non-profit organization is a much better home for our project than a…

Flash - Master of the Universe

The 28C256 EEPROM , which holds the BIOS, has been our go-to choice since the early breadboard days. Before that, we relied on EPROMs , which required UV erasure before every upgrade—a time-consuming and inconvenient process. Switching to an EEPROM significantly improved our workflow, reducing turnaround time. However, the 28C256 has a couple of drawbacks: It cannot be written in-circuit since it…

Brainfck

After introducing BASIC and Forth as interpreted languages on the Steckschwein, it’s time to add another unique and productive language—Brainf*ck. For those unfamiliar, Brainf*ck (or Brainf**k) is an “esoteric” programming language created in 1993 by Urban Müller, the founder of Aminet. You can read more about it on Wikipedia . A compact Brainfck interpreter can be found here ,…

VCFe 23.0 - It's been great - as always

We are reflecting on a very special VCFe, as it marked the 10th (or 10 1/2th) birthday of the Steckschwein. Reconnecting with old friends, making new friends, and celebrating and eating our 12 cycle muffin NOPslide together were all incredibly enjoyable experiences. Additionally, Marko allowed an exciting sneak peek into his nearly complete Pacman implementation, the first ever on a 6502 that…

VCFe 23.0 - The wait is finally over

The 23th annual European Vintage Computer Festival will take place on 7./8. September 2024! The special focus of this year’s VCFe is _50 years of 8080 and 6800 with a lot of exhibitions and talks around those CPUs. Also, the Steckschwein will celebrate it’s 10 year anniversary (more like 10 1/2 now) with you! We will be showing all Steckschwein incarnations from its humble and nameless…

Generating QR Codes

In order to generate our own QR codes natively on the Steckschwein, we drew a lot of inspiration from this article https://8bitworkshop.com/docs/posts/2022/8bit-qr-code.html It even points to an adapted version of the qrtiny library , that has been made to compile with cc65, including a demo for the Apple ][ , using cc65’s own Tiny Graphics Interface (TGI) . Which is very nice, because all…

VCFe 23.0 - UPDATE

Update VCFe 23.0 has been postponed until September 7th due to issues with the building. Save the date! The 23th annual European Vintage Computer Festival will take place on 7./8. September 2024 ! And of course there can be no VCFe without Steckschwein. This time is special, as we first presented the humble beginnings of our (then nameless) favourite homebrew computer at VCF 15.0 in 2014. So this…

Sorting Demo

To share my fascination for the numerous sorting algorithm videos on youtube, I took some sorting algorithm examples in C from https://www.geeksforgeeks.org/sorting and visualized them using our BGI compatible C graphics library (more about that later). The algorithms shown are: Bubble Sort Cocktail shaker Sort Gnome Sort Insertion Sort Comb Sort Heap Sort Shell Sort Selection Sort Quick Sort…

V9958 YJK (YUV) mode

Some time ago we introduced a tiny tool called ppmview.prg in our collection of tools and progs for our Steckschwein. The ppmview.prg, as the name already tells, is able to load an image in ppm ( Portable BitMap ) format with a maximum size of 256x212px and displays it on the screen. The first version of ppmview was released in 2018 and since then we just use the SCREEN 8 (MSX) also known as…

Niklaus Wirth 15.2.1934 – 1.1.2024

Niklaus Wirth has died on 1.1.2024 at the age of 89. Known to most as the creator of the programming language Pascal, Wirth was also primary designer of the programming languages Euler, PL360, ALGOL W, Modula, Modula-2 and Oberon, heavily influencing coming languages and the paradigm of object oriented programming, and programming methodology altogether. Furthermore, he led the team designing the…

10 Years

In order to fill the void in the days between Christmas and New Year’s Eve 2013, we began experimenting with a 65C02 on a breadboard. This little experiment would later evolve into an actually working 8bit computer. 10 years and some significant amount of focus creep later we had build this cool little 8bit machine with the specifications found here . The amount of new stuff to learn to…

Saving ASCII sources in EhBasic

Our FAT32 driver now supports byte-wise writing of a file. Reason enough to continue reworking the file handling of our EhBasic port that we started here to finally having the SAVE command write ASCII source files. The basic idea is to open a file, redirect the EhBasic output vector to our new kernel call “krn_write_byte”, then trigger the LIST command internally. The listing being…

VCFb 2023

For reasons mostly related to the pandemic, we did not attend VCFb since 2019. Finally, this year we managed to be there again, just im time to show our newly assembled rev0.6 (and fully working !!!) SBC boards around, and have tons of fun with other very nice people there (Hello https://mega65.org/ !). Also, we talked about how the Steckschwein evolved over the last almost 10 years and about our…

SBC - Revision 0.6

After some troubleshooting, we finally finished Revision 0.6 of our boards, and the new boards are finally there, ready to be assembled. We managed to fix all the issues we found, and also did some cleaning up, used better footprints for the resistors and the mini DIN jacks. Soldering session coming up.. Revision 0.6 boards are there

SBC - troubleshooting

Our debugging journey at VCFe began right at powering up the board the first time, when something got real hot real fast. Fair enough, and easy to spot. There was a mixup of VCC and GND at U29, a 74HCT244. Embarassing, but not that critical, as U29 is only used to connect the joystick ports to Port A of the VIA. We can live without them for now. The mixup likely happened when I transferred the…

It's alive - sort of

Our plan for VCF2 22.0 was to assemble the first Steckschwein SBC right at our booth as some kind of show-cooking event. That only half worked, as this quickly turned into show-debugging instead of show-cooking. It was only just right before the end of VCFe 22.0, just before we had to pack everything up, we managed to get the SBC to talk to us via serial: {{/ < tweet…

New boards are here!

Just in time for VCFe 22.0 our new SBC boards have arrived! Be there at VCFe, when we are assembling the new Steckschwein SBC and have a few beers with us! Save the date(s): 29.4. - 1.5.2023 ESV München OST, now at Hermann-Weinhauser-Straße 7 81673 München Check it out: https://vcfe.org/

VCFe 22.0

Looks like the upcoming VCFe 22.0 will be a feast for the 6502-connoisseur: Andre Fachat will show his MicroPET and his 6502 multitasking operating system &ldquo;GeckOS&rdquo;, Armin Hierstetter will show an authentic Apple I replica, and of course we will be there, too, showing our new banking schema and our emulator. Save the date(s): 29.4. - 1.5.2023 We really are looking forward to a glorious…

It's a Long Way to the Memory Top, Part II

This one really is a tough one to debug. At first, we suspected the VHDL code for the CPLD as the main error source, as VHDL is not our strongest suit. In fact, the decoder/banking logic is the first thing we ever really did in VHDL (apart from a few simple decoder equations the first days we were playing with GALs). As it turned out, the VHDL was not the main problem. It sure was quite buggy and…

It's a Long Way to the Memory Top

In preparation for the build of our new CPU-Board, we purchased two WDC 65c02 in PLCC44 package from some eBay vendor. On arrival, the first interesting thing is the way they were packaged. No anti esd packaging, only a plastic bag, which we found sketchy enough to post on Twitter. Next, WDC reacted to that tweet, stating that these might be not genuine or be at least very old. {{/ < tweet…

512k Ought to Be Enough for Anybody

The biggest limitation of any 8 bit CPU such as our beloved 65C02 is the amount of memory that the CPU can address. With 16 address lines, the addressable memory is maxed out at 64k. All ROM and RAM has to be crammed into there. With the 6502 being a memory mapped architecture, IO devices need their addresses there, too. In order to expand the amount of usable memory, some trickery is necessary.…

Loading ASCII sources in EhBasic

Since our implementation of FAT32 now supports reading a file byte for byte, a little rework of the file handling in our version of EhBasic is in order. In the past, we only could read or write a file as a whole, relative to the location in memory where the according pointer pointed to. We used this in EhBasic to save and load BASIC programs by dumping and reloading it’s binary representation from…

Fixing PS/2 Keyboard handling (Part I)

The way the PS/2 keyboard is handled has always been something we were never quite happy with. The key points being: The PS/2 controller had no way of signalling that there has been a new keystroke, the buffer had to be polled via SPI. The PS/2 controller had no way of talking to the keyboard and had to rely for the keyboard to initialize itself properly. Also, typematic rate and delay could not…

Connecting SNES Controller to the Steckschwein

Recently, Michael Steil published a blog post about connecting NES and SNES Controller to a 6502-based system showing how to use NES and SNES controllers on a C64 without the need for any special hardware, by just connecting them to the C64&rsquo;s user port. Why not use his approach and adapt it to the Steckschwein? The Steckschwein has a User Port, too, albeit a very different one as the C64.…

Chuck Peddle, 1937 - 2019

Chuck Peddle, the main designer of the 6502, has passed away on Dec. 15th, 2019. Peddle was one of the engineers that developed the 6800 at Motorola. He later went to MOS in order to implement his vision of an 8bit CPU for way less than $300, which was Motorola&rsquo;s price for the 6800. This idea of a cheap but powerful CPU materialized as the 6501, and finally the 6502. That very chip, which…

Steckschwein emulator

Back from the VCFB (Vintage Computer Festival Berlin) 2019 where we had good talks, met interesting people and got new ideas. Especially from Michael Steil who just asked the simple question &ldquo;How you can develop software for the Steckschwein without an emulator?&rdquo; With the answer in my mind I felt a little annoyed and also &ldquo;triggered&rdquo; at the same time&hellip; However,…

Markos Pacman Talk at VCFb

Marko talked about his Pacman port to the Steckschwein at VCFb. Basically it&rsquo;s the same talk he did at VCFe in April, but this time, there&rsquo;s a video. Enjoy! https://media.ccc.de/v/vcfb19_-_111_-_de_-_201910121615_-_pac-man_auf_dem_steckschwein_-_marko_lauke

Weird bug in SD card code

Frank van den Hoef, who is adapting the Steckschwein SPI & FAT32 code for his tiny65 machine made me aware of a classic mistake for a 6502 assembly coder to make. Namely in our sdcard driver, when waiting for the &ldquo;proper&rdquo; response from the card (which should have bit 7 cleared). The routine handling this looked like this: 1 sd_cmd_response_wait: 2 ldy #sd_cmd_response_retries 3 @l: dey…

Forth Benchmarks

The main motivation to get Forth up and running on the Steckschwein was to participate at The Ultimate Benchmark , in order to crush all 8bit competition to dust. So the plan was to benchmark the Steckschwein live at the VCFe. Unfortunately, Carsten could not be there, so no Forth benchmark competition this year. Recently, Carsten presented his benchmark results using TaliForth2, which led us to…

NVRAM improvements

As real computer is not a real computer without a real time clock, the Steckschwein is no exception here. As we know , we use the Maxim DS1306 RTC, which is a very common RTC which comes as DIP IC and has an SPI interface. And of course it supports battery backup in various configurations. And this is where things get interesting. Apart from timekeeping, the DS1306 also has 96 bytes of battery…

Fixing the white screen problem on a Tekway DST1062B oscilloscope

The Tekway DST 1062B (also known unter the Hantek or Voltcraft brand) is an inexpensive 60MHz digital storage oscilloscope, which is very much hackable and has proven to be worth its weight in gold pressed latinum. More recently, my scope became affected by the infamous white screen problem, which apparently is a problem quite common to this model and its 100MHz or 200MHz siblings. The…

V9958+OPL2-Boards are there

The newly made boards made their way from China to Munich. Starting now, the multi board version of the Steckschwein is made up of 3 Boards: CPU/Memory, IO/UART and V9958-OPL2.

New V9958-Board with integrated OPL2

It&rsquo;s time for another hardware upgrade. Since we really want to get our single board Steckschwein done, we are going for higher integration of our multiboard prototype. After integrating the UART to the IO-Board, we integrate the OPL2 sound part onto the V9958 video board, so the current Steckschwein multi board incarnations are reduced to three boards. We did postpone our plan to upgrade…

V9958 - "The WAIT" - investigation of the CPU/VDP /WAIT interface

&hellip; on the way back to munich, we had some time to do a little code review of our gfx library. thinking about the cpu to video chip timings and again read the well known datasheets of the V9938/V9958. suddenly i got an enlightenment and we came to the following conclusion. as described in the datasheet (V9958-Technical-manual_v1.0.pdf) of the V9958 there are different timings given for…

WOZMON - a memory monitor in 256 bytes

The woz monitor, also known as WOZMON , is a pretty simple memory monitor and was the system software located in the 256 byte PROM on the Apple I. Wozmon is used to inspect and modify memory contents or to execute programs already located in memory. Steve Wozniak managed to squeeze all that functionality into 256 bytes. That&rsquo;s right, bytes. Not megabytes, not kilobytes. Bytes. We already had…

Switching to english

There seems to be quite some interest in our little project from outside of germany. Thanks to all who are following what we are doing. To save you the effort of putting our blatherings through Google Translate or even having to learn german, we decided switch to writing our blog articles in english. The rest of the site will be translated as we go. The hardware page has already been translated.

V9958 - Es ist vollbracht

Da ist sie nun, die neuen Videoplatine. Nach einigen Umwegen hat der Packen Boards uns erreicht (die erste Lieferung ist versehentlich in Spanien gelandet, während wir die Platinen des spanischen Bastlers erhalten haben. Inzwischen hat jeder Ersatz erhalten). Wir haben ja bekanntlich unsere Vorgehensweise geändert , indem wir schneller Platinen anfertigen lassen. Aber zu unserer großen Freude…

V9958 - Vom Steckbrett zum Prototypen

Es ist soweit, der erste Prototyp auf Platine von unserem neuen V9958-Videoboard ist fertig layoutet, und die Platinen warten beim Fertiger auf ihren Versand. Der Steckbrettaufbau vom letzten Post wurde auf 128k erweitert. Dazu ist einfach eine 2. Bank von 2 Stück 64k x 4 DRAMS dazugebaut worden. Damit entspricht der Aufbau unserem Schaltplan, und dieser ist damit getestet. Unsere Timing-Probleme…

Es wird wieder gesteckt

Wir haben uns schon länger ein Upgrade des Videochips des Steckschweins vorgenommen. Der TMS9929 ist ein netter Chip, aber an einem 8MHz-65c02, der dazu noch so coole Hardware-Features hat, fühlt er sich ein bisschen wie die Achillesferse an. Zum Glück war beim TMS9929 nicht Schluss, denn dieser hat im Laufe der Zeit diverse Nachfolger bekommen, welche von Yamaha hergestellt wurden und in diversen…

Neue Hardware - die Platinen sind da

Die neuen IO-Platinen mit integriertem UART sind fertig und haben ihren Weg von China nach München gefunden. Mit dem neuen Layout hat es nicht nur der UART mit aufs IO-Board geschafft, es sind auch etliche kleinere und größere Verbesserungen eingeflossen: Die Joystickports wurden komplett neu designed. Die Optokoppler sparen wir uns, stattdessen wählen wir über einen VIA Pin verschiedene Treiber…

Mal wieder neue Hardware

Die Zeit ist reif für ein Hardware-Update, und zwar für die IO-Platine 2.0. Vorgesehen war ja schon länger, den UART dort zu integrieren. Ausserdem war das Joystick&ndash;Interface noch unausgegoren, sodass auch hier etwas Neues entwickelt wurde. Zum Schutz der VIA-Pins dienen nun keine Optokoppler, sondern simple Serienwiderstände sollen die Ports zumindest vor dem Fall schützen, dass man doch…

Musik

Das Programmieren von Soundchips ist nicht trivial. Das habe ich damals auf dem C64 schon nicht kapiert. Mit dem Yamaha YM3812 oder auch OPL2 hat das Steckschwein einen weit komplexeren Chip als den SID, denn OPL2 kennt gleich ganze 9 Stimmen statt drei, und jede ist über eine Unzahl Parameter konfigurierbar. Wie funktioniert der YM3812? Wie kriegt man also einen Ton aus diesem Monstrum? Die beste…