👉 Learn Multiplatform Z80 Assembly Programming... With Vampires!
#assembly #z80 #retrodev
https://www.chibiakumas.com/z80/z80_2021.php
👉 Learn Multiplatform Z80 Assembly Programming... With Vampires!
#assembly #z80 #retrodev
https://www.chibiakumas.com/z80/z80_2021.php
Found my first computer this week.
Nascom 1 (1978 ish) built into a wind up gramaphone case, swappable roms (tiny basic and a monitor IIRC) space for a Phillips EL3302 cassette player (that i also have some where) also found my software on tape.
Really need to archive those 😊
Z80 at 4Mhz , 2KB onboard 1KB video, 1K user. 4K expansion (8x 2114's)
Found my first computer this week.
Nascom 1 (1978 ish) built into a wind up gramaphone case, swappable roms (tiny basic and a monitor IIRC) space for a Phillips EL3302 cassette player (that i also have some where) also found my software on tape.
Really need to archive those 😊
Z80 at 4Mhz , 2KB onboard 1KB video, 1K user. 4K expansion (8x 2114's)
Lisp in 99 Lines of C with TinyLisp.
As one of the oldest programming languages still in common use today, and essential for the first wave of Artificial Intelligence research during the 1950s and 60s, Lisp is often the focus of interpreters that can run on very low-powered systems. Such is the case with [Robert van Engelen]’s TinyLisp, which only takes 99 lines of C code and….
https://github.com/Robert-van-Engelen/tinylisp
#tinylisp #c #programming #engineer #media #z80 #retro #tech #news
Z80:
modify address in register: inc hl
modify data pointed by register: inc (hl)
use constant: ld a, 42
read constant address: ld a, (42)
68k:
modify address in register: addq #1, a0
modify data pointed by register: addq #1, (a0)
use constant: move #42, d0
read constant address: move 42, d0
There's a good reason why 68k created that inconsistency around immediate data and absolute addresses, but it's annoying that I keep making mistakes when moving between CPUs
Z80:
modify address in register: inc hl
modify data pointed by register: inc (hl)
use constant: ld a, 42
read constant address: ld a, (42)
68k:
modify address in register: addq #1, a0
modify data pointed by register: addq #1, (a0)
use constant: move #42, d0
read constant address: move 42, d0
There's a good reason why 68k created that inconsistency around immediate data and absolute addresses, but it's annoying that I keep making mistakes when moving between CPUs
A proof of concept Z80 Assembly program that "[...] simulates task multitasking that can run up to eight separate tasks at the same time." It requires a specific hardware and software setup.
https://github.com/bchiha/Ready-Z80/tree/main/29-Multitasking
Recreating a Homebrew Game System from 1987
https://alex-j-lowry.github.io/z80tvg.html
#HackerNews #HomebrewGaming #RetroGaming #1987 #GameDev #Z80
Pre-emptive Z80 multitasking explainer
https://github.com/bchiha/Ready-Z80/tree/main/29-Multitasking
#HackerNews #Preemptive #Z80 #multitasking #explainer #Z80 #Multitasking #TechExplainer #RetroComputing #HackerNews
#scheme for the #amstradcpc anyone? #z80 #cpm
https://spectra.video/w/qvxsFMhciScC1T2py3eFvB
going live for a bit, working on the text editor that is supposed to ship with the suite of tools with the people's permacomputer model 1.
#permacomputing #retrocomputing #tinybasic #6502 #z80 #livecoding #peertube #retro #emacs #retrogames #texteditor #programming
https://spectra.video/w/qvxsFMhciScC1T2py3eFvB
going live for a bit, working on the text editor that is supposed to ship with the suite of tools with the people's permacomputer model 1.
#permacomputing #retrocomputing #tinybasic #6502 #z80 #livecoding #peertube #retro #emacs #retrogames #texteditor #programming
Keeping track of progress of the Z80 Noveau FPGA-based project. Now with sprites!
Details of the sprite logic in the Z80 Nouveau VDP finite state machine Verilog modules.
This provides an implementation of a TI9118-compatible graphic display.
@ John's Basement
@raymierussell
You've done some great work handling text! You're right that and'ing and or'ing on display memory is slow.
I have a routine that renders the text offscreen, then copies the buffer to screen using the stack very fast.
Very rough and off the top of my memory:
LD SP, <screen memory>
LD HL, <offscreen buffer>
LD BC, <byte count>
LOOP:
LD DE,(HL)
PUSH DE
INC HL
INC HL
DEC BC
JP NZ, LOOP
So you only AND and OR the head and the tail of the string on screen, and only in the cases that's needed.
Another optimisation is to keep two pointers, one for each of the two characters you have to print next, each pointer pointing to the start of the character bits in the font table. So after fetching pixel bits, you only and and or between registers, and you only EX pointers, also swapping fast.
Keeping track of progress of the Z80 Noveau FPGA-based project. Now with sprites!
Details of the sprite logic in the Z80 Nouveau VDP finite state machine Verilog modules.
This provides an implementation of a TI9118-compatible graphic display.
@ John's Basement
@raymierussell
You've done some great work handling text! You're right that and'ing and or'ing on display memory is slow.
I have a routine that renders the text offscreen, then copies the buffer to screen using the stack very fast.
Very rough and off the top of my memory:
LD SP, <screen memory>
LD HL, <offscreen buffer>
LD BC, <byte count>
LOOP:
LD DE,(HL)
PUSH DE
INC HL
INC HL
DEC BC
JP NZ, LOOP
So you only AND and OR the head and the tail of the string on screen, and only in the cases that's needed.
Another optimisation is to keep two pointers, one for each of the two characters you have to print next, each pointer pointing to the start of the character bits in the font table. So after fetching pixel bits, you only and and or between registers, and you only EX pointers, also swapping fast.
I don't have survivalist inclinations, but I entertained the thought for a moment. Consider it sci-fi.
What if all semiconductor and computer production stopped today, indefinitely?
#permacomputing #retrocomputing #ZXSpectrum #Speccy #Spectrum #z80
Great #z80/6502 asm development philosophy article I stumbled onto by accident.