Hello, Agon! -- Hello World in BBC BASIC, eZ80 Assembly and C

  Рет қаралды 10,413

The Retro Desk

The Retro Desk

Күн бұрын

For the Agon Light, I go through 3 different ways to make a "Hello, World" program. All code is available on GitHub:
github.com/SlithyMatt/agon-hello
This video was sponsored by PCBWay -- visit pcbway.com to get started on your own dream project!
Join our Patreon community: / slithymatt
Chapters:
00:00 Intro
00:50 BBC BASIC Background
04:11 BBC BASIC Demo
07:45 System Architecture
14:04 Software Ecosystem
18:03 eZ80 Assembly Background
22:38 eZ80 Assembly Code Walkthrough
34:59 eZ80 Assembly Demo
42:04 C Background
45:35 C Code Walkthrough
50:55 C Demo

Пікірлер: 60
@talideon
@talideon Жыл бұрын
Acorn's choice to build their own interpreter wasn't an arbitrary one at all: they had a mandate from the BBC that it had to support structured programming, which Microsoft BASIC didn't support. Instead, they were influenced by COMAL, another BASIC-like language that was popular in education in Europe at the time. It also borrowed heavily from BCPL, though the influence there is a bit more subtle. The most obvious BCPL-inspired feature is the use of memory access operators instead of PEEK and POKE.
@SnopekGames
@SnopekGames Жыл бұрын
I'd love to see more Agon content!
@kdietz65
@kdietz65 Жыл бұрын
What would be fun would be to port both CP/M (or similar OS) and BBC BASIC to support the full 2^24 address space of the eZ80.
@slithymatt
@slithymatt Жыл бұрын
It would be a lot of work, but the community would be very supportive of it!
@johnmiller0000
@johnmiller0000 25 күн бұрын
I cut my programming teeth on ZX-80/81/Spectrum including Z-80 assembler and hand-coded machine code. Seeing BBC BASIC with Z-80 ASM is a joy.
@Brian-vs9sd
@Brian-vs9sd Жыл бұрын
Truly appreciate all the work you do.
@romit001
@romit001 Жыл бұрын
Awesome stuff, thanks for all the info on this great little computer.
@julianregel
@julianregel Жыл бұрын
Excellent video, thanks Matt. I'd definitely be interested in more Agon videos, especially if you dived into what you can do with BBC BASIC and its VDU commands to control the video and audio.
@nickthesoulboy
@nickthesoulboy Жыл бұрын
Thanks for this excellent video!
@xyz2112zyx
@xyz2112zyx Жыл бұрын
I really enjoyed this video. I watched it twice until now...
@johngay8416
@johngay8416 Жыл бұрын
There is also a 16 bit forth available for the Agon as well!
@slithymatt
@slithymatt Жыл бұрын
I may have to do a video on Forth some time. Lots of retro machines can run it!
@andyleighton3616
@andyleighton3616 Жыл бұрын
@@slithymatt There was even a machine which had Forth as its native language and not Basic. The Jupiter Ace.
@winstonsmith478
@winstonsmith478 Жыл бұрын
Any chance of seeing any Agon specific graphics and sound commands being added to Agon's BBC BASIC.
@slithymatt
@slithymatt Жыл бұрын
Good question. For now, it's just new VDU sequences.
@androth1502
@androth1502 6 ай бұрын
i notice some programs can run directly as commands and the ones you compile, you have to load first and then run. is that just a difference of what header is on the program?
@petermuller608
@petermuller608 Жыл бұрын
Is PCBWay unironically using beans as currency? Have they already forgotten beenz xD
@user-qr5cs4pe4f
@user-qr5cs4pe4f 6 ай бұрын
Thank you for this review. I am really interested in learning assembly language on the Agonlight2. Your example worked perfectly, but when I tried examples from the eZ80 Heaven site, they compiled with errors. I think their code is for TI calculators. Where can I find an assembly language tutorial specific to the Agon? Thanks again. I have been wanting something like this for decades.
@DAVIDGREGORYKERR
@DAVIDGREGORYKERR Жыл бұрын
Is there going to be a version running the ZILOG Z800 processor which will run ZILOG Z80,ZILOG Z80A and ZILOG Z800 code and make games run much faster or for that matter a PC running the ZILOG Z8000 could run UNIX System V that was compiled for the ZILOG Z8000.
@slithymatt
@slithymatt Жыл бұрын
Not that I'm aware of. The next one will have a 6502
@edgarmatzinger9742
@edgarmatzinger9742 8 ай бұрын
And if you would replace printf() with puts()? In regular C-programs this would reduce the program... Or is printf defined to be puts? Edit: the latter....
@mklcolvin
@mklcolvin Жыл бұрын
How did you get ez80 and the C compiler onto Agon? Is there a Z80 binary for each of these somewhere?
@slithymatt
@slithymatt Жыл бұрын
I only had the eZ80asm on the Agon itself. All the details are in the link in the description
@jumhig
@jumhig Жыл бұрын
Great explanation, thanks! Also note that you can use the Zilog ZIDE to do C development of 24-bit eZ80 programs for the Agon.
@slithymatt
@slithymatt Жыл бұрын
Yes, indeed, but I always try to recommend a free and open source alternative whenever possible.
@andrewdunbar828
@andrewdunbar828 Жыл бұрын
A Google search turns up basically nothing for "Zilog ZIDE". Where can I find out about it?
@this_is_private
@this_is_private 9 ай бұрын
is the rst vector 18h the same, as for the vdu commands in basic? can i send my vdu commands over it, like in mos or basic?
@slithymatt
@slithymatt 9 ай бұрын
Yes
@TSteffi
@TSteffi 10 ай бұрын
I'm currently planning a system specifically for CPM 3, and I'm thinking about the eZ80. But from what I see here, it is really quite different from the original Z80.
@slithymatt
@slithymatt 10 ай бұрын
Yes, there are definitely things you need to look out for. I recently featured the Aquarius+, which uses a regular Z80 and would definitely have the RAM for CP/M, but currently lacks support for 80 columns.
@TSteffi
@TSteffi 10 ай бұрын
@@slithymatt I have almost finished my port of CPM 3 for John Winans' Z80 Retro board, that one has 512k RAM, but with a inconvenient 32/32 banking. I want to develop a system with a more MSXish 16k page size, but I really want it to be Z80 compatible, using the old school assemblers (my current CPM is written in ZMAC).
@mklcolvin
@mklcolvin Жыл бұрын
Also Z80-based nano app?
@noname4422
@noname4422 Жыл бұрын
I’m curious why you went for SDCC when there are options such as Clang with Jacobly’s LLVM backend and ZDS which target the eZ80 in ADL mode.
@slithymatt
@slithymatt Жыл бұрын
I didn't know about the LLVM option, but as for ZDS, I wanted to demonstrate an open source alternative. If someone has an LLVM backend for clib on the Agon, I'd be glad to demo that.
@deterdamel7380
@deterdamel7380 Жыл бұрын
We need an OSS C-compiler for the Agon. SDCC may be a good start, we need to add nativ ez80-support there. Edit: But there is a Z88DK-project, containing a fork of SDCC. It seems that ez80 support making it's way into this fork.
@SuperHaunts
@SuperHaunts 8 ай бұрын
looks like a GREAT SYSTEM! I just need SOME kind of communication/networking. I could use serial, but would prefer some Ethernet, hardwired or wireless, so that I could have a system programmable in BASIC that handles GPIO.
@TechCowboy
@TechCowboy Жыл бұрын
I liked this tutorial, but what I thought was missing was how to a straight z80 program. Do I set my org address to $0000 ? I assume it's going into page $040000 -- but who knows??
@slithymatt
@slithymatt Жыл бұрын
To do that you have to set MBASE to $04. Or you can call Z80 code that is loaded elsewhere with CALL.S.
@jinchoung
@jinchoung Жыл бұрын
if you continue this series, i'd be really interested to see how we could use the agon board as a ttgo like board. that wouldn't be my main use for the board either but it would be cool to see how to do it if i wanted the option.
@desertfish74
@desertfish74 Жыл бұрын
I was expecting you to use the built in assembler in BBC basic instead of a separate assembler program
@slithymatt
@slithymatt Жыл бұрын
That's a lot more fiddly to deal with.
@richy69ify
@richy69ify Жыл бұрын
was it ported across to Z80?
@rog2224
@rog2224 Жыл бұрын
@@richy69ify Indeed it is. There are some example stubs floating around. I always found the BBC BASIC inline assembler a bit of a faff - it never felt as well integrated as it might.
@johnwilliams7999
@johnwilliams7999 Жыл бұрын
Does ex80asm run on Mac m1?
@slithymatt
@slithymatt Жыл бұрын
Yes, it should compile for any Unix-like system just fine.
@talideon
@talideon Жыл бұрын
z80asm is available using Homebrew, and it shouldn't be terribly different.
@mattmyers9351
@mattmyers9351 9 ай бұрын
Does this mean we can play BBC Micro games on the Agon?
@slithymatt
@slithymatt 9 ай бұрын
Only if they were written strictly in BASIC and did not make any direct hardware calls except for VDU statements. Machine code programs would be written in 6502 and have memory-addressable hardware, so that's completely different.
@paulscottrobson
@paulscottrobson Жыл бұрын
Excellent video. One minor point. The eZ80 is pipelined, so while theoretically the 3 byte JP should be quicker than the 4 byte JP (allowing for the much quicker clock speed), in practice it isn't. I think ! (PS: Byte Attic 4 Commander X16)
@user-zq8bt6hv9k
@user-zq8bt6hv9k Жыл бұрын
an 8 bit computer with components largely available and 1/5th the price of a playstation 5, is it a dream?
@richy69ify
@richy69ify Жыл бұрын
1/10th the price
@user-zq8bt6hv9k
@user-zq8bt6hv9k Жыл бұрын
@@richy69ify v1 is 100€ so 1/5th, but idd v2 or olimex version is 1/10th
@richy69ify
@richy69ify Жыл бұрын
@@user-zq8bt6hv9k yeah Olimex 50 euros plus tax and shipping, PS5 600 euros
@admaneb
@admaneb 11 ай бұрын
Does it do python?
@slithymatt
@slithymatt 11 ай бұрын
No. That's a bit much to ask of the eZ80. You might be able to get a version to run on an ESP32 that had more RAM than the one on the Agon.
@cygil1
@cygil1 10 ай бұрын
​@@slithymattI am sure micropython could be ported to it, however. As of now, however, it appears it has not.
@indigodarkwolf
@indigodarkwolf Жыл бұрын
First! (But probably second by the time this posts.)
@DAVIDGREGORYKERR
@DAVIDGREGORYKERR Жыл бұрын
If you could have got your hands on a known good working MEMOTECH MTX512 you could write BASIC and Machine code in the one program.
@rog2224
@rog2224 Жыл бұрын
The Z80 BBC BASIC has the inline assembler implemented, so it's possible on the Agon, but it's fiddly.
Multithreading Code - Computerphile
15:54
Computerphile
Рет қаралды 381 М.
Borland Turbo Pascal 3.0 for CP/M 80 on MinZ SBC
13:38
MightyPEZ
Рет қаралды 634
Little girl's dream of a giant teddy bear is about to come true #shorts
00:32
Iron Chin ✅ Isaih made this look too easy
00:13
Power Slap
Рет қаралды 36 МЛН
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 9 МЛН
Is this the FASTEST and CHEAPEST 8-Bit Computer Ever?
28:43
Noel's Retro Lab
Рет қаралды 161 М.
Sinclair BASIC vs BBC BASIC - How to fit an entire devkit inside 64K
22:01
X16 vs. Agon: 8-Bit Battle Royale
41:21
The Retro Desk
Рет қаралды 27 М.
Programming Bitmap Graphics - Agon Light using C
27:50
NCOT Technology
Рет қаралды 1,5 М.
Risc-V Bare Metal C Hello World!
21:37
Chuck's Tech Talk
Рет қаралды 2,5 М.
Hello, NES! - "Hello, World!" on a Nintendo? A little easier?
48:42
The Retro Desk
Рет қаралды 10 М.
First Look: Agon CONSOLE8! A New 8-Bit Console for Retro Fans
41:14
RMC - The Cave
Рет қаралды 56 М.
Can You Beat Hitman 3 Without Breaking ANY Laws?
22:37
windowledge
Рет қаралды 1,6 МЛН
Agon Light 2 - C Programming, Better Keyboard Routines, Joystick Ports
35:36
Harder Drive: Hard drives we didn't want or need
36:47
suckerpinch
Рет қаралды 1,6 МЛН
iPhone 15 Pro Max vs IPhone Xs Max  troll face speed test
0:33