40-track disks need to be degaussed before being written in an 80-track drive. FluxEngine software works with the GreaseWeazle. Custom formats can be created.
@thomayamupright147Ай бұрын
I had to watch again because I fell asleep. It's a good explaination of what's happening....line by line. I've been coding for a long time.....off and on. I use Turbo Assembler or Turbo Macro Pro. I can't STAND line numbers. I'm so glad it's all still being used. [salute] When they created VICE, I was back in the game. ...and I LOVE it. :D
@VintageVoltsАй бұрын
Glad you like it! The use of line numbers is an (un)fortunate symptom of using the BASIC entry mechanism to enter code. The positive side of having to use line numbers due to the BASIC environment is that it doesn't require a separate editor program to run and manage program development, along with having the ability to mix BASIC and Assembly.
@annematolka8535Ай бұрын
I have the same issue on my Sony TC-105, can you supply me with one. Thanks
@tdumnxy2 ай бұрын
I realise you posted this video 18 months ago but I just watched it and wanted to say thanks. It was informative and I liked your presentation style. I just jumped back into the Commodore world. I bought my first C64 in 1983 (still have it) and just got a TheC64 "Maxi" a month ago. So much easier to use the modern version but I enjoy the nostalgia and the keyboard, not having to adjust to the modern PC layout in VICE. Thanks again.
@VintageVoltsАй бұрын
I'm glad you enjoyed the presentation. On occasion, I try to find challenges for myself, then engage in those challenges in a way that I can share the learning and discovery. Good luck, and most of all, have fun with your visits back to the days of vintage computing!
@richardkimes78102 ай бұрын
Been playing along with vision basic, keep it going plz!
@DavideBonazzi-we3kz2 ай бұрын
I am writing to you from Italy. I would like to learn machine language. I have followed your very interesting lesson with great interest. I have tried to reproduce the listings in VICE version 3.8 (Linux Mint operating system), over and over again, but unfortunately with no success. After compiling with the RUN command, I ran it by typing SYS49152: unfortunately, I promptly got the BLUE screen with READY. and a flashing cursor: why? How can I solve the problem? THANKS AGAIN FOR THE WONDERFUL LESSON.
@richardkimes78102 ай бұрын
Nice series thanks for showing of Pal!
@VintageVolts2 ай бұрын
Thank you! I still have additional videos to do, but since the last ones I uploaded, I have to rebuild my video editing environment after a crashed SSD drive.
@madz28552 ай бұрын
FYI: In your binary anding example, if holding shift-return it will not produce the syntax error.
@Electrotat3 ай бұрын
This is great
@neleabels3 ай бұрын
It's so fascinating to experiment with software tools which are over four decades old! Thanks for the video.
@jeffsalzman68433 ай бұрын
Thanks for watching. It's kind of an "If I only knew then what I know now" moment for me. But it was sure fun to feel the knowledge fall right into place. Better late than never, right? :)
@davemorin-if3wk5 ай бұрын
i have the same one, mine works almost perfect, it records but doesnt playback, but if i put the reel on another reel player i can hear the recording i just made, but it just wont playback on this, everything has neen fixed a few years ago, all the speeds work, new belts new cap, just will not playback anything. im stumped
@jeffsalzman68434 ай бұрын
What happens if you record something on the other player and try it on the TC-105?
@EddyGurge5 ай бұрын
Cool. Just added one of these to my collection last month!
@jeffsalzman68434 ай бұрын
Enjoy it! My recommendation is to get some of the Atarisoft brand of games made for it. They leverage the power of the TI-99/4A video chip for some of the most realistic arcade ports of the day.
@EddyGurge4 ай бұрын
@@jeffsalzman6843 Good to know, thank you!
@MrANavarra755 ай бұрын
I like this videos very much! If only I had this tutorials at the end of 80s :D
@VintageVolts5 ай бұрын
Thanks! I just wish I had time to churn out more of them. I have a LOT of personal projects in flux right now and can't always get the time to sit down and record another session.
@MrJohnberth6 ай бұрын
Actually I need two because the record/ auto control has the same problem.John.
@VintageVolts6 ай бұрын
I'm not sure if the two controls are the same. I don't have my player anymore, so I can't check for that. The two controls may be different internally, especially if the other one doesn't have a click on/off.
@MrJohnberth6 ай бұрын
Ive checked record/ auto switch and it is the same internally it has the on off switch which acts as a auto level/ manual.Anyway I just thought you may have printed off more than one and had some spare to sell.Thanks for your reply..John
@VintageVolts5 ай бұрын
@@MrJohnberth I didn't forget about you. I just didn't get a chance to set up my 3D printer to print more. If you still need some, I can print them for you this coming weekend. Feel free to contact me via email at [email protected]
@MrJohnberth5 ай бұрын
@@VintageVolts Hi there.How much will you need to cover the postage and of course making the parts?
@MrJohnberth5 ай бұрын
Actually the carbon tracking is badly worn on the volume pot.Couple of dead spots.So fitting your part isnt going to sort that issue out.Thanks for your time.Think Ive sourced a replacement from China now.
@MrJohnberth6 ай бұрын
Hi there .I have same issue on my Sony tc105.Can you supple me with on of those 3d printed plastic control plates.Please advise with price and postage to the UK.John
@VintageVolts6 ай бұрын
Let me print some more and I'll get back to you.
@TheUtuber9997 ай бұрын
Since zero page is such a busy area of memory, I was kind of hoping line 110 was going to be BEQ LOOP. That would show the values changing in real time.
@VintageVolts7 ай бұрын
That would create a nifty animated effect with the changing values. I probably wouldn't use line 110. The RTS defined at line 100 would stop the program beforehand. I would probably do a direct jump to LOOP at line 100, then make line 110, which theoretically would never execute, as RTS just for safety's sake. 100 JMP LOOP 110 RTS
@TheUtuber9997 ай бұрын
@@VintageVolts Sorry, I was referring to the code at 54:22 in your video.
@aresaurelian9 ай бұрын
Interesting. This is valuable information, for us and the future.
@uncleeric331710 ай бұрын
Love this game, just wished there was an option where the sub could shoot back, giving it an element of risk that the game lacked.
@VintageVolts10 ай бұрын
That would be an interesting twist on the game. I suppose someone could replace the guts of the game with an Arduino that has been programmed to add such a feature.
@uncleeric331710 ай бұрын
@@VintageVolts I just pulled my old copy out of the attic and played a few rounds. Love the nostalgia.
@3DPDK10 ай бұрын
The way to reference a Kernal subroutine by label in any label oriented assembler is to define it's location in the listing, usually at the top, for example; chrout = $FFD2. Then your listing can use the label as in; JSR chrout. The reason this is not included automatically in most assemblers is because not all 65xx code is intended for the C-64 and the location will not apply to those other computers.
@HelloKittyFanMan11 ай бұрын
I bet that would work even if you _didn't_ walk away.
@jakubkrcma11 ай бұрын
👍
@BFLmouse Жыл бұрын
I taught myself 6502 assembly language programming using the PET version of the PAL assembler way back in 1978.
@VintageVolts11 ай бұрын
I taught myself using the Programmer's Reference Guide for the VIC-20. I wish I had the resources of a PAL like assembler in my VIC-20 (first computer I had) days. I would have worked deep into the concept if I wasn't relegated only to hand compiling assembler and creating DATA statements to install the programs.
@dailydoseofeverything7141 Жыл бұрын
Just curious, are you a software developer by profession?
@VintageVolts Жыл бұрын
I am. What gave it away. 🙂
@dailydoseofeverything7141 Жыл бұрын
@@VintageVolts yea, I was just wondering if when you said in another comment that it made you a better developer you were just talking about hobby development on commodore or development in a general sense.
@VintageVolts11 ай бұрын
@@dailydoseofeverything7141 A little bit of both. I write software using modern languages for a living, but I'm also fond of writing software for Arduino based devices, and even for other 8-bit computing platforms.
@twistedwhiskers8776 Жыл бұрын
Can you make more vintage minutes?
@zymurgynet Жыл бұрын
I'm glad you are enjoying them. I'd love to make more! I have plenty of material to do so. Like with a lot of people, it's a work/life balance that makes or breaks having the time to create these videos. However, encouragement like yours is a great driving force to do so. I'll certainly do what I can to create more. There are many devices I have in my collection that I'd like to produce a Vintage Minute video for.
@lupedarksnout Жыл бұрын
I've been using the PAL assembler since the 90's (and still do today) so it was fun to see it featured on a KZbin video! The line-number thing is both a blessing and a curse. Moving chunks of code is a hassle. I've grown used to its 8-character label size limit. I love how PAL adjusts itself to where you've set the top of BASIC to when you first install it. Source is easy to tweak. You can even write it without the assembler present! Something I noticed you did not do when first running PAL is a NEW command. That leaves you with less memory than should be there. Worse yet - check this out - it causes your source file to be bloated with this hidden garbage too! Here's proof: LOAD and RUN the PAL assembler, write a one-line program, and save it to disk. It's 27 blocks! I never realized this flaw existed because I always NEW. What another user pointed out (and yourself mentioned) is the missing RTS around 53:50 in the video. I bet the program DID clear the screen, but since you're using an emulator, the next byte was likely zero, causing a BRK which cleared the screen (again) and dumped you into BASIC, just like STOP/RESTORE would. On a regular machine, it would more likely be an "unfortunate" outcome. I had to jump the video back to 49:00 because I was sure you hit RETURN on "100 waitloop = *" which you did. The thing is, immediately after it, you also called the next line of code line 100 too, and yeah. LOL it happens, and it has happened to me too. Anyways, sorry for rambling on like this. This video got me excited and appreciative of the assembler I've become so used to using. Do you always use ".OPT P,OO" when you code? I usually just .OPT OO and any errors pop out, because the code created isn't shown. Assembles faster too. But for the case of this video, it made perfect sense to show the code it makes.
@KarlKrogmann Жыл бұрын
Nerd.
@VintageVolts Жыл бұрын
...and?
@BikeArea Жыл бұрын
9:04 Video starts ✌️
@VintageVolts11 ай бұрын
Only if you already know how to load the PAL assembler. 😎
@Raketemensch42 Жыл бұрын
This was the first electronic game I ever experienced, and I had completely forgotten about it until I saw a video on it today. One glance and my brain lit up just like it did when I first saw it in the school library in second grade. That first hit basically addicted me for life.
@VintageVolts Жыл бұрын
It still has quite a novelty about it these days. The look, the sounds, even the smell of its plastics rings right back to memories of the late 1970s.
@sbirchsbirch6232 Жыл бұрын
Very nice, thank you.
@FairLight1337 Жыл бұрын
Well presented. Only PLEASE DON'T USE any native c64 assembler today. I have gone through the same topic but setting up stuff as they are today. kzbin.info/www/bejne/opm6n4JrpKuqfbs kzbin.info/www/bejne/hHXcnoBnadqEja8 kzbin.info/www/bejne/qoa9fHepbN2LotU
@adventureteam67 Жыл бұрын
Justin can you repair my tape deck if i send radio to you? Id pay you. Lmk
@adventureteam67 Жыл бұрын
The best
@autoauto2000 Жыл бұрын
wich vice do u use gtk or sdl
@Smoking_Joe Жыл бұрын
Hi. I have a Philips D8304. Both pins seem to turn, yet cassette deck 1 plays slow and cassette deck 2 doesn't turn the tape and therefore chews it up since it doesn't take up the slack. Both decks rewind and fast forward ok. Do you have any suggestions to the issues and remedies?
@Henrik_Mikkelsen Жыл бұрын
Assembly programming is for fatass nerds with to much time on their hands and low selfasteem jesus christ why the f would anyone try to go through the trouble of learning that?!?! unless of course you're a type of person who likes to brag to your mom what you did on you little computer.
@yooyo3d Жыл бұрын
Whan I was a kid, I used Monitor on FC3 to code in assembly. I didn't have floppy. It was painful but challenging. Anyway, I used a lot self modifying code in loops and it was normal thing to do. Many years later when I moved to PC, I was surprised that self modifying code isnt common practice on PC. Is it possible to write self modifying code using assembler?
@VintageVolts Жыл бұрын
Assembler is more of an enhancement to the mnemonics used in a ML Monitor. If you don't rely too much on the actual memory addresses the Assembler assigns to labels in the source code, you can probably get away easily with self-modifying code, as long as it doesn't mess with the converted label addresses. Once the code is assembled, there is no need to track labels by name, just their actual values. Although, it is conceivable that you could create a lookup table of those label's actual values of some sort, perhaps to change code related branching, specially crafted to allow the Assembler to insert memory addresses for labels into a memory space outside of the program execution space. Then use some sort of trick to retrieve the original label addresses, perhaps push them to the stack, to allow you to replace the original label values in the main code. It would most likely require some research before starting to write code to keep the concept under control.
@lupedarksnout Жыл бұрын
I use PAL on the C64. Self-modifying code is very possible on PAL. I've used it when the situation calls for it. Easy enough to set up. A line of source like "100 SM100 LDA #0" can later be altered semi-permanently while running with a STA SM100+1 wherever needed. You can label them however you want of course - this is just what I do. Remember also it's only this "default" value when you first assemble it, which can be more risky if you're altering opcodes instead of merely data.
@hangonsnoop Жыл бұрын
I had a copy of Brad Templeton's PAL assember in the 80's! For such a basic system it was nice environment.
@GeoffSeeley Жыл бұрын
Same!
@TastyBusiness Жыл бұрын
Great demonstration!
@VintageVolts Жыл бұрын
Thank you! I've always learned best by slow, deliberate steps and example. I feel that teaching the same way may help others learn the same concepts.
@LS-jv4uh Жыл бұрын
You could replace the characters with numbers (e.g. 1 through 6) to make a virtual "die." User taps key to get a "random" number from 1-6. Great series!
@VintageVolts Жыл бұрын
That's an interesting idea. It could probably be done with little change to the code. I would start with changing the BYTE sequence at line 1190 to the PETSCII sequence for characters 1 thru 6, like this: 1190 .BYTE 49, 50, 51, 52, 53, 54 Then, change line 1130 to increase the loop count to 6: 1130 CPX #6 Everything else can remain the same, then when you run it, then hit a key, the last printed character will be your value from 1 to 6.
@LS-jv4uh Жыл бұрын
Thank you! I've been looking for a clear intro to C64 ASM and this was it! I hope you make more videos like this to walk us through greater and greater levels of abstraction.
@VintageVolts Жыл бұрын
I'm glad it was helpful. That's about the only thing I hope to get from posting these videos, the knowledge that someone finds them helpful, and learns new ideas from them. Thank you for commenting.
@dance4u850 Жыл бұрын
My D8443 version has a very different cassette mechanism gear arrangement. One of the gears is too big. Very confusing. Could not find a utube video like mine.D8443 Power Player.Made in Singapore.
@i93sme Жыл бұрын
You are not correctly translating the Basic since you are leaving out the delay loop of 50 iterations, that is why the assembly version is animating the spinner faster
@VintageVolts Жыл бұрын
Good catch! I completely overlooked that. I could probably edit the video to simulate that delay in assembly, but I don't know if that would add anything significant to the video. The video was more about the translation of the code from BASIC to Assembly.
@TheUtuber999 Жыл бұрын
@@VintageVolts For a simple time delay in the animation, could probably add something like the following: LDA $A2 ADC #$06 WAIT CMP $A2 BNE WAIT
@DevineOne Жыл бұрын
When I was 9 I wanted to learn this but at the time didn't have an assembler editor or access to how to do it. I've spent the last 2 days watching your part 1 and part 2 and experimenting. If only we had youtube back then to share information like we do today. thank you so much for sharing! You have explained in a very easy way to understand! With only 1K views, it shows how rare of a kind we are on this earth.
@VintageVolts Жыл бұрын
I'm glad the videos helped. When I was younger, I hand compiled Assembly code and POKED them into memory using DATA statements in BASIC. It's not that I couldn't afford an assembler program at the time, it's just that I had no focus on the concept. I simply played games more than anything on my Commodore 64. These days, I'm catching up on all that I COULD have done, but didn't, then using these videos to pass on the knowledge.
@davidhunt4679 Жыл бұрын
Just an FYI, one cycle is a microsecond, not a milisecond.
@jakubkrcma11 ай бұрын
Yes, approximately. 😉 Definitely much closer to one μs than to one ms. 😂
@beataozog8385 Жыл бұрын
vc
@CDP1861 Жыл бұрын
I still shake my head seeing this. How awkward to use BASIC line numbers instead of memory addresses. But at least we were spared all that BASIC READ and DATA stuff. My first computer was a single board computer with a hexadecimal keyboard and the first thing I ever learned was how to write machine code programs. A rough start maybe, but what I learned from that served me well on every computer up until today. And I never took much more than a look at BASIC or any other interpreter. Compilers, yes, but interpreters are just a waste of some a computer's most precious resources. Especially on 8 bit processors where these resources are not abundant in the first place.
@VintageVolts Жыл бұрын
The point of using the BASIC line numbers in this case is because it leverages the intrinsic capabilities of the system. Why reinvent the wheel when making an assembler, which will need editing and save/load routines, etc., for a BASIC based system when the system already includes an interactive editor screen, save/load routines, etc.? That was one of the original intents of the PAL Assembler, which leaves the code responsible for actually doing the assembly smaller in size AND tucks it into a little bit of RAM at the top of BASIC RAM. The only caveat is to work within the confines of that editing environment, thus requiring line numbers. Outside of the fact that PAL Assembler allows for a mix of BASIC and Assembly in its source code, which helps those who are familiar with BASIC to bridge their knowledge gap to Assembler, BASIC itself is only needed for the SYS call at the start of the source code. Everything else is nothing more than structured code. As with any programming environment, there are syntax rules that are required to be followed for the source code. So what if you have to use line numbers? If that requirement is too cumbersome, the PAL disk comes with the POWER 64 toolkit, which includes a line autonumber command. Just run that and it will automatically create your line numbers for you as you type in your Assembly source. As far as using memory addresses instead of BASIC line numbers, assembly never uses a series of memory addresses. It uses a Program Counter reference. Addresses are dealt with by the assembler. If you're coding machine language on a screen requiring you to type and track memory locations, then you're most likely using a machine language monitor, not an assembler. It's only awkward if you haven't spent a lot of time using BASIC.
@CDP1861 Жыл бұрын
@@VintageVolts My old computer started out with 256 bytes RAM and no ROM at all. You could enter instructions with the hex keyboard sequentially and then run your program when you were done. The first expansion was indeed a tiny 256 byte ROM with a small monitor program that allowed you to enter bytes at any location, examine memory at any location and load or save programs to tape. Other expansiones followed, but pure machine code and real memory addresses remained the best way to write programs. Even assembly was not a step forward because of a design feature of the processor which did not allow you to fully forget about memory addresses and just use labels instead. Indeed, I'm still wrestling with that problem today. I still have that old computer and these days I of course use a cross assembler on a PC and test my code in an emulator. I can still transfer the finished program to the old computer when it's finished. My whole point is: Both assembly and machine code give you enough to learn already. Why also keep on wrestling with BASIC? These days you can deactivate it and enjoy the luxury of more free to use memory. Do your development on a PC and you have all that the old machine has to offer at your fingertips. BASIC is an awful development tool and also an awful replacement for an operating system. So why hang on to a crutch that you are going to have to get rid of anyway?
@tkragelj Жыл бұрын
Some of BASIC code slowness compared to assembler also comes from the delay loop in line 120 It still wouldn't outrun assembler though
@VintageVolts Жыл бұрын
Good catch. I completely overlooked that.
@anthonyherchenroder9763 Жыл бұрын
If it’s formatted as a FAT partition you need to tell mount command what file system to use. From what I remember you need to add -t vfat to the mount command to get a fat16 partition to mount.
@VintageVolts Жыл бұрын
It mounts as FAT, but the formatted block size is 256 bytes, not 512 bytes, so unless the driver in Linux can be modified to use the alternate block size, it won't be able to read the data.
@anthonyherchenroder9763 Жыл бұрын
There used to be a “blocksize=“ option for the vfat type. I don’t know if it’s still in the kernel or not.
@anthonyherchenroder9763 Жыл бұрын
Another option might be to set up a DOS VM and pass through the SCSI card. The original Iomega DOS drivers are still available on the internet.
@kbeast987 ай бұрын
@@anthonyherchenroder9763this is what i was going to try. I have an old 10mb bernoulli box
@scottstone686 Жыл бұрын
Thanks for this - really helped me out!
@VintageVolts Жыл бұрын
Thank you. I'm glad it's still a useful video after all these years.
@kurtreber9813 Жыл бұрын
Did anyone ever do the text "countdown" in Wargames where the computer is randomly choosing characters until it chooses the right one in each of the 16 spaces of the password? I always thought that was preetty cool.