I recovered an 80C188 from an old printer. Now I really want to build myself a mini PC with this processor. Thank you very much for sharing the schematic. I try to do some experiments. Thank you!
Thank you for watching! By all means - yes, experiment! Schematic is very basic - just wanted to show the viewers how easy it is to build something working with 80188 and that you don't need those additional peripherals. I would like to build something more complex on top of that in the future.
@@RayMillTN1 A series of "misfortunes" prevented me from doing so. I barely unsoldered the CPU from the original board. Now I have moved on to other projects, for example the power supply, which had passed away. Unfortunately, dedicating only 2 hours a week to this hobby is difficult to achieve results. I'll try harder!!
Christ I need a lay down after this one. Feel live I’ve gone from a manageable pace to major coding hell 🤦♂️ I do love your series though, please keep it up
Thanks for surviving the hell ;-) But, more seriously, I'd appreciate if you shared the reasons for you struggling. Too much information (or coding)? Too boring? Not clear enough? What could I do better? Thanks for that!
Your videos are so inspirational. I love working on low level bits/register levels. Never attempted doing it on 86x type cpus as didn’t see many clear tutorials as yours. This is great , I’m working on a lcd/vga controller using the propeller chip. Will use that in conjunction with the 8086 stuff to see if I can make some whacky system.
@bitlong4669 I'm going to introduce a VGA controller soon, but not based on TTL - instead I'm going to use some modern chips for that. I hope you'll like it. What chip are you planning to use?
@@SladorSoft I was thinking of using parallax propeller. It’s an interesting microcontroller. 8 cores, neat timer functions. The older P1 version as I have lots of those, or maybe I’ll buy newer P2. They don’t have lots of memory on board, but I do have some dual port ram to compensate for that. Another avenue would be to use fpga. If it runs stuff like prince of Persia , wolfrenstain 3d…..maybe doom lol, that be good enough. I’m not nearly as experienced as you so we’ll see how it goes. It’s more of a journey for me not a destination.
@@SladorSoft ah I see why you asked about chips. I just finished watching the PIO video. The propeller chip have these timer guided outputs as well to generate vga signal for example. I see the potential for the same with pico PIOs.
I've made an SBC out of an 80C188EB, from a scrapped hsdl modem. Now it's running ELKS, and I've added a simple isa interface for a network adapter, which also works on that system. You should have a look at it, you'd need 512/512 flash/ram to get it going, but not much more. I don't think the serial port would work out of the box for your XL, but it's doable :)
Santiago, thanks for showing me this. It looks really cool! In the upcoming video I will fix the issue of not using the whole 512kB RAM and start adding more peripherals, so we will see how it goes. Maybe one day I will be able to run ELKS on it as well? Thanks!
Doesn't the 80188 have dedicated "mid memory" and "high memory" access lines ? You show the part of the data sheet at 08:20. I think you can program MCS0-3 to be address line inputs for your SRAM memory chip, so you can address the full lower 512 K as RAM. At 16:10 is where you.can initialize it, and then use that to access RAM. It might need an OR gate or a "diode or" for the chip enable to the RAM.
Yes, you are perfectly right. but - as you correctly noticed - it would need an additional gate (AND to be precise). I didn't bother as it was only a temporary contraption on breadboards which I later moved on to a PCB. Then I decided to use the address line A19 to select RAM, because I'm planning to use the MCS signals in the upper half of the address space which I'm going to do in a future video (around the third from now on).
Hey, I'm trying to do research on doing my own i286 homebrew build. I'm only recently starting out, and I have a general plan for the featureset/design I want, but one thing I'm having issues with is actually: where can you buy the CPU/ROM/RAM *socket* you're using? Looking up "286 CPU Socket" isn't very helpful lol
@Kaisogen I generally look in electronics shops, or simply eBay or Amazon. It depends on where you are, really. You are right: searching for "286 CPU socket" may not give you good results. You need to check the datasheets of your chips for the type of package they have. For example, the 286 has the same package as my 80C188, which is PLCC-68. My Flash and RAM are DIP-32. Try searching for those. The green socket I'm using for my Flash is called ZIF (Zero Insertion Force) socket - very helpful in early stage when you programme your Flash a lot ;-) Good luck with your design!
@@SladorSoft thank you, that's exactly what I needed! I'm thinking of using an NEC μPD7220 for the graphics! One of the design gimmicks I'd like to implement is bank switching for the hardware ROMs via a cartridge slot. So you can load multiple EEPROMs for your OS / Software alongside a slower peripheral.
@slador, I have been looking over the 8086 datasheet and I can't figure out what the maximum allowed current draw is from the address/data lines. Do you have any idea?
@Pete Dietl: you are right - I haven't found it as well. I guess they never expected us to tinker with it and hook - for example - LEDs to the buses ;-). Maybe we can infer this from other data in the "DC characteristics". I guess, if you keep your current drawn from all outputs and the ICC together below the maximum power dissipation you should be fine. For the 80C88 (the CMOS version) it is 1 watt, so the total current drawn should not exceed 200mA where the CPU itself uses 10mA/MHz. That would mean that for 80C88A-2 (the 8MHz version) it would leave you with quite comfortable 120mA. Again, don't cite me on this ;-)
Hi! My programmer uses flat binary files and that's what my Makefile produces by default. If you have the "ia16-elf" toolchain configured you can compile it yourself and then run: "ia16-elf-objcopy -I elf32-little -O ihex bin/part07.elf bin/part07.hex" to get the hex file. If not, I can send it to you. Please, email me (my address is in the About section of my channel) and I'll reply you with the hex file.
Great project, but going for 80188 makes it incompatible with all PC software (there is a reason it was not used for any PC Compatible machine)
2 года назад
Really? I am not sure, IIRC it is software compatible with at least 8086, even with 80186 which itself is a somewhat expanded 8086 but unlike 80286 not having (16 bit) protected mode, but some extra instructions of 286 is supported. Surely it is not compatible with '286 at least. And in fact there was some (though not many) "PC compatible" computers based on the '186 where '188 its 8 bit variant by the size of its external data bus (but IIRC not so much a problem about software compatibility). I would guess, it's more-or-less OK to have a 8088/XT class compatible design at least, as it's not enough for 286/AT indeed.
@seeindarkness - yes, that's true, but PC-compatibility was never my main goal in this series. Also, by writing a proper BIOS you can still achieve some compatibility (by correctly implementing some of the system calls, INT 0A, INT 13 and so on...) but that's another story. Thank you!
Hi! There is a machine code compatibility and computer as a whole compatibility. You're right saying that you can write compatible machine code which works on both 8088/6 and 80188/6 (just compile for the former one), but the peripherals inside 80188/6 are not compatible with those in IBM PC XT. I think what @seeindarkness meant was that it's not compatible, because it does not have 8259, 8254 compatible chips, so any programme written with assumption that these chips are there (at very specific I/O addresses) would not work. It doesn't mean that none of the software would work. Depends on how closely the software touches the hardware directly (without BIOS in the middle).
2 года назад
@@SladorSoft Yes, exactly. "Clean" DOS applications will work since should only use DOS (or at max) BIOS interrupts. SURELY, many (hmm, most) are not this kind. But saying "all" it's a bit too much, what my point was. Also building an SBC in my eye is not so much about re-creating a PC compatible machine, I would prefer creating at least something partly new. (OK, then for sure, the problem of lack of software, but hey, that's the challenge ... ).
I recovered an 80C188 from an old printer. Now I really want to build myself a mini PC with this processor. Thank you very much for sharing the schematic. I try to do some experiments. Thank you!
Thank you for watching! By all means - yes, experiment! Schematic is very basic - just wanted to show the viewers how easy it is to build something working with 80188 and that you don't need those additional peripherals. I would like to build something more complex on top of that in the future.
1 year later - how did you do?
@@RayMillTN1 A series of "misfortunes" prevented me from doing so. I barely unsoldered the CPU from the original board. Now I have moved on to other projects, for example the power supply, which had passed away. Unfortunately, dedicating only 2 hours a week to this hobby is difficult to achieve results. I'll try harder!!
Christ I need a lay down after this one. Feel live I’ve gone from a manageable pace to major coding hell 🤦♂️ I do love your series though, please keep it up
Thanks for surviving the hell ;-) But, more seriously, I'd appreciate if you shared the reasons for you struggling. Too much information (or coding)? Too boring? Not clear enough? What could I do better? Thanks for that!
Please, please, please continue with this video series! It is awesome! :)
Thank you for all your comments!
I'm going to continue with the series - next video will be available in a few days.
you're still doing this? This is true dedication
I'm just warming up ;-)
@@SladorSoftyes! I want to see more!. Can you do explanation of how dma stuff works. Thank you.
Your videos are so inspirational. I love working on low level bits/register levels. Never attempted doing it on 86x type cpus as didn’t see many clear tutorials as yours. This is great , I’m working on a lcd/vga controller using the propeller chip. Will use that in conjunction with the 8086 stuff to see if I can make some whacky system.
@bitlong4669 I'm going to introduce a VGA controller soon, but not based on TTL - instead I'm going to use some modern chips for that. I hope you'll like it. What chip are you planning to use?
@@SladorSoft I was thinking of using parallax propeller. It’s an interesting microcontroller. 8 cores, neat timer functions. The older P1 version as I have lots of those, or maybe I’ll buy newer P2. They don’t have lots of memory on board, but I do have some dual port ram to compensate for that. Another avenue would be to use fpga. If it runs stuff like prince of Persia , wolfrenstain 3d…..maybe doom lol, that be good enough. I’m not nearly as experienced as you so we’ll see how it goes. It’s more of a journey for me not a destination.
@@SladorSoft ah I see why you asked about chips. I just finished watching the PIO video. The propeller chip have these timer guided outputs as well to generate vga signal for example. I see the potential for the same with pico PIOs.
I've made an SBC out of an 80C188EB, from a scrapped hsdl modem. Now it's running ELKS, and I've added a simple isa interface for a network adapter, which also works on that system. You should have a look at it, you'd need 512/512 flash/ram to get it going, but not much more. I don't think the serial port would work out of the box for your XL, but it's doable :)
Santiago, thanks for showing me this. It looks really cool! In the upcoming video I will fix the issue of not using the whole 512kB RAM and start adding more peripherals, so we will see how it goes. Maybe one day I will be able to run ELKS on it as well? Thanks!
Doesn't the 80188 have dedicated "mid memory" and "high memory" access lines ? You show the part of the data sheet at 08:20. I think you can program MCS0-3 to be address line inputs for your SRAM memory chip, so you can address the full lower 512 K as RAM. At 16:10 is where you.can initialize it, and then use that to access RAM. It might need an OR gate or a "diode or" for the chip enable to the RAM.
Yes, you are perfectly right. but - as you correctly noticed - it would need an additional gate (AND to be precise). I didn't bother as it was only a temporary contraption on breadboards which I later moved on to a PCB. Then I decided to use the address line A19 to select RAM, because I'm planning to use the MCS signals in the upper half of the address space which I'm going to do in a future video (around the third from now on).
Hey, I'm trying to do research on doing my own i286 homebrew build. I'm only recently starting out, and I have a general plan for the featureset/design I want, but one thing I'm having issues with is actually: where can you buy the CPU/ROM/RAM *socket* you're using? Looking up "286 CPU Socket" isn't very helpful lol
@Kaisogen I generally look in electronics shops, or simply eBay or Amazon. It depends on where you are, really.
You are right: searching for "286 CPU socket" may not give you good results. You need to check the datasheets of your chips for the type of package they have. For example, the 286 has the same package as my 80C188, which is PLCC-68. My Flash and RAM are DIP-32. Try searching for those. The green socket I'm using for my Flash is called ZIF (Zero Insertion Force) socket - very helpful in early stage when you programme your Flash a lot ;-) Good luck with your design!
@@SladorSoft thank you, that's exactly what I needed! I'm thinking of using an NEC μPD7220 for the graphics! One of the design gimmicks I'd like to implement is bank switching for the hardware ROMs via a cartridge slot. So you can load multiple EEPROMs for your OS / Software alongside a slower peripheral.
@slador, I have been looking over the 8086 datasheet and I can't figure out what the maximum allowed current draw is from the address/data lines. Do you have any idea?
@Pete Dietl: you are right - I haven't found it as well. I guess they never expected us to tinker with it and hook - for example - LEDs to the buses ;-).
Maybe we can infer this from other data in the "DC characteristics". I guess, if you keep your current drawn from all outputs and the ICC together below the maximum power dissipation you should be fine. For the 80C88 (the CMOS version) it is 1 watt, so the total current drawn should not exceed 200mA where the CPU itself uses 10mA/MHz. That would mean that for 80C88A-2 (the 8MHz version) it would leave you with quite comfortable 120mA.
Again, don't cite me on this ;-)
@@SladorSoft good thinking. So limiting each LED attached to an address line to 5mA should probably be ok.
nice very good
how were you able to take status of cpu regiters and show on the lcd screen?
Please have a look at "part 5" of the series: ruclips.net/video/O73qC3VFngA/видео.html
Do you have a .hex file for the 29c010 ?
Hi! My programmer uses flat binary files and that's what my Makefile produces by default. If you have the "ia16-elf" toolchain configured you can compile it yourself and then run: "ia16-elf-objcopy -I elf32-little -O ihex bin/part07.elf bin/part07.hex" to get the hex file. If not, I can send it to you. Please, email me (my address is in the About section of my channel) and I'll reply you with the hex file.
Great project, but going for 80188 makes it incompatible with all PC software (there is a reason it was not used for any PC Compatible machine)
Really? I am not sure, IIRC it is software compatible with at least 8086, even with 80186 which itself is a somewhat expanded 8086 but unlike 80286 not having (16 bit) protected mode, but some extra instructions of 286 is supported. Surely it is not compatible with '286 at least. And in fact there was some (though not many) "PC compatible" computers based on the '186 where '188 its 8 bit variant by the size of its external data bus (but IIRC not so much a problem about software compatibility). I would guess, it's more-or-less OK to have a 8088/XT class compatible design at least, as it's not enough for 286/AT indeed.
@seeindarkness - yes, that's true, but PC-compatibility was never my main goal in this series. Also, by writing a proper BIOS you can still achieve some compatibility (by correctly implementing some of the system calls, INT 0A, INT 13 and so on...) but that's another story. Thank you!
Hi! There is a machine code compatibility and computer as a whole compatibility. You're right saying that you can write compatible machine code which works on both 8088/6 and 80188/6 (just compile for the former one), but the peripherals inside 80188/6 are not compatible with those in IBM PC XT. I think what @seeindarkness meant was that it's not compatible, because it does not have 8259, 8254 compatible chips, so any programme written with assumption that these chips are there (at very specific I/O addresses) would not work. It doesn't mean that none of the software would work. Depends on how closely the software touches the hardware directly (without BIOS in the middle).
@@SladorSoft Yes, exactly. "Clean" DOS applications will work since should only use DOS (or at max) BIOS interrupts. SURELY, many (hmm, most) are not this kind. But saying "all" it's a bit too much, what my point was. Also building an SBC in my eye is not so much about re-creating a PC compatible machine, I would prefer creating at least something partly new. (OK, then for sure, the problem of lack of software, but hey, that's the challenge ... ).
whow