CRC65, A frugal 6502 SBC
Re: CRC65, A frugal 6502 SBC
https://www.youtube.com/watch?v=YtoE_I_Dx5o
This is a six-minute video showing how a new DOS65 disk is created from scratch on a 29.5MHz CRC65 SBC.
The console is set to 230400, CRC65 is set to serial bootstrap mode and a formatted blank CF disk installed before the video. Video starts with execution of a TeraTerm macro file, newDOS65CF.ttl. The fast moving part is in the first 11 seconds when serial bootstrap is first loaded which then loads and executes the CRC65 monitor. The monitor then load the DOS/65 binary and a helper program to save save DOS65 in CF disk's system track and autoboot program in CF's master boot record.
At 0:11 DOS/65 and monitor software are done loading, the CF disk is now auto-bootable into DOS/65.
-----------------------
XMODEM, assembler, and mkcom hex files are loaded into memory and saved as executable .com files in drive A of DOS/65.
At 0:26 shows the directory of drive A with XM.COM, ASM.COM, and MKCOM.COM installed.
-----------------------
XMODEM is used to load system utility programs into drive D. The utility programs are alloc208.asm, compl205.asm, compr204.asm, copy203.asm, cputype.asm, debug204.asm, dump100.asm, edit205.asm, more202.asm, and run207.asm. Several BASIC sources are also loaded.
At 2:39 shows all files are loaded into drive D
-----------------------
The assembler, ASM.COM, is used to assemble the utility programs followed by MKCOM.COM converting assembler outputs to executable .COM files.
At 5:05 shows all utility programs have been assembled and converted into executable.
-----------------------
COMPILE.COM is used to compile the BASIC sources followed by RUN.COM to execute the compiled BASIC code.
At 5:25 BASIC program FLST215S displays the file status of drive A and drive D.
At 5:33 BASIC program SYST212S display system status
At 5:53 Mandelbrot benchmark result displayed.
Attached is all the files used in the video including the TeraTerm macro. The Teraterm macro looks for files in c:\teraterm\dos65
This is a six-minute video showing how a new DOS65 disk is created from scratch on a 29.5MHz CRC65 SBC.
The console is set to 230400, CRC65 is set to serial bootstrap mode and a formatted blank CF disk installed before the video. Video starts with execution of a TeraTerm macro file, newDOS65CF.ttl. The fast moving part is in the first 11 seconds when serial bootstrap is first loaded which then loads and executes the CRC65 monitor. The monitor then load the DOS/65 binary and a helper program to save save DOS65 in CF disk's system track and autoboot program in CF's master boot record.
At 0:11 DOS/65 and monitor software are done loading, the CF disk is now auto-bootable into DOS/65.
-----------------------
XMODEM, assembler, and mkcom hex files are loaded into memory and saved as executable .com files in drive A of DOS/65.
At 0:26 shows the directory of drive A with XM.COM, ASM.COM, and MKCOM.COM installed.
-----------------------
XMODEM is used to load system utility programs into drive D. The utility programs are alloc208.asm, compl205.asm, compr204.asm, copy203.asm, cputype.asm, debug204.asm, dump100.asm, edit205.asm, more202.asm, and run207.asm. Several BASIC sources are also loaded.
At 2:39 shows all files are loaded into drive D
-----------------------
The assembler, ASM.COM, is used to assemble the utility programs followed by MKCOM.COM converting assembler outputs to executable .COM files.
At 5:05 shows all utility programs have been assembled and converted into executable.
-----------------------
COMPILE.COM is used to compile the BASIC sources followed by RUN.COM to execute the compiled BASIC code.
At 5:25 BASIC program FLST215S displays the file status of drive A and drive D.
At 5:33 BASIC program SYST212S display system status
At 5:53 Mandelbrot benchmark result displayed.
Attached is all the files used in the video including the TeraTerm macro. The Teraterm macro looks for files in c:\teraterm\dos65
- Attachments
-
- DOS65_rev02_teraterm_autoinstall_29_5Mhz.zip
- (132.47 KiB) Downloaded 103 times
- floobydust
- Posts: 1394
- Joined: 05 Mar 2013
- BigDumbDinosaur
- Posts: 9426
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: CRC65, A frugal 6502 SBC
plasmo wrote:
Interested to see your quad serial code for 65816. CRC65 can be reconfigured for 65816 with 2 banks of RAM and I have a quad serial board based on OX16C954 that's compatible with CRC65's bus, so CRC65816 with video/keyboard and quad serial board should make a nice standalone computers.
While the principles behind driving four or even eight serial channels are the same without regard to the UART(s) being used, the 16C series of UARTs is a very different beast than the NXP 26C and 28L UART series (and Exar and TI equivalents) that I use.
In particular, the 16C series lacks the general-purposes inputs and outputs of the 26C/28L series, four of the latter being used to detect individual channel IRQs and “steer” the driver. Also, the 26C/28L series has a sub-microsecond-resolution timer that isn’t present in the 16C series—I use this timer to generate a jiffy IRQ.
For those reasons, as well as radical architectural differences between the series, none of the driver code I have developed will directly translate to any 16C series UART.
x86? We ain't got no x86. We don't NEED no stinking x86!
- BigDumbDinosaur
- Posts: 9426
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: CRC65, A frugal 6502 SBC
plasmo wrote:
https://www.youtube.com/watch?v=YtoE_I_Dx5o
This is a six-minute video showing how a new DOS65 disk is created from scratch on a 29.5MHz CRC65 SBC.
This is a six-minute video showing how a new DOS65 disk is created from scratch on a 29.5MHz CRC65 SBC.
Cool!
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: CRC65, A frugal 6502 SBC
Hi Bill
I have been playing a little with DOS/65 and what you have provided seems to work, although editing is an adventure. Ed reminds me of my days using RDOS on a Data General, I need to read the manual with care! Sedit caused me issues running in picocom on linux. Most of the codes just echoed their characters without actually doing what I thought they were supposed to ended up having to reset to get out. Went to my Windows machine and used Teraterm where it worked better although the keymapping still needs to be worked out by me. For instance Backspace echoes ^H in command line and delete moves backward not what I observe in picocom. Oh Terminal emulation what fun! I will try and get my brain around this and look at the code (plus my terminal settings) to see if I can get more comfortable.
Larry
I have been playing a little with DOS/65 and what you have provided seems to work, although editing is an adventure. Ed reminds me of my days using RDOS on a Data General, I need to read the manual with care! Sedit caused me issues running in picocom on linux. Most of the codes just echoed their characters without actually doing what I thought they were supposed to ended up having to reset to get out. Went to my Windows machine and used Teraterm where it worked better although the keymapping still needs to be worked out by me. For instance Backspace echoes ^H in command line and delete moves backward not what I observe in picocom. Oh Terminal emulation what fun! I will try and get my brain around this and look at the code (plus my terminal settings) to see if I can get more comfortable.
Larry
Re: CRC65, A frugal 6502 SBC
Larry,
Thanks for the feedbacks. Ed.com is very similar to CP/M’s ed.com. It is not a screen editor, but I know people very proficient using it. I’m not one of them, however. Sedit seems promising when using with Teraterm. I’ve contacted the author for more instruction, but have not heard back yet.
Bill
Thanks for the feedbacks. Ed.com is very similar to CP/M’s ed.com. It is not a screen editor, but I know people very proficient using it. I’m not one of them, however. Sedit seems promising when using with Teraterm. I’ve contacted the author for more instruction, but have not heard back yet.
Bill
Re: CRC65, A frugal 6502 SBC
Hi Bill and others
I have found a "gotcha" in DOS/65, which to be fair is stated in the documentation, about lower case in filenames. I believe it happened in using sedit to do some testing and I created a file with a lower case name. I don't believe that EDIT will do that. At any rate if your filename is in lower case it might show up if you do a dir but you cannot type it, rename or erase it. If you do run flst the file shows up and if you drop into the monitor you can see it in the directory sector on the CF card and I believe it takes up a block in the allocation table. I had to manually edit the directory listing using my sector read/write routines to correct this. It might be possible to use the code in flst which finds the file to correct it also or perhaps the CCM or PEM can be edited to prevent this from being written in lower case.
I'm sure there are other issues I will find as I stumble along.
Oh and in Teraterm if you wish to use the backspace rather than delete key in the CCM, this requires changing the delete definition in the CCM listing from $7f to $08. This appears in the buffered read section. The actual code for the backspace uses the definition of the console characters in the SIM console definition block.
I have found a "gotcha" in DOS/65, which to be fair is stated in the documentation, about lower case in filenames. I believe it happened in using sedit to do some testing and I created a file with a lower case name. I don't believe that EDIT will do that. At any rate if your filename is in lower case it might show up if you do a dir but you cannot type it, rename or erase it. If you do run flst the file shows up and if you drop into the monitor you can see it in the directory sector on the CF card and I believe it takes up a block in the allocation table. I had to manually edit the directory listing using my sector read/write routines to correct this. It might be possible to use the code in flst which finds the file to correct it also or perhaps the CCM or PEM can be edited to prevent this from being written in lower case.
I'm sure there are other issues I will find as I stumble along.
Oh and in Teraterm if you wish to use the backspace rather than delete key in the CCM, this requires changing the delete definition in the CCM listing from $7f to $08. This appears in the buffered read section. The actual code for the backspace uses the definition of the console characters in the SIM console definition block.
Re: CRC65, A frugal 6502 SBC
Larry,
CP/M also has similar problem where lower case filename can cause it to be in-accessible by most CP/M applications including copy and erase apps. It doesn't happen very often, but some mis-behaving program can create such file. Some even touted it as "write protect" feature! I know there is special program in CP/M that can manipulate lower case filename, but I can't recall the specific program. DOS/65 may need similar program as well.
Another problem with DOS/65 is its file size is limited to 512K bytes. I created a 1-megabyte file in CP/M and then try to read it with DOS/65. What I observed is two files with same names; I'm unable to copy the file but I am able to erase it.
Great tip regarding changing delete key definition. I was getting annoyed with backspace key not working.
Bill
CP/M also has similar problem where lower case filename can cause it to be in-accessible by most CP/M applications including copy and erase apps. It doesn't happen very often, but some mis-behaving program can create such file. Some even touted it as "write protect" feature! I know there is special program in CP/M that can manipulate lower case filename, but I can't recall the specific program. DOS/65 may need similar program as well.
Another problem with DOS/65 is its file size is limited to 512K bytes. I created a 1-megabyte file in CP/M and then try to read it with DOS/65. What I observed is two files with same names; I'm unable to copy the file but I am able to erase it.
Great tip regarding changing delete key definition. I was getting annoyed with backspace key not working.
Bill
- floobydust
- Posts: 1394
- Joined: 05 Mar 2013
Re: CRC65, A frugal 6502 SBC
True re 512KB filesize as a max... found the same. Also, 8MB is the maximum size for a drive with DOS/65. Currently, there are up to 8 drives supported. I'm looking at this to see if I can increase it to 16, not a priority tight now, but on the list.
Nice to have the source however and a GPL V3 license. Per Richard's last update on V3... the license he was referring to was not the DOS/65 version 3, but the GNU GPL V3 or later. In short, we've been given "carte blanche" going forward.
PS - also running one of your CRC65 boards with DOS/65... nice port!
Nice to have the source however and a GPL V3 license. Per Richard's last update on V3... the license he was referring to was not the DOS/65 version 3, but the GNU GPL V3 or later. In short, we've been given "carte blanche" going forward.
PS - also running one of your CRC65 boards with DOS/65... nice port!
Regards, KM
https://github.com/floobydust
https://github.com/floobydust
Re: CRC65, A frugal 6502 SBC
floobydust wrote:
PS - also running one of your CRC65 boards with DOS/65... nice port!
Bill
- floobydust
- Posts: 1394
- Joined: 05 Mar 2013
Re: CRC65, A frugal 6502 SBC
plasmo wrote:
floobydust wrote:
PS - also running one of your CRC65 boards with DOS/65... nice port!
Bill
2- 512MB, 2- 128MB, 1- 2GB and some early ones ranging from 16BM, 32MB, 64MB, 96MB. Also an early 340MB IBM Microdrive in CF format Type-II.
Also, when I built up my CRC65, I soldered a 44-pin socket on the PCB, so I can directly plug in a 44-pin IDE drive instead of the CF Card adapter. Just haven't tried it yet... but I do have a fair number of older laptop drives kicking about. Come to think of it, I have a few Apacer SSD modules that are also in a 44-pin IDE format, but those are in a female connector, so an adapter would be required.
Regards, KM
https://github.com/floobydust
https://github.com/floobydust
Re: CRC65, A frugal 6502 SBC
I have three BASIC programs on DOS/65: a BASIC compiler (COMPL205.ASM, RUN207.ASM), Microsoft BASIC (BASIC202.ASM), and ported EhBASIC (DBASIC.ASM). I am able to assemble BASIC compiler and MicroSoft BASIC using the native DOS/65 assembler; I assembled the ported EhBASIC using CA65 assembler. Here are the run times of mandelbrot benchmark on the 29.5MHz CRC65:
Compiled mandelbrot---24 seconds
ported EhBASIC--------45 seconds
MicroSoft BASIC--------51 seconds
(Edit on 10/31/22, running same benchmark on 22MHz Z80 BASIC-80 Rev 5.21)
Z80 MBASIC80 22MHz--155 seconds
MicroSoft BASIC is slowest, but it does have working "LOAD" and "SAVE" commands. Load/save commands are not working on the ported EhBASIC.
Compiled mandelbrot---24 seconds
ported EhBASIC--------45 seconds
MicroSoft BASIC--------51 seconds
(Edit on 10/31/22, running same benchmark on 22MHz Z80 BASIC-80 Rev 5.21)
Z80 MBASIC80 22MHz--155 seconds
MicroSoft BASIC is slowest, but it does have working "LOAD" and "SAVE" commands. Load/save commands are not working on the ported EhBASIC.
Last edited by plasmo on Mon Oct 31, 2022 1:20 pm, edited 1 time in total.
Re: CRC65, A frugal 6502 SBC
I believe I've successfully ported DOS/65 V3 to CRC65 SBC. Attached is CF image of DOS/65 V3. Unzip and copy it to a new CF (32MB or larger) using disk imaging tool like Win32DiskImager and it should autoboot to DOS/65. The difference between DOS/65 V2 and V3 are mostly in the PEM and CCM. SIM is basically the same except the warm boot routine copies one more CF sector to accommodate the larger PEM+CCM. There are 4 new software in version 3:
BASIC.COM is MicroSoft BASIC.
SUBMIT.COM is for batch file
UCOPY.COM can copy file to different user areas
SD.COM is super-directory, displaying more directory information.
Bill
BASIC.COM is MicroSoft BASIC.
SUBMIT.COM is for batch file
UCOPY.COM can copy file to different user areas
SD.COM is super-directory, displaying more directory information.
Bill
- Attachments
-
- dos65v3_02_image.zip
- (1.46 MiB) Downloaded 126 times
Re: CRC65, A frugal 6502 SBC
Great work Bill. I will have some more time to examine how it works this week. Now we just need to port some programs to DOS/65, that will be a learning curve but the example code should help the process.
Larry
Larry
Re: CRC65, A frugal 6502 SBC
I have been trying out DOS/65 v3 and have run into some oddities in large files. I uploaded by xmodem DBASIC.ASM which is about 264KB. That seems to have gone well but when I try and check the file by using "type DBASIC.ASM" it stops before finishing at just after 16KB of the file. I looked in the directory and while the directory on sd card has multiple entries for the file, it is all there by examination of the sectors. The listing seems to stop after 16k or 4 blocks. This not the case for "dump DBASIC.ASM" which goes fine until it looks for the next extent or entry for DBASIC.ASM in the directory which is after 8 blocks have been read.
I'm not sure what is happening without diving deeper into this but wanted to share what I have found so far.
Edit: That experience was at 29.5 Mhz. I just reverted to 14.7Mhz and now the type command worked as it should. Am I on the hairy edge for my CF card??
I'm not sure what is happening without diving deeper into this but wanted to share what I have found so far.
Edit: That experience was at 29.5 Mhz. I just reverted to 14.7Mhz and now the type command worked as it should. Am I on the hairy edge for my CF card??