John's Basement

John's Basement

Pragmatic discussions of all things related to designing, building and programming embedded systems.

Пікірлер

  • @interferonrecon8162
    @interferonrecon81625 сағат бұрын

    Bravo

  • @7alken
    @7alkenКүн бұрын

    knowledge + extremely huge fun John, thanks )))))

  • @JohnsBasement
    @JohnsBasementКүн бұрын

    And thanks to you too! I'm glad you liked it.

  • @greghol
    @greghol2 күн бұрын

    HoHo wrappers of the 70s == metal foil for the youngsters. :)

  • @JohnsBasement
    @JohnsBasementКүн бұрын

    Spare ground planes!

  • @DennoWiggle
    @DennoWiggle2 күн бұрын

    And another cliff hanger! "Timing analysis failed due to presence of combinatorial loops". That warning bothered quite a few times. I think that means it just can't figure out timing. I read you can use --ignore-loops switch (or --force which is last resort). Before I knew better I ended up making my code synchronous so I didn't get the warnings. Looking forward to the next installment where perhaps we will see CPM booting........... I was in awe watching you code in real time. You are good Mr. Basement.

  • @JohnsBasement
    @JohnsBasementКүн бұрын

    In this case, it turns out to be a simple mistake... that I haven't seen manifest this particular error before. And thank you. You are too kind!

  • @beltonthree
    @beltonthree2 күн бұрын

    I am looking to take a POTS phone, and rigging up some recorded music/sound to play. I am wanting to put this in my basement bar setup, so people who were curious and picked up the phone, would hear the recorded message. Any ideas on the easiest way to set this up? I was trying to avoid having to hook up to the hook system in the phone, so likely the sound would continuously play.

  • @JohnsBasement
    @JohnsBasement2 күн бұрын

    If you have an old analog phone I expect you can simply connect it to a speaker port in a radio. I expect you don't need it to be too loud. If that does not work you'll need to add some DC bias to the line as I did through a resistor or two. Then connect to a dpeaker port. An older stereo or radio should have RC coupling and therefore not care about the bias. A newer radio may not like it. You can put a 10uF cap (bugger voltage than your bias) in series with the speaker port on any stereo to be sure... Preferably non-polarized. Else put it in so that the bias positive voltage connects to the phone wite on the + side if the cap & the - side to the radio... With the - bias side to the other radio output wire. Eh?

  • @nicadi2005
    @nicadi20053 күн бұрын

    35:55 Yup, bit of a wheeze there, with that notation choice - no doubts about it. I think I would've preferred rS and rD (as "8-bit 'Source' and 'Destination' registers")... The reference book I was using back in the days (and which "shamelessly" copied the original Zilog material otherwise - just like you said they would!) went for r1 and r2 instead, so that they get across the idea two 8-bit register identifiers are expected, usually different from one another (though not necessarily so!).

  • @fw3mbedded598
    @fw3mbedded5983 күн бұрын

    Thanks a lot I am already a fan of yours

  • @JohnsBasement
    @JohnsBasement3 күн бұрын

    Glad I can help!

  • @mrdavyjones
    @mrdavyjones5 күн бұрын

    I arrived in search of something completely different and, to my delight, found myself captivated until the very last moment. The content was so engaging that I couldn't help but hit like and subscribe to support and stay updated.

  • @pinu1166
    @pinu11665 күн бұрын

    Hello, thank you for the wonderful videos in your channel, they are enjoyable and informative. I need some advice. I have two hand crank phones (western electric). They do not have any dials, the phone rings when the crank is rotated. Any idea, how can I connect these two phones to make an intercom? thought is if I rotate the crank in one phone the other phone should ring and by lifting the receiver I should be able to start the call. Do I need external battery or any exchange box? what type of wires needed. I am in Oregon USA. Thank you in advance.

  • @alanmelb
    @alanmelb5 күн бұрын

    I worked on POTS telephone lines in the 70’s. Back then it stood for Plain ORDINARY Telephone Service. Today, POTS telephones are sadly much maligned, but POTS telephones provided an essential service during power outages. ‘Advances’ in modern technology have resulted in today’s digitally based landlines being regarded as 2nd class services, not to be relied upon and a good reason to hang onto that CB radio.

  • @ThisKaero
    @ThisKaero6 күн бұрын

    I rarely upvote or comment on things on the internet but this explanation is genuinely so helpful to me. The way you build off of ideas gradually and take your time makes everything so easy to follow. Thank you for making this, it's honestly fantastic.

  • @JohnsBasement
    @JohnsBasement5 күн бұрын

    Thank you for letting me know. I'm glad to know I could help!

  • @michaelbrooks533
    @michaelbrooks5337 күн бұрын

    Hi John, i have built a Z80-Retro and Programmer. i have been working through board tests. Reached spi_test this works. Tried sd_test result (cmd0 command status not idle) Have programmed 16gb card according to directions, and tried different sd cards same result i am using sparkfun sd card module could this be part of the problem? Michael

  • @JohnsBasement
    @JohnsBasement6 күн бұрын

    Hop on the discord (invite in video description.) Much easier for a back & forth and there are a handful of folks that will only be too happy for us to reason this out. (I use it in my web browser. No need to install anything.)

  • @DennoWiggle
    @DennoWiggle7 күн бұрын

    I'm glad it was not just me that had all the frustration with decoding the manual. I did the same in the end and looked at a reference design for UART settings and then checked/adjusted to my needs. I try not to use the datasheet and only the user manual for the Z8S180. You left the ending a cliff hanger ............

  • @JohnsBasement
    @JohnsBasement7 күн бұрын

    😁. This was very much unprepared. It could have finished in an hour or two. Or it could have gone on for days. I decided to use the actual natural disruptions for the splices.

  • @radekhn
    @radekhn8 күн бұрын

    Etched Pixels is no one else than wikipedia.org/wiki/Alan_Cox_(computer_programmer)

  • @asmi06
    @asmi068 күн бұрын

    I like how you complain about documentation bloat in the video which contains more digressions and other irrelevant stuff than on topic content.

  • @JohnsBasement
    @JohnsBasement8 күн бұрын

    It's part of my creative process. 😇

  • @JohnsBasement
    @JohnsBasement8 күн бұрын

    I decided to do minimal editing on this because I've also had other people asking for all the raw footage. When it's over, I'll do some kind of a summary when I clean up the code and make it more palatable. At the moment it has a lot of inconsistent hacks as a result of testing, debugging ideas.

  • @asmi06
    @asmi068 күн бұрын

    @@JohnsBasement Please do a pass of audio compression as your laughter outbursts are way too loud for someone listening to it in headphones.

  • @JohnsBasement
    @JohnsBasement8 күн бұрын

    @@asmi06 sorry. I must have had things misconfigured. After these long parts over, I will clean up the code & summarize the result in a more polished recording.

  • @asmi06
    @asmi068 күн бұрын

    @JohnsBasement I don't have nearly as good hearing as I once had, so I'd appreciate more compressed audio track so I won't have to adjust volume all the time. Thank you!

  • @charlesdorval394
    @charlesdorval3948 күн бұрын

    Dear lord that datasheet search lol I'm of the opinion that datasheets should include the authors name hehehe And while we're at it, have them develop software from a bad one, so they know how it feels and what not to do hehehe

  • @JohnsBasement
    @JohnsBasement8 күн бұрын

    🤣

  • @vitalyl1327
    @vitalyl13278 күн бұрын

    LLMs were a game changer for me, now I don't read through datasheets myself until it's really really needed, have LLMs summarise and search things instead,

  • @jackrubin
    @jackrubin8 күн бұрын

    Had to take a break at 1:30 and listen to the moose joke. Now it all makes sense. Maybe join the Bergmeister after the code runs for a couple Jaeger bombs.

  • @JohnsBasement
    @JohnsBasement8 күн бұрын

    Once it was going, I went for BBQ, burgers, & beers!!

  • @captaindunsell8568
    @captaindunsell85688 күн бұрын

    In general … 2 stop bits for 110 baud … 1 for 300+ baud

  • @JohnsBasement
    @JohnsBasement8 күн бұрын

    Or when cheating! 😁

  • @billnoname8093
    @billnoname809312 күн бұрын

    Thanks, the comment you made about a cube or other objects being a module is probably all I needed to here, and well see the format too. Are you still using OpenScad ? I just found it and it's what I've been looking for, I've been using blender for years but I need parametric for some stuff. Thanks again

  • @JohnsBasement
    @JohnsBasement12 күн бұрын

    I use it for everything that I designed for 3D printing. Someday I will add some videos on how to make gears that will mesh and some other things that I've learned since I recorded these other ones. Really cool!

  • @billnoname8093
    @billnoname809312 күн бұрын

    @@JohnsBasement I also 3d print and have now built a cnc router the LR3. I'm watching the rest of your tutorials now and subscribed. Quick question can I create my own library of modules and import them ?

  • @JohnsBasement
    @JohnsBasement11 күн бұрын

    @@billnoname8093 Thanks! You can create files with whatever modules and variable definitions in them you want and then include them like this: include <rack1u.scad> You can set a path for where it looks for them. Here is a page with some detail on that: en.wikibooks.org/wiki/OpenSCAD_User_Manual/Include_Statement

  • @billnoname8093
    @billnoname809311 күн бұрын

    @@JohnsBasement thanks, much appreciated

  • @ChrisJackson-js8rd
    @ChrisJackson-js8rd12 күн бұрын

    looking forward to more detail on PLL :) it seems like almost all modern fpga's support some degree of live reconfiguration. but I haven't quite got my head around how that works mostly it seems to be used to reroute i/o, like in a dsp that might split bandwidth among different channels

  • @JohnsBasement
    @JohnsBasement12 күн бұрын

    The PLLs are pretty cool. The ICE40HX warm boot looks like it is a full reload & reboot. Fancier modern chips allow for partial-reconfigs where you can keep part of your design running while some other portion of the FPGA is reloaded!

  • @HylaTube
    @HylaTube12 күн бұрын

    Figure 5.1: D_IN_0,1 and D_OUT_0,1: those are not switched, are they? Would make much more sense to me …

  • @JohnsBasement
    @JohnsBasement12 күн бұрын

    The IN and OUTs are switched or the 0 & 1 are switched? I think it all looks OK to me. The 0 are on the rising edge and the 1 are on the falling. Right?

  • @HylaTube
    @HylaTube12 күн бұрын

    What I meant was, the D_INs look like outputs to me and vice versa. No? Amateur here … ;) Christoph

  • @JohnsBasement
    @JohnsBasement12 күн бұрын

    @@HylaTube They appear to be named from the perspective f the FPGA as a whole. So the D_IN is an output from the pin input buffer. 🙂

  • @BurkenProductions
    @BurkenProductions13 күн бұрын

    Looks like a regular Swedish Dialog or diavox phone

  • @JohnsBasement
    @JohnsBasement12 күн бұрын

    You're probably right. I misspoke in the video.

  • @DennoWiggle
    @DennoWiggle13 күн бұрын

    That is interesting about the SB_WARMBOOT technology block. I always learn something new in your video's. Thank you.

  • @JohnsBasement
    @JohnsBasement12 күн бұрын

    I thought it was cool when I first read about it too. I am looking forward to playing with it!

  • @TrolleyMC
    @TrolleyMC16 күн бұрын

    While I agree that a hard wired intercom is a more secure communication than a plain modern phone call, I also hard disagree as wiretaps were extremely easy in the POTS days. If you really value security in communications, an end-to-end encrypted channel is way better than a POTS line.

  • @Tapajara
    @Tapajara16 күн бұрын

    This is the best RISC-V video that I have seen. I reproduced your table in a ϕText document.

  • @JohnsBasement
    @JohnsBasement16 күн бұрын

    Thank you. Glad you liked it!

  • @jacoblin0820
    @jacoblin082016 күн бұрын

    Thanks for the informative line-by-line introduction.

  • @JohnsBasement
    @JohnsBasement16 күн бұрын

    You're welcome. Have fun!

  • @duke_of_oz
    @duke_of_oz18 күн бұрын

    So how does this computer work without video output? Do you hook it to a serial terminal? Great work by the way!

  • @JohnsBasement
    @JohnsBasement17 күн бұрын

    Thanks!! Yes. It was designed specifically to run CP/M... which uses a serial terminal.

  • @duke_of_oz
    @duke_of_oz17 күн бұрын

    @JohnsBasement I've been thinking to do something similar but based on z80180 cpu, which retains compatibility to z80 but can address up to 1Mb space and embeds a sio in the same package - this should reduce space on the board further. I got my hands on some obsolete dil 64pin through-hole units running at 6MHz, you got me inspired so I might give it a go 😉

  • @JohnsBasement
    @JohnsBasement17 күн бұрын

    @@duke_of_oz I'm just getting started on a 180 project myself. I decided to call it the Nouveau (sort of rhymes with Retro.). I hope to implement peripherals with an FPGA including video. Some folks have been doing some brainstorming in the Z80 Retro discord channel.

  • @duke_of_oz
    @duke_of_oz17 күн бұрын

    @JohnsBasement Thanks for the discord tip, I plan to start my 180 project by the end of the year. Was thinking of implementing the video generation function with a micro controller to simplify design iterations as mcus can be easily reprogrammed in-circuit. I guess fpga keeps up with the real timeline!

  • @4Nanook
    @4Nanook18 күн бұрын

    This would have been revolutionary in 1982, and in fact the Trs-80 model 4 supported 128k using a similar scheme of switching 32kb banks, but pretty much useless in a 64-bit world.

  • @JohnsBasement
    @JohnsBasement16 күн бұрын

    It may well have also cost $8000! 😂

  • @emanmarzban
    @emanmarzban19 күн бұрын

    @31:59, how is "sign"-extended for 8 (1000) is zeros instead of 1's/ffff?? Thanks a lot

  • @JohnsBasement
    @JohnsBasement19 күн бұрын

    In a LUI instruction? The literal 0x8 is interpreted as positive. it is same as 0x00008. See the LUI instruction 'Ribbon Diagram' on page 49 of this: github.com/johnwinans/rvalp/releases/download/v0.18.3/rvalp.pdf

  • @emanmarzban
    @emanmarzban18 күн бұрын

    Thank a lot :)

  • @JohnsBasement
    @JohnsBasement18 күн бұрын

    @@emanmarzban Glad to help!

  • @TEC-1G
    @TEC-1G23 күн бұрын

    Do you cover how you actually record the video and then how to transfer it to something to edit? (Sorry, know nothing about PIs) Oh and what do you use for a microphone?

  • @JohnsBasement
    @JohnsBasement23 күн бұрын

    Great question! I always planned to. But never did. It took a lot of time to figure out how to do it (terrible doc... At least back then.) I'll put it on my TODO list

  • @KendallVance
    @KendallVance23 күн бұрын

    Love the sweatshirt. Where you actually at McMurdo Station?

  • @JohnsBasement
    @JohnsBasement23 күн бұрын

    Thanks! Yeah. I have been twice to support control systems that run ROVs under the ice. The last time I was down there, a documentary of my project (SALSA) was produced: m.imdb.com/title/tt16831604/?ref_=ext_shr_lnk

  • @user-zq7sx9hh6b
    @user-zq7sx9hh6b26 күн бұрын

    Thanks for the helpful video

  • @JohnsBasement
    @JohnsBasement26 күн бұрын

    Thanks! I'm glad I could help!

  • @Thomas-yr9ln
    @Thomas-yr9ln28 күн бұрын

    What people hate the most is beings able to slam down the receiver when angry.

  • @JohnsBasement
    @JohnsBasement28 күн бұрын

    Indeed! Back when the telcos owned the phones, they made them like a tank! "Ah! You want to own one? Here is a flimsy piece of junk for 10X the cost!"

  • @HamzaAli-hh7ub
    @HamzaAli-hh7ub29 күн бұрын

    i was waiting for this video john

  • @JohnsBasement
    @JohnsBasement29 күн бұрын

    I hope I didn't let you down!

  • @vasileceteras
    @vasileceteras29 күн бұрын

    Thank you for this series! It's hard to find a good introduction to Verilog. I notice there's less engagement from the viewers on this subject, but I believe this is the most important skill for a retro hardware enthusiast.

  • @JohnsBasement
    @JohnsBasement29 күн бұрын

    Thanks for the encouragement! Some of us take our hobbies more seriously than others. That's OK. It's a hobby! I also agree that a retro hobbyist would do well to at least take a look at this stuff... even if only to use it to evaluate a new design that they hope to build with discrete parts down the road.

  • @vasileceteras
    @vasileceteras29 күн бұрын

    @@JohnsBasement I've built retro computer boards with tens of LS series on them, it was fun, but it's time to move on. Even the good old Z80 will be soon discontinued!

  • @JohnsBasement
    @JohnsBasement29 күн бұрын

    @@vasileceteras If I can build it myself then it's fair game!

  • @JohnsBasement
    @JohnsBasement29 күн бұрын

    KZread keeps telling me to make "better" thumbnails. Seems everybody needs to (pointlessly) shove their face into them... so I updated it. :-D

  • @vasileceteras
    @vasileceteras29 күн бұрын

    @@JohnsBasement I've gotten used to your thumbnail style, so I was able to tell in a blink of an eye there's a new video on here. Looks good either way!

  • @muhammadroohallah6091
    @muhammadroohallah6091Ай бұрын

    Can u install rv32gcv using this?

  • @JohnsBasement
    @JohnsBasement29 күн бұрын

    I don't know.

  • @Dr.Logistik
    @Dr.LogistikАй бұрын

    @JohnsBasement Which clock speed Z80 should I get to follow along and make this project. Given the end of life announcement I figure I should jump. I dont know if I should get the 6 / 8 / 10 MHz Z80 chip. Will you assist me in figuring this out :)

  • @JohnsBasement
    @JohnsBasementАй бұрын

    I used 10MHZ parts for mine. You might also be interested in grabbing a z8s180 too if you want to follow the next z80 project that I called Z80 Nouveau. You can find it in my video playlists on youtube.

  • @JohnsBasement
    @JohnsBasementАй бұрын

    There is a bill of materials of the exact part numbers on github for the retro project.

  • @g-r-a-e-m-e-
    @g-r-a-e-m-e-Ай бұрын

    Me and my brother had an intercom phone system in our house, in the 1960s. Still a fun project.

  • @JohnsBasement
    @JohnsBasementАй бұрын

    So cool! And tough for modern kids to relate to the value of an intercom or a PBX.

  • @labiribiri1901
    @labiribiri1901Ай бұрын

    Wait, so the way we've been taught to do the 2's complement has been wronged this entire time? I was taught to perform the 1's complement and then add 1 to the subtrahend before adding it to the top number to get the result. Could you elaborate on that? I understand the logic, but it just confuses me as why the original method is wrong.

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Flip the bits and add one is fine and dandy if all you want is the two's compliment. If you follow that by then adding the two values you will have created two separate situations where there could have been a carry and/or overflow that you have to worry about. If you do it my way where it all happens at once, there's only one result where a carry and/or overflow could occur and therefore only one result to check.

  • @labiribiri1901
    @labiribiri1901Ай бұрын

    @@JohnsBasement I'm sorry, I don't think I'm following. Would it be possible to show me an example? I'm not the best at this but I really want to learn.

  • @JohnsBasement
    @JohnsBasementАй бұрын

    @@labiribiri1901 Do both an add and a subtract of these two binary numbers: 0001, 1000 and determine if they have signed and/or unsigned overflow in each case. If you flip the bits, then add 1 (ignoring any carry that this might have caused) and THEN add the two then you will not get the right signed and unsigned carry/overflow statuses... because you can't take the two's compliment of 1000 and store the (correct) result in 4 bits... but you CAN subtract it from 0001 by using the method I give you that adds the extra 1 when it is adding the minuend and inverted subtrahend.

  • @angeldude101
    @angeldude10119 күн бұрын

    I'm pretty sure you _can_ represent -1000 in only 4 bits. The result is 1000. If a number being its own negative looks strange, just look at the opposite point on the "number wheel": 0. -0 = 0 just like how -1000 = 1000 (-8 = 8). To call 1000 "negative" would be akin to calling 0 positive, when really neither are either and both are their own negative, since 1000 + 1000 (8 + 8) = 0 + 0 = 0. This largely comes from modular arithmetic, which seems to be taught shockingly seldomly to computer science students. Overflow is a consequence of trying to interpret the modular integers as ℝeal integers. Luckily, the target of this course appears to be a processor that doesn't require overflow flags. "That can't be true" Except in the integers mod 16 it _is_ true. "So when is a 1 minus a -8 equal to -7?" When working in the integers mod 16, where -7 = 9 (= 25 = 41 = -23 = ...).

  • @JohnsBasement
    @JohnsBasement18 күн бұрын

    @@angeldude101 I stand by my exact words above.

  • @tronmandurglur7721
    @tronmandurglur7721Ай бұрын

    god your annoying af

  • @eealec2138
    @eealec2138Ай бұрын

    I love your style of teaching! I hope you are still making videos!

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Thank you! Yes, I am making more. Hopefully some will be of interest.

  • @7alken
    @7alkenАй бұрын

    hi John, glad you are back already in new space; you are still the best teacher :-) ... I was distracted from electronics, even my own project, for a while; this is far better world ...

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Thanks! I'm still having fun with this stuff. I've only been hobby-dabbling with verilog so far. Trying to up the ante to take on increasingly interesting things! Thanks for the encouraging words!

  • @michaelmaklaud7744
    @michaelmaklaud7744Ай бұрын

    Hi. Could you help to make an analog video signal scrambler?

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Sorry. That is not my thing.

  • @user-uq2ks2dr4p
    @user-uq2ks2dr4pАй бұрын

    Do it! Have we not got tied of the bloatware of modern languages yet? And that OS you know the one. I have seen a few z80 videos and they talk about 512k banked ram. I love assembly language, I like having tiny ram. Today's crazy computers have 4gigs or more of ram, and 64bit CPUs running 3gigs or more. Back in the day I had a Amstrad CPC 464 with a green screen, and I learned to code by magazines. At the moment I am building a 6502S breadboard computer *Ben Eaters* one. I have a Z80 cpu and its support Chips plenty of static 32k ram and 8k EEPROMS. I would love to build a breadboard Z80 with maybe 8k Ram or something small. You really don't need much, we seemed to have use to these bloated new computers and OS.

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Things used to be sooo simple. And we definitely did serious business with those tiny machines! In some ways, modern computing seems to have taken a step backward. So much of the improvements that have come since the '80s seem have to gone into things like GUIs with semi-transparent windows and buttons with rounded corners.

  • @qzorn4440
    @qzorn4440Ай бұрын

    This is a fantastic mounting hole video. I would like to change the grounded round pad with vias to a square design with rounded corners. Then use a 2 pin jumper to connect the ground to common or leave the power supply common not connected to the mounting hole ground. John this video has some great advice. Thank you.

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Thank you! Glad to know I could help!

  • @icollided
    @icollidedАй бұрын

    Are the $85 3M breadboards overkill?

  • @JohnsBasement
    @JohnsBasementАй бұрын

    For hobby use? I'm not sure if it'd improve my results over that I have been getting with the more modestly priced ones. I use the junk boards for things that run hot of have fatter leads that I know will keep good contact with the junk springs and I chuck them if they start acting up. I use my be better ones for thinner leads and more extravagant wiring that takes too much time to risk wasting on a cheap board with bad springs. Legit BB830 boards from Ben Eater's eater.net should be fine. I think they are $8.

  • @alvinp.schmitt5424
    @alvinp.schmitt5424Ай бұрын

    well it turned out very good

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Yeah. It was a bit of a surprise after I dropped it and the part and molten solder spewed onto my bench! 😂 Next time I do a full assembly in one shot, I'll fire it back up.

  • @stefanweilhartner4415
    @stefanweilhartner4415Ай бұрын

    because i want to pimp an atari 2600, i will go with a 6502 compatible device, the 65816, which has 24 bits of address bits. this way i don't need a bank switching for 512kB of RAM. however, if i want to have a minimum system, the runs with the 6507 or a 6502, i need that kind of bank switching as well. at some point i want to have a Z80 core inside as well, just for the fun of exploring CP/M stuff. however, i am glad that an affordable static ram like the AS6C4008-55PCN exist. and everything in through hole components. retro computing never was that cool and affordable. thanks for the inspiration!

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Thanks... and same to you! Comments like this are good fodder for the idea stew that drives all of our future projects!

  • @davidgari3240
    @davidgari3240Ай бұрын

    BSS = Block Starting Symbol or Block Started by Symbol. You're welcome. TMA = Too Many Acronyms.

  • @JohnsBasement
    @JohnsBasementАй бұрын

    Thanks! 😂

  • @jekozabakhidze3336
    @jekozabakhidze3336Ай бұрын

    thank you for making these videos sir. they are really helpfull for me as a bigginer

  • @JohnsBasement
    @JohnsBasementАй бұрын

    You're welcome!