Keyboard interface software

preview_player
Показать описание

------------------

Social media:

Special thanks to these supporters for making this video possible:
Aaron Todd, Aleksey Smolenchuk, Alexander Wendland, Andrew C. Young, Anson VanDoren, Anthanasius, anula, Armin Brauns, Asherah Connor, Ben Cochran, Ben Dyson, Ben Kamens, Ben Williams, Benny Olsson, Bill Cooksey, Binh Tran, Bouke Groenescheij, Bradley Pirtle, Bradley Stach, Brent Reusing, Brian T Hoover, Bryan Brickman, Bryan Glezerson, Carlos Ambrozak, Christopher Blackmon, Dale Andrew Darling, Daniel Jeppsson, Daniel Tang, dans, Dave Burley, Dave Walter, David Brown, David Clark, David Cox, David House, David Sastre Medina, David Turner, David Worsham, Dean Winger, Dissy, dko, Dmitry Guyvoronsky, Dušan Dželebdžić, Dzevad Trumic, Emilio Mendoza, Eric Dynowski, Erik Broeders, Eugene Bulkin, George Miroshnykov, Harry McDow, Ian Tait, Ingo Eble, Ivan Sorokin, James Capuder, james schaefer, Jared Dziedzic, Jason DeStefano, Jason Specland, JavaXP, Jaxon Ketterman, Jay Binks, Jayne Gabriele, Jeremy A., Jim Kelly, Jim Knowler, Jim Van Meggelen, Joe Beda, Joe OConnor, Joe Pregracke, Joel Miller, John Fenwick, John Meade, Jon Dugan, Joseph Portaro, Joshua King, Jurģis Brigmanis, Kai Wells, Kefen, Kenneth Christensen, Kent Collins, Kitick, Koreo, Lambda GPU Workstations, Larry, László Bácsi, Lucky Resistor, Lukasz Pacholik, Marcos Fujisawa, Marcus Classon, Mark Day, Martin Roth, Mats Fredriksson, Matt Krueger, Matthäus Pawelczyk, Matthew Duphily, melvin2001, Michael Tedder, Michael Timbrook, Michael Weitman, Miguel Ríos, mikebad, Mikel Lindsaar, Miles Macchiaroli, moi n, Nicholas Counts, Nicholas Moresco, Nick, Not Yet Wise, Örn Arnarson, Paul Pluzhnikov, Paul Randal, Pete Dietl, Phil Dennis, Philip Hofstetter, Phillip Glau, PixelSergey, ProgrammerDor, Randal Masutani, Randy True, raoulvp, Renaldas Zioma, Ric King, Rob Bruno, Robert Comyn, Robert Diaz, Roland Bobek, sam raza, Scott Holmes, Sergey Kruk, SonOfSofaman, Stefan Nesinger, Stefanus Du Toit, Stephen, Stephen Riley, Stephen Smithstone, Steve Jones, Steven Zilberberg, Tayler Porter, TheWebMachine, Thomas Bruggink, Tii, Tom, Tommaso Palmieri, Tyler Latham, Vincent Bernat, Vladimir Solomatin, Walter Montalvo, Warren Miller, Wim Coekaerts, Wraithan McCarroll, xisente, Yee Lam Wan
Рекомендации по теме
Комментарии
Автор

"And that didn't do anything!" I relate to that hahaha

maxxroach
Автор

Can we just appreciate that this dude truly made a hello world from true scratch in assembly on an ancient processor and documented it in an easy to follow way for all of us to see and learn with?

XDjUanZInHO
Автор

Using an 8bit pointer to create an “automatic” circular buffer was brilliant. I kept waiting for a modulus, but no, you one-upped my expectations. Fantastic as always.

chrismcghee
Автор

Note, there should be a separate flag for the right and left shifts, because with one flag I could press LSHFT, RSHFT then release RSHFT and it would count as released even though LSHFT is still pressed (and same vise versa)

omarhurani
Автор

I'm studying master in computer engineering and these videos from Ben are the best in the field

TheStrelok
Автор

He threw in the 0x0F bug to appear human, but he's clearly a god 😏. Another amazing video sir!

wmhilton-old
Автор

that sped-up typing sound at 6:05 sounds so cool

ridespirals
Автор

Mercy! I needed to know this back in the late '60s and early '70s. So here we are fifty plus years later as I slip into my second childhood. 😆

opendstudio
Автор

After following Ben Eater's Videos for several years now, I still don't understand how anyone can "dislike" his videos... for the content that he provides, it is the best that is currently available on the net anywhere... even better than most college or university content that is publicly and freely available... if I could like more than once, I wouldn't hesitate to do so!

skilz
Автор

May I be the first to congratulate you on accidentally reviving the concept of "Shift-Lock".

As you're toggling the flag when shift is released but setting it when pressed, pressing both shift keys together and then releasing them will toggle the shift bit back to on. :)

[Edit: Typo correction]

crispoman
Автор

2090 Building an A.I. that can simulate the human mind from scratch.

azwsd
Автор

Typically, an interrupt service routine (ISR) does the minimum possible to deal with the peripheral, and then it returns, and it's up to some other routines to interpret the retrieved data. One thing to remember is that when an interrupt is processed, interrupts are disabled until either they're explicitly enabled or the return from interrupt instruction is executed. Therefore any other interrupts (from other devices) will be blocked, and possibly missed. So the routine to read the keyboard port would just fill the buffer, and any program/subroutine which reads the buffer would do the handling of modifier keys like shift.

In this case, it really doesn't matter, because there isn't another device competing for CPU cycles via interrupts. But for more complex systems this sort of thing should be kept in mind.

DrRChandra
Автор

I found your 8 bit build videos probably a year ago and was glued to the screen in a way I didn’t expect. The final videos on conditional jumps and control word logic felt like the climax in an action flick. I soon discovered an alternative purpose for the videos: highly effective sleep aid. I’m not insinuating your videos are boring. Far from it. Rather the tone and cadence of your voice and and the quiet sound of assembling tiny components on a breadboard knock me right out. It’s like magic. I love these videos when I want to be awake, and I love them when I want to be asleep. Someday I’ll order a kit and see if my kid’s attention spans are as as solid as mine. Perhaps I could even lull them into a nap.

zachdecou
Автор

Good stuff, but that interrupt routine is doing quite a bit. Usually you want to keep interrupts doing a minimal amount of work so the execution gets back to the main loop. Probably for better performance just capture scan codes in the buffer, and then dispatch a key translation when the main loop reads the next key value. For more advanced projects, you can then have context based key mappings.

kuroikenjin
Автор

I recently hooked a 6551 up to my bread boarded 6502, been having a blast with the kit and plan to eventually build my own sound card. Thanks for the videos, been using a circular buffer like this for processing serial input and other interrupt-y situations. A nice generally useful technique for working with input, thanks for showcasing it.

Wraithan
Автор

The sei and cli aren’t actually necessary. kb_ptr is only modified outside of the interrupt handler so it doesn’t need to be in critical section and kb_wptr is read atomically (since it’s a single byte) so the read doesn’t need a critical section either.

mina
Автор

Thank you Ben, now you should use this and the "worst" graphic card, to print some text on the monitor! :)

stenzenneznets
Автор

It's more than 30 years ago, I've learned writing code for the 6502. But it's still amazing and I love your series about this small computer.

misi
Автор

I literally swear i've learn't more information about lower level computing from this channel than I did across my whole compsci degree. Great video as always ben!

jordy
Автор

Some day in the future, I will look back at these videos and understand every single line of code.

ModernTimesYT