I think the biggest and lowest hanging fruit improvement would be to not use the bottom line for memory display. Instead, change it to a status bar that shows where the cursor corresponds in both hex and decimal. Let users use the wasd keys to highlight (via alternate/blinking colors on a virtual cursor) any specific pixel and see the values/address in hex/dec.
@Krzys63012 жыл бұрын
Probably the c64 feature called "sprites" could be used for this -> to show some info and to highlight specific byte on the screen
@TheUtuber9993 ай бұрын
@@Krzys6301 Maybe even hide the borders and display the sprite there, so as to not cover any of the on screen data.
@TheUtuber9993 ай бұрын
@3vi1J There would need to be checks to prevent writing to the screen on the bottom row, which would add complexity and require updating offsets for the self-modifying code. I found an easier solution was using zero page pointers as references. See my other comment for Kick Assembler source code. Cheers.
@MarioSalvini2 жыл бұрын
I like to see your raw analysis. Thats where the Eureka-Magic happens. 👍
@kaulbachskave2 жыл бұрын
I think this magazine was named after the Transactor part of Personal Electronic Transactor. I used to borrow these from the library because I couldn't afford to purchase them.
@lordanthrax24172 жыл бұрын
So much love and joy in your song at the end! Greetings from germany
@miketheburns2 жыл бұрын
I actually like watching you figure stuff out on the fly. Sometimes more interesting than only getting the polished answers. I move you do this more often!
@rotordave812 жыл бұрын
I agree. I liked Robin's exploration in the video. Not every video has to be scripted and edited perfectly :)
@jjones503 Жыл бұрын
As he says, he enjoys the journey of a project. It appears I'm not the only one who enjoys him taking that journey too.
@AndreiNeacsu2 жыл бұрын
That is the smoothest scrolling with parallax that I ever saw on the C64. Awesome!
@TheUtuber9993 ай бұрын
This is a really cool program, Robin. Thanks for making a video on it. I did a detailed write up for it and linked to your video. It can be found on my Neocities page. Cheers.
@3vi1J2 жыл бұрын
I remember that Transactor cover! I was always amazed at how much more technically informative Transactor was than the competing magazines. Going to shut up and actually watch the video now... :)
@CanadianRetroThings2 жыл бұрын
Very interesting! I love going through all of the old magazines and finding the type in programs, I find it really helps in understanding how these old systems, the ones I am not overly familiar with, work! I even find tricks on the systems I do know well that I did not know about :)
@lonewretch2 жыл бұрын
Oh man, haha, that was SO OCD making the data statements line up :) I know how it is...
@alerey43632 жыл бұрын
3:39 the more 'sophisticated' magazines of the 80s had a line by line checksum code, printed on the magazine and it was included a "wedge" real time checksum program you can type before any article input, where a number on the screen appeared as soon as you hit the RETURN key and compare it to the printed checksum in each printed line you read; that way you can instantly catch your error, because if you misstype say DATA values 142 vs 141 and then happen to misstype another value i.e. 252 instead of 253, your overall checksum will be correct yet your code will do weird things or simply hang, depending on which part your mistakes were, i.e. opcodes or program sprite/char/bitmap data etc. I've made those mistakes in multi-page long programs and the checksum real-time program saved my life several times
@8_Bit2 жыл бұрын
I'd argue The Transactor was the most sophisticated of all 8-bit magazines :) Those checksum programs were a slightly later innovation and I believe Transactor also got one in later issues. I think this issue is from early 1984 and most magazines started their checksum programs in late 1984 or in 1985; one of us would have to dig up old issues and find out exactly when.
@jjones503 Жыл бұрын
You sir, have entered the matrix.
@properjob23112 жыл бұрын
Old computer magazines used to be great...alway looking forward to next months issue, typing in the listings and reading about all the new machines and games.
@jimmy215842 жыл бұрын
A good bit of detective work. Back in the pre-internet days on the Amiga, machine code in BASIC may as well have been cuneiform black magic to me. I needed to wait until I got to PC with ASM and proper documentation before I could understand machine code.
@_..---2 жыл бұрын
That's actually kind of brilliant, love this kind of mini programs being included in magazines/books.
@MS-ho9wq Жыл бұрын
15:50 It's called the run stop key
@kojsbarv2 жыл бұрын
Love this stuff and the song in the end is adorable
@MrUlski2 жыл бұрын
Hi Robin, I’m aware this is an older video but I just want to mention that I remember creating a similar program but instead of copying the data and show it as characters my program copied the data in to the sprite addresses or perhaps it was just one sprite - I used this to discover how sprites where designed in games.
@m0nde2 жыл бұрын
Love the end sequence with the RAM display of the scrollie, happy new year!
@LeftoverBeefcake2 жыл бұрын
Yep, I've noticed some funky behavior from time to time when using Super Snapshot with my 64C... mostly when exiting the monitor to resume a program. Thankfully the "save early, save often" approach has saved my bacon many many times. This issue of Transactor looks like it will be a wealth of knowledge for a ML n00b like me. It was instructive to see your thought process as you were examining the program, thank you for including it.
@aresaurelian2 жыл бұрын
Using the data in the screen buffer for the next screen buffer write can be used for some nifty procedurally evolving code, almost life like.
@NeilRoy2 жыл бұрын
I used to love these sorts of programs. I recall writing my own version of it and just scrolling through RAM. It was like peering into another world.
@backfire2187 Жыл бұрын
That's GREAT! I've been trying to remember/find the simple PEEK I,. NEXT I program a buddy of mine taught me 40 years ago on C-64 and Tandy. It was only 5 lines long or so and out put was similar to this. Was funny because I can still remember the Conputer class teacher catching a glimpse of what we were doing and it looked CRAZY.
@aner_bda2 жыл бұрын
Congratulations, you've discovered the Matrix on the C64.
@merykjenkins32742 жыл бұрын
What an interesting program, a great way to visually understand what's going on. The song at the end reminded me of two excellent TV and movie characters, 'Bit' from Tron and 'Cursor ' from Automan. Whatever happened to Automan? Thanks Robin, a great start to the New Year!
@8_Bit2 жыл бұрын
Thanks, yes, the song is very much inspired by Tron, and Automan was surely inspired by Tron :) KZbin channel Toy Galaxy did a great video about Automan if you want to check it out. Happy New Year!
@8_Bit2 жыл бұрын
Toy Galaxy: kzbin.info/www/bejne/oWWniIKklJmEp7M
@DavidYoud2 жыл бұрын
Ha, nice signoff :D Yeah, I bet that little program could have come in handy back in the day.
@csbruce2 жыл бұрын
3:44 It wouldn't wrap around if you used "dA" for "data". 8:12 You might get a parallax-scrolling effect when you're character-scrolling the screen RAM. 9:14 It seems like this is displaying regions of unmapped I/O space that return random values upon being read. The adjacent stable regions with a couple of bytes changing might be the mirrors of the VIC and CIA chips with the scanline or timer counters. 17:02 If it's jumping up and down by pages, it would be much better to call GETIN for the pressed key, to control the repeat rate. 25:00 It might help to display the "home" RAM page somewhere, such as on the last byte of the screen. 26:25 It might be the original source for some of them. I remember giving 600-dpi scans of some issues to someone. I've never had my hands on any issues before Volume 4.
@Gameboygenius2 жыл бұрын
You shouldn't even need to us dA. Just omit the spaces before/after DATA.
@SamuelFlint2 жыл бұрын
It also wouldn't wrap around if he used shorter line numbers.
@Pandamad2 жыл бұрын
Ideally the BASIC program could have 3 digit lines numbers to make the data lines fit on the screen. Using the dA abbreviation would not work at it would change to DATA the next time you list the program.
@pd2094582 жыл бұрын
I've got the same idea about "parallax" effect, but of course someone was faster ;)
@TheUtuber9993 ай бұрын
8:12 Yes, I think what is happening is that when page 4 is selected with offset 1, the program is reading the contents at address $401 and writing that to address $400 and doing that repeatedly - effectively shifting every byte to the left until it scrolls out of view. I posted some Kick Assembler source in another comment that shows the selected page and offset toward the bottom of the screen. If you select page 3; offset $28 and then press cursor down to switch to page 4; offset $28, the contents of the screen should scroll vertically since it is basically reading every screen row and writing it to the previous row until it scrolls out of view. 9:14 Since the 6510 and the VIC-II chip alternate use of the bus on the rising or falling edge of the clock, I think the area of memory around page $D8 is showing the contents of the VIC-II color ram briefly, followed by the contents of shadow ram and alternating quickly between the two.
@batlin2 жыл бұрын
The parallax effect at 25:25 is pretty neat. By drawing some of the screen memory to the screen, it overwrites what it's reading, so the effect is very much like when you hold two mirrors opposite each other to make an infinity mirror, or when you point a video camera at the screen displaying the live video feed.
@gordontaylor28157 ай бұрын
I've wondered if a slightly modified version of this program could produce a "C64 inspired" Doctor Who title sequence, since it seems like it could do a version of the "howl around" effect that the show's original title sequence became so well known for. :)
@michielboland6282 жыл бұрын
Funny how they appear to go through great lengths to make the code relocatable with this clv/bvc jumping but then use self modifying code for the copying.
@moshly642 жыл бұрын
Reminds me of the old sprite / font / bitmap ripper utility's.
@davidlloyd15262 жыл бұрын
I think the areas that are animated are actually not reading RAM (address space intended for cartridge and so on). When you read "nothing" you usually end up with whatever was last on the data bus (usually the VIC data)
@TheUtuber9993 ай бұрын
I think you might be on to something there. The 6510 and the VIC-II chip alternate for access to the bus - one on the rising edge and the other on the falling edge. So this effect could very well be the alternating set of data for each.
@JGreen-le8xx2 жыл бұрын
Happy New Year Robin.🎉
@moagnor2 жыл бұрын
So thats what The Matrix looked like in 1980s?
@cairsahrstjoseph9962 жыл бұрын
I had a bunch of Transactors (including that one) from 1982-1988 (gave them to TPUG some years ago). One of my favourite memories was the SAVE@ saga which went through several issues and which was finally solved for good. And yet, I never seemed to have tried this program.
@forbiddenera2 жыл бұрын
Stuff like this really makes me miss my c128 .. parents got rid of it when we got a 486..don't know why tbh
@TheUtuber9993 ай бұрын
Probably to help defray some of the cost for the upgrade to the evil DOS machine. 😒
@andrewgillham19072 жыл бұрын
In that same Transactor, just above the Ram Scan section you show, the 'Mirror' routine mentions that particular POKE you commented on in Ram Scan 64. It says: "However, it stops working after a Clear Screen is done, until the POKE in line 1040 is given. Can someone help us here? It's probably just some silly oversight that we can't seem to spot because of the clouds between us and the screen - you know the ones we mean, they're made of clear air? Hmm." Maybe Robin can help them out after all these years? The POKE might be needed on the Mirror program and not Ram Scan and it was just carried over.
@TheUtuber9993 ай бұрын
I think you are correct in stating that line 1040 has some irrelevant code that was probably carried over from the Mirror program you alluded to. I checked the subsequent revision, which showed a couple corrections to this issue under "TransBloopers," but looks like they missed this one. 😄
@ownpj2 жыл бұрын
9:11 Thats probably the end of colour RAM with its floating high nibbles, CIA#1 with its mirrors, CIA#2, and IO1 address space.
@ChrisCromwellHP Жыл бұрын
It would be very interesting to use this program to look into Video Ram, especially after playing a game!
@MichaelDoornbos2 жыл бұрын
"I may rewrite in TMP".... I double dog dare you ;-)
@keyvanmehrbakhsh40692 жыл бұрын
wow this was kinda the thing I've been looking for
@ian_b2 жыл бұрын
This happened to me all the time, back in the 80s getting transformed into machine language was a common hazard. Often you'd hear kids explaining to the teacher they were late for school because they'd been "Assembled". It never happens these days, it was a different time, that 8 bit world.
@saganandroid41752 жыл бұрын
Of course there's a Maple leaf on it. Oh Canada.
@TheUtuber9993 ай бұрын
The only two places on earth whereby a reference must be made to the nation even when completely unnecessary: Australia and Canada. 😁
@saganandroid41752 жыл бұрын
The scrolling contents, the screen feedback loops, etc., it seems like this could be the basis for a game of some kind. Just add Sprites and custom characters and initialize memory locations.
@Breakfast_of_Champions2 жыл бұрын
Ohhh what a great magazine! Wish we had had that here🤩
@thenorseguy24952 жыл бұрын
Happy New Year Robin
@wimwiddershins2 жыл бұрын
It'd be kinda fun to print the bitmap of classic games onto t-shirts.
@golomak66262 жыл бұрын
Interesting find! But I think something went wrong with the execution on your machine. The program doesn't change the text color, also I couldn't reproduce that "parallax effect" on my C64. Looking at the disassembly, I have to wonder why the author would use those "clv / bvc"-constructions? He could just have used "jmp" instead. And checking for the stop key ($ffe1) has no effect if he doesn't check the zero flag either. There is also a pointless branch at $035d: "bne $0365" which was probably supposed to be "bne $036c". So to sum it up, the program, while interesting, also looks a little shaky! That doesn't explain the malfunction on your computer though. I hope we'll get an update on that. :)
@8_Bit2 жыл бұрын
The varying text colours as I demonstrate it are just from the current cursor colour when I SYS 828. I usually change my cursor colour to white for higher contrast (my viewers requested it), so it was white the first RUN. Then I hit STOP+Restore which reset it back to blue, and I ran again, so the text was blue. I think the CLV/BVC were used as a "branch always" which means the code would be easily relocatable, as branches are relative but JMPs are absolute. However, other aspects of the code (such as the self-modifying part) are not relocatable, so it's kind of a waste of a couple cycles. And yes, the check for the stop key isn't checked so it's all a little strange. I suppose this port from the PET original was hurried off right before the magazine went to press.
@golomak66262 жыл бұрын
@@8_Bit My mistake, I actually omitted the poke command in line 1040 (because I like my colors the way they are) and later forgot about that. :-( So really that was just an odd choice of colors by the author.
@johnsensebe31532 жыл бұрын
The parallax effect was from copying screen memory to screen memory. The screen goes from $400 to $7E7, and your BASIC program starts at $800, so it's very easy to get the parallax effect when viewing your program. I don't know what that other stuff was. I'm kind of amazed that the C-64 is messing with RAM constantly like that. Maybe something to do with the Super Snapshot cartridge? It would be really helpful to have the address displayed.
@TheUtuber9993 ай бұрын
I left another comment with Kick source code that shows the selected page and offset. I hope that helps.
@TheSimTetuChannel2 жыл бұрын
I heard Ram Scan and then went: Whoa, Bread Binny (Bam-ba-lam) Whoa, Bread Binny (Bam-ba-lam) Got it for xmas as a child (Bam-ba-lam) That commodore was wild (Bam-ba-lam)…
@davecarroll2 жыл бұрын
I'm always flabbergasted at the impressive recall that you have for things that happened decades ago. Do you have an eidetic memory? Any special tricks on focusing on recall?
@8_Bit2 жыл бұрын
It does seem strange how vividly I remember a lot of these 8-bit moments in my childhood. I just need to read an old magazine, or boot up a game, or even just look at the C64 keyboard and memories come back.
@oliverakadjrunnerspoint57422 жыл бұрын
can I just type that into Basic on my C64 or do I need something else for that?
@Ansatz66 Жыл бұрын
Surely there should have been an assembler built into Basic so that people would have no reason to enter machine code as lists of numbers. Of course that would require more precious memory, but an assembler is so broadly useful that it would surely be worth having. It might even be worth having an assembler instead of Basic if a choice must be made between the two.
@AthleticDesign2 жыл бұрын
The first volume of Be an Interplanetary Spy was translated to Swedish. I bought in a supermarket out in the hicks and never saw it anywhere else. I thought it was just a one-off oddity. I I didn't now there was an entire series of them. neither did I know that they were from the US.
@8_Bit2 жыл бұрын
I love that series of books and just last year finally completed my collection. I'm not sure why you're bringing it up though, did I somehow reference it in this video? I don't remember if I did, sorry :) I'm not complaining, just curious!
@AthleticDesign2 жыл бұрын
@@8_Bit You don't mention it in the video, but in the caption: "strange dream after reading " "Be an Interplanetary Spy" books before bed"! Anyway, I'm tempted to go look for more books in that series, but I guess I have to look for the US originals which is fine by me :)
@8_Bit2 жыл бұрын
@@AthleticDesign Oh, haha, sorry I missed that. I actually wrote that description some months ago and I find not many people read the descriptions - apparently not even the author when I post the video! That's cool that they made a Swedish version; there are 12 total in the series but maybe just the original was translated?
@AthleticDesign2 жыл бұрын
@@8_Bit Haha! Well, I bought the first one while on holiday out in the countryside. I never saw it (or any other books in the series) in the bookstores and magazine stores in my university home town (Lund) where I could buy all the Fighting fantasy and Lone Wolf game books and all (and I mean all!) American and British computer magazines. But, googling now, I see that a second book also was published and that publisher was in Malmö, very close to my home town. They seem to mainly have published comics and pulp fiction and were called "Winthers förlag". The Swedish translations were called "Du är en Rymdspion: 1 Finn rymd-gangstern" and "Du är en Rymdspion: 2 Rädda Robotvärlden"
@logiciananimal2 жыл бұрын
Some of this reminds me of what PR#12 (without an OS) does on a Apple //c, which always seems to "diagonal scroll".
@JohnnyWednesday2 жыл бұрын
The ability to poke values into the displayed memory - IE draw art into memory - would be awesome :D also perhaps representing memory as pixels would allow for a more intuitive navigation of memory? or perhaps drawing a graphical bar using all the sprites to show an overview so you can see an indicator of where in the memory map you're currently looking - like a sprite cursor that moves along the edges of the screen to indicate the coordinates in memory when expressed as a 2D grid
@JohnnyWednesday2 жыл бұрын
Also you could add some 'bookmarks' to the function keys - move the display to specific areas of interest - like the screen buffer - OS calls and chip registers and stuff? it'd be cool to have two areas of memory stored as bookmarks that you can jump between - and then have some code that runs on an interrupt that slowly copies data over from one part to the other - then you can monitor it using this program :D
@dr.ignacioglez.96772 жыл бұрын
I REALLY LOVE C64 👍🥂🎩
@MD_il_microcanale2 жыл бұрын
this is all very cool!
@m7hacke2 жыл бұрын
Hi Robin. Thanks for all of the great videos. I have a question. Can you add labels to Assembly code using the ML monitor in the Super Snapshot or any monitor for that matter? For example, "loop LDA #05".
@8_Bit2 жыл бұрын
Unfortunately no, I'm not aware of any C64 ML monitors that support labels. I'm not sure everyone would agree on the terminology, but the way I look at it is: Machine Code is just the raw bytes like A9 05 that you'd use a hex editor for, Machine Language allows mnemonics like LDA #5 that you'd use a ML monitor for, and Assembly Language allows symbols/labels like LOOP LDA #GREEN (or whatever) that you'd use a (Symbolic) Assembler for. 3 different levels, essentially.
@m7hacke2 жыл бұрын
@@8_Bit Okay. Thank you.
@m7hacke2 жыл бұрын
Okay, how about this. How do you add comments to Assembly code in the Super Snapshot ML monitor? I tried the semi-colon, but that did not work.
@8_Bit2 жыл бұрын
@@m7hacke the sort of "simple assembler" built into Super Snapshot and Action Replay, or in SuperMon for that matter, don't support things like comments or labels. They're assembling directly into memory each time you press return, so there's no place for the comments to be stored really. It's only proper symbolic assemblers that store the assembly source file on disk or in another part of RAM, and then assemble the source into actual machine code that can handle comments.
@przemekbundy2 жыл бұрын
why do you make spacing in the date line. like in listing. it doesn't matter?
@LordRenegrade2 жыл бұрын
It's likely done that way to make it easier to see where you've made mistakes during typing. It otherwise doesn't matter - I input the program to an emulator (VICE 3.6) and didn't use the spaces, and it worked fine.
@8_Bit2 жыл бұрын
Yeah, it's just easier to spot mistakes this way, no other reason.
@matti1572 жыл бұрын
Very nice video
@turbinegraphics162 жыл бұрын
When hacking roms with tile layer pro you sometimes get that same parallax effect when scrolling.
@SteveGuidi2 жыл бұрын
Did you figure out what caused the cartridge to crash? I don't think I've ever seen Super Snapshot jump to a random monitor while in some other feature! It would have been nice to try a scavenger hunt game where you put some text in memory, then try to find it by scanning the display/memory with the cursor keys 🙂.
@8_Bit2 жыл бұрын
No, I never did figure it out that crash. Pretty bizarre! I can only guess that the program was reading/writing some magic bytes in the Super Snapshot's bank control registers. I kind of did the scavenger hunt game when showing my patron credit program's code in the scanner during the end credits. But I edited out most of the actual hunting and just showed the parts I found :)
@asmilefromgodzilla2 жыл бұрын
top
@jakubkrcma Жыл бұрын
10:38 Maybe this was the first computer virus... 🤣🤣🤣 (I know Creeper was the first wannabe virus in 1971.)
@ropersonline2 жыл бұрын
3:46: If you had limited yourself to three-digit line numbers, you might have avoided the line-wrapping.
@pomakis2 жыл бұрын
I wrote a similar program back in 1987. It's neat getting so up-and-cozy with memory. (I tried posting a link to my program, but it doesn't seem to make it through. Is it because it's against some sort of policy?)
@8_Bit2 жыл бұрын
KZbin is really bad now about silently deleting comments, especially ones with links, but even those without. They don't even put them in a moderation bin for me to approve, they just outright delete them. Sorry about that!
@pomakis2 жыл бұрын
@@8_Bit That's frustrating. But it's not a big deal in this case because it's just a rinky-dink little program that I thought'd be fun to share. Still, I'm curious about how I can get a URL through. This is my seventh attempt, this time rot13ing everything and leaving out punctuation. uggc jjj cbznxvf pbz zrzbel%20qvfrpgbe cet
@eugenetswong2 жыл бұрын
@@pomakis Maybe you could every chunk of the url on a separate line. Google Com Page?asdf
@Lion_McLionhead2 жыл бұрын
Parallax effect doesn't make sense if every row moves by 1 character.
@Tommymang2 жыл бұрын
Who wrote this I wonder …
@TheUtuber9993 ай бұрын
I think it was written by Richard Evers, Editor for The Transactor Magazine.
@paulvanderlaak7002 жыл бұрын
Do the parallax in combination with 10 print random. An smooth would be nice 😃
@frankb7632 жыл бұрын
Hi Robin, my name Frank. I already pursue your videos for a while. I would have an inspiration because you could make a video about the SID in the C64. How to create an interrupt-powered song. I do not mean the notation, especially the technology behind it. I would like to program a game, which plays a song via interrupt. Maybe it is possible for you. Thank you ... Greetings from Germany
@8_Bit2 жыл бұрын
Hi Frank, I think this video I made covers the playback aspect: kzbin.info/www/bejne/e4uklHdulr2Jo5Y
@frankb7632 жыл бұрын
@@8_Bit Thx Robin, i saw it to late. ;-)
@eugenetswong2 жыл бұрын
Wow! I had to do a double take. You read, "Be An Interplanetary Spy"? I did, too. I got 4 original copies from a friend. We first met in Bible camp as kids, and then I got to read them there. In high school, I was probably too old to be reading them, but I got the old copies from him, and got the new issues. I think that there were only 12 copies. I'm so glad that I kept these in good condition.
@forbiddenera2 жыл бұрын
Probably acting weird because io mapped memory; simply reading certain addresses could have side effects.
@talideon2 жыл бұрын
You could avoid the wrap by typing D♠, remember!
@TheUtuber9993 ай бұрын
But it will just come right back when the program is listed.
@marcinEcXY2 жыл бұрын
Ram Scam… 🙃
@MrRobertX702 жыл бұрын
Why waste time, resources and patience of your audience by recording your typing?
@ideegeniali2 жыл бұрын
There are easy navigation controls on youtube for audience to skip parts they're not interested into. Just skip the part you don't wanna see and let others see if they wish to.
@0LoneTech2 жыл бұрын
@@ideegeniali As it happens, I skipped it at first then rewound to the typing after the end. People have varied preferences.
@NotaWizard2 жыл бұрын
Very cool, thanks for that thorough walkthrough. I was wondering why they didn't get $FFE4 (GETIN) to read in the characters. Would it slow it down so much that you couldn't get that highspeed parallax effect? Perhaps raw key reads make the program more awe inspiring. :) haha btw, loved the outtro with the ram scanner of your program. :)
@8_Bit2 жыл бұрын
Yeah, I'm not sure why they didn't use $FFE4 but your guesses are good: for speed or for awesome :)
@TheUtuber9993 ай бұрын
Agree completely. I left another comment with Kick source code that uses GETIN. I hope that helps.