No video

Running a Z80 Computer Virus on a Breadboard Computer One Step at a Time

  Рет қаралды 8,613

Kenneth Finnegan

Kenneth Finnegan

4 жыл бұрын

I wrote a computer virus in assembly that copies itself into RAM 16 bytes above its current location, and then executes that copy of itself!

Пікірлер: 13
@BitwiseMobile
@BitwiseMobile 3 жыл бұрын
My first processor was the 8086 which is a close cousin to the Z80. I taught myself assembly when I was 13 by using the venerable DOS command called DEBUG which allowed me to enter opcodes directly into memory and execute those opcodes while observing the registers changing. This is like taking a walk down memory lane. I remember trying to get the IBM Technical manual and any schematics I could to figure out all the peripheral chips and how to control them :). It started a life long love of computers and electronics.
@flexairz
@flexairz 3 жыл бұрын
I did somewhat the same thing back in the day but with the SDK-85 from Intel. A 8085 kit. Now I am back into retro with the RC2014 Mini.. loving it!
@carlam6669
@carlam6669 3 жыл бұрын
The LDIR instruction can be used to quickly zero out a block of memory by setting HL to the beginning of the block, DE to HL+1, BC to the size of the block minus one, set the first location to zero then let her rip with the LDIR. Or fill the area that will be used by the stack with some unique number so you can how much of the stack has been used.
@TomStorey96
@TomStorey96 3 жыл бұрын
If you want to read the PC you can do a CALL forward to the next instruction, which will push the PC onto the stack, you can then pop it off. For something that is going to self replicate you'll need to do a little work to modify the address that is CALLed, so not necessarily a trivial operation.
@carlam6669
@carlam6669 3 жыл бұрын
That assumes you’ve already set the stack pointer above a usable block of memory. Then sprinkle in a little self-modifying code to modify the address that the CALL instruction is branching to.
@LongnoseRob
@LongnoseRob 4 жыл бұрын
Would be nice to have a soft core Z80 in an FPGA to also be able to see the internals of these op-codes
@johnmarks714
@johnmarks714 Жыл бұрын
All you need is permanent storage and a way to intercept IO and then your virus can replicate from flash drive to flash drive. Bonus points if you can make it reset resistant (survive resets)
@vanhetgoor
@vanhetgoor 3 жыл бұрын
It really looks nice, flashing lights are only on real computers. Not that flashy card, that means nothing. Grouping the LEDs so that they can be read by humans is great too. From the blinkety blink you go to understanding. Thanks, this is constructive!
@patrickdemets6018
@patrickdemets6018 3 жыл бұрын
Interesting. Food for thought as I'm planning to experiment with breadboard computers from (nearly) scratch with 6800, 6502, and eventually Z80. Also, I really love your paper with the grey banding. Where is that available? Size A5 or half-Letter? Thx
@mheermance
@mheermance 3 жыл бұрын
I'm surprised to see you single stepping a Z80 like that. The 65C02 has a static core, so the clock can be suspended and you can single step by pulsing the clock. Does the Z80 allow for a halted clock?
@KennethFinnegan
@KennethFinnegan 3 жыл бұрын
Yep. The Z80 was always a static design, so even pre-CMOS models you could single step it (but I believe that you had to leave the clock high. I was having problems with NMOS parts wigging out after 1-2 seconds with the clock low.)
@SusanAmberBruce
@SusanAmberBruce 3 жыл бұрын
Ah I made myself a nice cup of CoCo and sat down to watch this vid, Just been trying to get some code to work on the Arduino and I was thinking; wouldn't it be great if there was a board like the Arduino that could be programmed in Z80 or 8080 machine code.
@edgeeffect
@edgeeffect 3 жыл бұрын
A0FF: CALL $A102 ; POP HL ; JP $8000 - Will copy PC into HL
Why build an entire computer on breadboards?
28:43
Ben Eater
Рет қаралды 3,1 МЛН
Understanding the Z80 Memory Map
14:12
Kenneth Finnegan
Рет қаралды 30 М.
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 27 МЛН
Inside Out Babies (Inside Out Animation)
00:21
FASH
Рет қаралды 16 МЛН
Little girl's dream of a giant teddy bear is about to come true #shorts
00:32
Modern Z80 Computer RAM/ROM Options
15:29
Kenneth Finnegan
Рет қаралды 53 М.
Designing a Card Slot Modular Z80 Computer
14:29
Joshua Coleman Makes
Рет қаралды 42 М.
A simple BIOS for my breadboard computer
21:53
Ben Eater
Рет қаралды 332 М.
Pony80 - Z80 CPU Architecture - My Z80 homebrew computer!
26:37
Hand-Wired Z80 Basic Computer
21:24
element14 presents
Рет қаралды 63 М.
Z80 Assembly Language
1:44:45
John's Basement
Рет қаралды 15 М.
Z80 Computer - Part 1 The CPU, Clock & Reset
44:25
Steve Rayner Makes
Рет қаралды 30 М.
Nature's Incredible ROTATING MOTOR (It’s Electric!) - Smarter Every Day 300
29:37
A new OS for the Z80! [Open Source][Zeal 8-bit OS]
11:05
Zeal 8-bit Computer
Рет қаралды 126 М.
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 27 МЛН