Retro Assembly Language

Started by Steve Elliott, August 02, 2020, 23:28:13

Previous topic - Next topic

Steve Elliott

Back in the 8/16 bit era if you wanted to get the very best from the computer you had to use Assembly Language.  You didn't have an OS fighting you or libraries to learn - so you could hit the metal and get the most from the limited hardware.  Coding on a limited system currently interests me, and after installing FS-UAE today and seeing how good it replicates the smooth scrolling of a system locked at 50hz (PAL) running scrollers like Agony and Shadow of the Beast, with my monitor also switched to 50hz it's gotta be 68000 assembly language and Amiga coding!  Even PC's can't hit silky smooth scrolling at times due to the many configurations available (computer and monitor refresh rates) and the programmer not quite compensating adequately.

I feel I kinda missed out on the assembly bandwagon...Or should that be Assembly Line?  :D  I'm familiar with lots of high level languages, but I never went lower than C.  With good emulators it seems that urge to try a bit of Assembly Language is too tempting to turn down on a very capable system like the Amiga.  I think I'll give it a bash and see how I get on.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Qube

FS-UAE with your monitor set to 50hz is great for Amiga emulation. Been playing the Nightmare table on Pinball Dreams in all it's silky smooth glory.

I get the urge to learn assembler but for the C64 ;D - Although you would of thought with the VIC-20 being my first computer I'd dive into that side but I wan't to delve into multi coloured sprites and SID chip music.

I'd probably find 68000 + Amiga stuff more difficult than an 8-bit C64 so baby steps to begin with like "Hello World" stuff and bill up from there.
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Steve Elliott

#2
Yes I thought of the C64 at first (I have a C64 emulator and a real C64).  But I only want to learn one system at assembly language level and the Amiga is so capable with plenty of RAM.  With the C64 you'll have to pull some tricks to get your game to fit into RAM, so more complicated in some ways.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Qube

QuoteWith the C64 you'll have to pull some tricks to get your game to fit into RAM, so more complicated in some ways.
This is true and I've thought of that so I'll probably have a quick play with both and decide from there which one I'll spend more time with. Also doing a DOS game in assembler is tempting too ;D
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

MikeHart

How about the upcoming Commander X16? From the video specs it is close or even better as the amiga, easier memory model than the C64 and hardware is surpose to ship late 2020. Emulator is out already.

Steve Elliott

#5
Quote
How about the upcoming Commander X16?

That's too much of an uknown quantity.  The Amiga is a well known classic system and still popular with fans.

The Colour Maximite 2 is already out too, but doesn't even come with standard joystick ports.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

TomToad

If you really want to get low level, how about making your own CPU?  Came across this playlist from Ben Eater.
https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU
------------------------------------------------
8 rabbits equals 1 rabbyte.

Steve Elliott

#7
Interesting, but I would want a widely supported system...The Raspberry Pi Zero is also a possible, all-be-it a more modern solution.  The latest Raspberry Pi 4 models are little more than slow PC's, quad core CPU with 8Gb of RAM.  Rather than a more limited system like the Pi Zero, single core CPU and just 512K of RAM like the Amiga A500.  The Zero runs at a consistent clock speed too, ie a fixed computer model spec like the Amiga/ST and the 8-bit computers.

So ARM Assembly Language then!...Even if that's cheating because it's a 32-bit system not an 8/16 bit one.  I seem to have lost my Pi Zero so ordered a replacement and some extra bits:

https://shop.pimoroni.com/products/raspberry-pi-zero-w

https://thepihut.com/products/mini-hdmi-to-hdmi-cable-v1-4-zero

https://thepihut.com/products/zebra-zero-heatsink-raspberry-pi-zero-case-black-ice

https://thepihut.com/products/usb-to-microusb-otg-converter-shim

The USB converter Shim will help connect the tiny Nano USB Dongle for the keyboard and mouse set from JellyComb I already have:

https://www.amazon.co.uk/Wireless-Keyboard-Jelly-Comb-Computer-Black/dp/B0762CQQQP/ref=sr_1_6?crid=T9P1HBJX9DAT&dchild=1&keywords=jellycomb+keyboard&qid=1596727123&sprefix=jellycomb+%2Caps%2C161&sr=8-6

Or for ultra small and portable (and leaving a free USB slot) I have this foldable bluetooth keyboard and track pad too.  It folds into 3 sections so is very small when not in use, but opens up to a decent keyboard and track pad size when unfolded.  It also works with phones and tablets.

