在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:leomil72/LM80C开源软件地址:https://github.com/leomil72/LM80C开源编程语言:Assembly 98.9%开源软件介绍:LM80C Color Computer - A Z80-based homebrew computer
Getting started
OverviewThe LM80C is an 8-bit home-computer built around the Zilog Z80 CPU with video and audio capabilities. It's a stand-alone system thanks to its integrated keyboard that permits to use it without the necessity of host computers, usually used as input/output devices in other similar projects. With the LM80C BASIC you can write your own games, programs, and much more. ModelsActually, there is only one model of the computer: the LM80C 64K Color Computer. Originally, there was also the LM80C Color Computer but it has been considered as DEPRECATED and its developmente and/or supporto has been cheased. There were a couple of differences between the two: the former only had 32KB of SRAM and an interface to SD cards based on an Atmega328P as a mass storage (never developed, my fault), while the latter has 64KB of SRAM and a new mass storage interface based on Compat Flash cards, perfectly supported. Main featuresLM80C 64K Color Computer
Thanks to the bank switching mechanism implemented into the computer, the machine can use the whole amount of 64KB of SRAM. The same mechanism is used to provide 2x 16K banks of VRAM to the VDP so that 2 entire video framebuffers can be loaded and stored into the VRAM. LM80C Color Computer (DEPRECATED)
IMPORTANT NOTE: due to the release of the LM80C 64K model, the development of the LM80C has been halted. At the moment, only software improvements for the LM80C BASIC are still developed and ported from the bigger brother. Since this downgrade to a minor model, the support for SD cards is not developed anymore. The PCB is basically still printable but please don't populate the SD interface portion with any of the components since none of them will be used. BASICThe LM80C BASIC is a dialect of the BASIC, a versatile and user-friendly programming language, the de-facto standard of the '80s since it was integrated into almost every 8-bit home computer. It derives from Nascom BASIC, that in turn derives from Microsoft Z80 BASIC 4.7. The LM80C BASIC is more than just a derivative language: in fact, it has its own set of commands and functions to take advantage of the specific LM80C hardware, like statements to draw point, lines, and circles, change foreground and background colors, move the cursor, play a tone or a noise, open/close the serial port, etc. It lets you to write good BASIC games, like "Lunar Lander", see below: What you needBefore to start building your own LM80C computer you need several things:
Electronic partsPassive electronic components can be grabbed anywhere: there are a lot of difference sources, like auction sites, big resellers, and local shops, too. The main chips, the Z80 family chips, are also widely available since the manufacturer, Zilogs, still continue to produce and commercialize them. More effort is needed to find the video and audio chips. The VDP and PSG are still available from China but, while the video chip is very common (in the past there has been over-production so a lot of spare components are still available), the audio chip is more rare and it is easy to find counterfit parts that doesn't work. SoftwarePersonally I'm using Visual Studio Code to write the ASM files: it's free, based on an open source project, and multi-platform (do not confuse with Visual Studio IDE). The extension to highlight the assembly code is Z80 ASM. Visual Code is a very complete editor and you can use for every language you use. Another good editor is ATOM editor to edit the code, with Language-assembler-SJASMPLUS package to highlight the Z80 assembly code. I prefer the former because it's lighter. To compile binaries I actually use SJASMPlus, because it's multi-platform (MacOS/Linux/Windows) and has a lot of features, like macros, support for in-source LUA scripting, and much more. But you may use the assembler you want. However, for your commodity, the latest precompiled binary file, ready to be burned into an EEPROM, is always available. To open/modify schematics you need a CAD: I use KiCad, that (IMHO) is the best choice, since it's free and doesn't have the limitations of the freeware version of EagleCAD, that can't let you create a board bigger than 80 square cms., and the LM80C PCB is much bigger. However, I've also added PDF files if you just want to look at the schematics but don't want/need any additional software to open the schematics. HardwareTo burn the binaries on the (E)EPROM chips I used a modified version of TommyPROM so that I can use 74HCT595 shift registers, but you can use any (E)EPROM programmer you have. If you want to replicate my programmer, you need an Arduino/Genuino Uno board. Please buy a genuine board, not a counterfit one, to help the open-source project. PrototypingI strongly recommend you to assemble a prototype on breadboards to be sure that everything is working right. The pictures below represent the LM80C during its development: Folder organizationThe files in this repo are organized in folders:
CompilationTo compile the firmware, first download or clone the repo on your computer, than go into the "12-Home computer" folder, copy inside it the executable of SJAsmPlus specific for your OS, open a terminal in it, then give this command:
where "X.YY" is the release you want to compile. After the compilation has finished, you'll find a file with extension EmulationThere is an LM80C online emulator, written in Javascript by Antonino Porcino, that can be used to see how the real machine acts and works: you can test directly in your browser by opening this link. These are the latest releases that can be launched: LM80C 3.19 (latest firmware for 32K model) LM80C 64K (with integrated DOS) Z88DK SupportThe latest releases of Z88DK support the compilation of C programs for LM80C Color Computer. You need to grab one of the nightly build. After the compilation, a file with extesion FAQ
SupportYou can find more about me on my website at www.leonardomiliani.com. Donations
License
The names "LM80C", "LM80C 64K", "LM80C Color Computer", "LM80C 64K Color Computer", and "LM80C BASIC", the "rainbow LM80C" logo, the LM80C schematics, the LM80C sources, and this work belong to Leonardo Miliani. The "rainbow LM80C" logo and the "LM80C/LM80C Color Computer/LM80C 64K/LM80C 64K Color Computer" names can not be used in any work without my explicit permission. You are allowed to use the "LM80C" and "LM80C 64K" names only in reference to or to describe the LM80C/LM80C 64K Color Computers. The LM80C/LM80C 64K schematics and source codes are released under the GNU GPL License 3.0 and in the form of "as is", without any kind of warranty: you can use them at your own risk. You are free to use them for any non-commercial use: you are only asked to maintain the copyright notices, to include this advice and, if you intend to re-distribute them, the note to the attribution of the original works to Leonardo Miliani. For any other use, please contact me by opening an issue. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论