When I did some assembly programming on the Commodore PET, before I got the dual-floppy drive (so I could run their assembler and do lots of other things), I wrote an assembler in Basic that took the source as data statements. Don't remember much since this was over 40 years ago, but is was good enough for me to use.
I also got what was possibly the first external cassette drive for the PET on the west coast.
In the golden days, without Internet access and no CDs, computer magazines printed source code encoded in a hex format to save paper space. Each line with 10 or so hex-codes had a checksum to test your actual inputs against.
Here's the documentation and source of not just a cross-assembler but a 6502 emulator running on a PDP-11 running BASIC in the RSTS/E operating system.
I also got what was possibly the first external cassette drive for the PET on the west coast.
Those were the days.