https://www.amazon.co.uk/Bluetooth-Keyboard-Jelly-Comb-Rechargeable/dp/B07BNKV756/ref=sr_1_9?dchild=1&keywords=bluetooth+keyboard+and+mouse&qid=1596891414&refinements=p_89%3AJelly+Comb%7CLogitech&rnid=1632651031&s=computers&sr=1-9



Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Xerra

Ahem, cough.

Uncle Xerra has already had a play with this. Sadly I've not continued much with it yet even though I want to. his thread might give me a kick up the butt.

https://www.syntaxbomb.com/index.php/topic,6907.0.html
M2 Pro Mac mini - 16GB 512 SSD
ACER Nitro 5 15.6" Gaming Laptop - Intel® Core™ i7, RTX 3050, 1 TB SSD
Vic 20 - 3.5k 1mhz 6502

Latest game - https://xerra.itch.io/Gridrunner
Blog: http://xerra.co.uk
Itch.IO: https://xerra.itch.io/

Steve Elliott

#9
Assembly Language is the new Python lol...I much prefer C myself though (to Python).

Yeah you should definitely continue with your assembly coding.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Steve Elliott

Hmm, well I've received all the extras, everything but the pi zero itself lol.  The problems of ordering from 2 different companies.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Steve Elliott

#11
The Pi Zero arrived today, wow it's smaller than I remember.  Incredibly efficiently put together and looks fantastic in the case.  Clear acrylic so you can see the tiny components on the board, but with a black surround too.  The case is very nice indeed, the pictures don't do it justice.

https://thepihut.com/products/zebra-zero-heatsink-raspberry-pi-zero-case-black-ice

Set everything up using the keyboard/mouse:

https://www.amazon.co.uk/Wireless-Keyboard-Jelly-Comb-Computer-Black/dp/B0762CQQQP/ref=sr_1_6?crid=T9P1HBJX9DAT&dchild=1&keywords=jellycomb+keyboard&qid=1596727123&sprefix=jellycomb+%2Caps%2C161&sr=8-6

But to remove the need to take the only USB slot and keep the system small I'll probably use the Bluetooth option for general use:

https://www.amazon.co.uk/Bluetooth-Keyboard-Jelly-Comb-Rechargeable/dp/B07BNKV756/ref=sr_1_9?dchild=1&keywords=bluetooth+keyboard+and+mouse&qid=1596891414&refinements=p_89%3AJelly+Comb%7CLogitech&rnid=1632651031&s=computers&sr=1-9

You really do notice the speed difference between the pi zero and the pi 4, but that's the point.  I'll be treating it like a modern Amiga (all-be-it one that could fit it your pocket and costs £10) rather than a cheap PC Laptop.  Next to setup AGK, C and I'll be looking at Assembly Language after that.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Qube

The pi-zero does look pretty cute :))

Good luck with learning Assembler. Remember to post code, comments and explanations so I can nick it and take credit ;D
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Steve Elliott

#13
Quote
The pi-zero does look pretty cute :))

Good luck with learning Assembler. Remember to post code, comments and explanations so I can nick it and take credit ;D

lol yes it's very cute (only 66.0mm x 30.5mm)  ;D  And still uses a bigger HDMI Port than the pi4.   :P

Thanks, will do...  :P

It's typical, the first computer I'd thought of for assembly language was the Spectrum Next (I didn't think that would ever come out, so I missed out)...Well I've just received the pi zero, and guess what?  The Spectrum Next is available to buy on Kickstarter 2 tonight...I don't think I'll go for it now...Probably not...But you know after a few beers you tend to buy things...  :))

Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Steve Elliott

#14
Ooops I ordered a Spectrum Next on Kickstarter!   :D

The goal was reached in minutes so it's going ahead.  I guess I have some time before I actually receive a machine, so time I can use to learn Z80 Assembly Language and read the downloaded version of the manual until the physical one arrives - plus there's a Spectrum Next Emulator out there.  Programming on the very first computer I ever owned (in something other than BASIC) at last lol.  I still own my original ZX Spectrum (which no longer works).  Because it's hardware is implemented in FPGA technology, with no emulation in sight as they say on the Kickstarter Page all software and hardware peripherals are compatable.  Ofcourse I'll be taking advantage of the turbo modes, hardware sprites and scrolling, more memory, 256 colour modes and better sound too.

So it's Qube and Xerra on 6502 Commodore 64 and me on Z80 Spectrum Next Assembly Language as was the original idea of this thread.   :))
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb