Comment by mfuzzey
I started Z80 assemnbler (on a ZX80 computer) that way. But I soon get fed up looking up opcodes and especially calculating relative jumps (especially backwards ones) by hand as I often seemed to make off by one errors causing my program to crash.
So I wrote my on assembler in BASIC :)
I wrote a Z80 disassembler that was, alas only partially complete as it didn’t handle the two-byte opcodes as part of my efforts to reverse engineer the MSX Spectravideo computer I got in exchange for writing some demo programs for the midwest distributor while I was in high school. I remember finding the memory locations of the character bitmaps by doing wholesale poke commands through the whole memory of the computer.