Giter Club home page Giter Club logo

cpmish's People

Contributors

cpswan avatar davidgiven avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cpmish's Issues

Boot the main CPM bootloader from Basic, like the NC100 does?

There is a different CPM variant that run on the NC100, which is basically able to run via function-X keypress from a ram card. Would be possible to do the same on cpmish so you can bypass the floppy altogether and run everything from the PCMCIA 32 mb card? This would also save the hassle to boot from floppy and then swap system disk to the PCMCIA card and have improved speed.

Debuggers (DDT, SID/ZSID and Z8E) not working

Hi,

We are trying to get debuggers to work. Both DDT and SID/ZSID crash the machine hard. Z8E (i don't know this application, really) also fails. I try to learn about CP/M, and the use of debuggers is a big part of the journey. Thanks!

Dennis

Having difficulties building under MacOS Mojave

I get to here, and the build fails:

[1/83] gcc -c -o .obj/third_party/zmac/zmac/main/y.tab/y.tab.o .obj/third_party/zmac/zmacparser/y.tab.c -I.obj/third_party/zmac/zmacparser -g -Og -Ithird_party/zmac 
FAILED: .obj/third_party/zmac/zmac/main/y.tab/y.tab.o 
gcc -c -o .obj/third_party/zmac/zmac/main/y.tab/y.tab.o .obj/third_party/zmac/zmacparser/y.tab.c -I.obj/third_party/zmac/zmacparser -g -Og -Ithird_party/zmac 
third_party/zmac/zmac.y:1902:7: error: use of undeclared identifier 'UNDECLARED'
        case UNDECLARED: case WASEQUATED:
             ^
third_party/zmac/zmac.y:1902:24: error: use of undeclared identifier 'WASEQUATED'
        case UNDECLARED: case WASEQUATED:
                              ^
third_party/zmac/zmac.y:1903:23: error: use of undeclared identifier 'WASEQUATED'
                if (sym->i_token == WASEQUATED &&
                                    ^
<more errors snipped>

I've had issues recently with yacc (when building Fuzix). I've also installed byacc, and edited yacc.lua to use byacc instead, but that doesn't seem to affect the problem. Many thanks in advance for any pointers!

support for standard NC200 disk format or 22disk formats for floppy?

Currently the OS is not able to read any floppy formatted with the NC200, once cpmish is booted.

Since there is no way to use the serial port; there is no way to copy files from and to the cpmish environment. Would be great to add support to the standard NC200 floppy format (which should be readable on a standard pc), or add support for file systems that can be created via 22disk (a utility very commonly used by CP/M users to copy files from and to a CP/M environment). Thanks

BBC BASIC hangs on emulators

When run on an emulator such as RunCPM or SIMH, BBC BASIC hangs when you attempt to RUN a program. The problem is that it's using the R (memory refresh register) as a random number seed, and emulators apparently just return 0 for this register instead of incrementing it like a real CPU does. In your sources, it will loop indefinitely as long as R is 0 so it will never run the program.

RUN0:   LD      SP,(HIMEM)      ;PREPARE FOR RUN
        LD      IX,RANDOM
RAND:   LD      A,R             ;RANDOMISE (CARE!)
        JR      Z,RAND
        RLCA
        RLCA
        LD      (IX+3),A
        SBC     A,A
        LD      (IX+4),A

I disassembled the official BBC BASIC Z80 binary and it is doing this slightly different. It still initializes the random seed form R but if it's zero, it just increments it to 1 and moves on.

l0ee1h:
	ld sp,(03de4h)		;0ee1	ed 7b e4 3d 	. { . = 
	ld ix,03df6h		;0ee5	dd 21 f6 3d 	. ! . = 
	ld a,r		;0ee9	ed 5f 	. _ 
	jr nz,l0eeeh		;0eeb	20 01 	  . 
	inc a			;0eed	3c 	< 
l0eeeh:
	rlca			;0eee	07 	. 
	rlca			;0eef	07 	. 
	ld (ix+003h),a		;0ef0	dd 77 03 	. w . 
	sbc a,a			;0ef3	9f 	. 
	ld (ix+004h),a		;0ef4	dd 77 04 	. w . 

I am going to fix this in my fork of BBC BASIC and I thought you may want to do the same.

I guess the sources R.T. Russell gave you don't exactly match the official binary. Another difference is between your patch.z80 file and the BBCDIST.MAC file distributed with the official binary. The timer code you had to comment out in your version doesn't exist in the BBCDIST.MAC file, and there are other minor differences.

BTW, my fork is available here: https://github.com/jblang/bbcbasic-z80. I have modified it to assemble with z88dk's z80asm. I plan to eventually add support for my TMS9918A video card: https://github.com/jblang/TMS9918A/

QE: Insert mode sets dirty flag even if immediately aborted

If you enter "insert" mode by typing "i", then immediately exit it again by pressing ESC, the document is still marked as dirty.

It should only be marked if actual changes are done.

Maybe something like this (untested):

--- qe.c        2020-06-03 12:44:51.806623700 +0200
+++ qe-fixed.c  2020-06-03 12:47:23.393445200 +0200
@@ -632,7 +632,10 @@
                uint16_t c = cpm_bios_conin();
                if (c == 27)
                        break;
-               else if (c == 8)
+
+               dirty = true;
+
+               if (c == 8)
                {
                        if (gap_start != current_line)
                                gap_start--;
@@ -654,8 +657,6 @@

                redraw_current_line();
        }
-
-       dirty = true;
 }

 void insert_text(uint16_t count)

Pre-made image that can be "flashed" on a floppy on Windows?

I have no linux machine with a floppy, so I cannot do the dd step of the img posted here. Is there a pre-made image that I can just put on a floppy, using something like balena etcher or similar tools, on Windows?

I could use a VM with a usb floppy drive but windows is quite picky about how floppy drive works even under emulation, and I have no old machine that can run linux and has a USB floppy; so I was wondering if there is another way to put the image on a real floppy without use linux?

Parallel/peripheral projects, informational

https://github.com/MiguelVis/RetroProjects

That is the URL of a lot of Z80 C material for the CP/M environment.

Several I use/have that being te, small editor, MESCC a very good K&R C that can compile it self on a z80 system, ZSM assembler, a unix like shell, and some utilities like unix cat.

All of it GPL-V2. Keeping it both source (also binaries) and available for use.
I've had much of it for since forever and did a look to see if its current status had changed.
It had not and there was more if anything added. I have updated my library to add the new material.

MESCC is a branch of the SmallC compiler and is very good K&R style compiler.
There maybe a preference for ANSI but I use K&R style for small projects, its the
form I know from using unix V6 on PDP-11 way back when. It also seems to like
the code from here ( fewer minor edits)..

Release folder

Hey David, I know it's a pain, but is there any chance of getting a release folder with the images already built? I've struggled to get the code to compile.

supporting banked memory

Banking has been one of the devils of CP/M for the various levels to 2.2. This is mostly due
to there not being any standard. CP/M3 (aka CP/M+) and MPM made it desirable but not any specific form is called out.

It is possible to run CP/M 2 and ZS/ZRdos in banked systems as there are no prohibitions but generalized solutions of one size fits some are hard to come by due to wide variations in hardware.
The PCW is one I have seen this side of the pond (scarce but not rare) and likely easier to find as
well making it a good choice for implementation.

The most common applications of banking for any system is that bulky uses of memory
like video buffers, ramdisk, and large disk buffers can be outside the nominal 64K map
leaving as much space as possible for applications. General use is putting much of the
BIOS as possible in banked space.

Other platforms, can we add?

Here in the USA the NC200 is a collector item as they are actually rare. Really looks slick.

PX-8s are more common as I have three.
Kaypros tend to be more often the second version of the KII vs K2 and very often 4.84 flavor or enhanced with Advent turbo rom. The KII is have sorta boots the disk but the files are scrambled
so its a Bios version thing.
Real hardware z80 boxes include Z100 based
Compupro with Z80 and their disk controller
CCS Z80 with their disk controller
Northstar horizon chassis Z80 with my disk controller 765 based.

Also monoboard SBCs:
SB180
AmproLB+

Outlanders:
DEC vt180 with CPm z80 card.
Grant Searle Z80 with IDE (CF) also CP/M
YAZC yet another Z280 computer.

Not much as stands that behaves well with the
existing kit. piecemeal if the -compiler is sorted will.
However the C versions of code may present disk space issues
as they will be much larger.

Does this support gotek floppy drive simulator?

I've an NC200 and I've swapped out the floppy for a gotek device, so now it reads .img files from USB drives.

Unfortunately it doesn't like the nc200.img, and thinks it's completely empty. Command Q does not work when that is the disk selected on the gotek.

I was wondering if you had a similar device and had tried to get this working on it? For me the alternative is to build tools and create my own .img file, which is fine. But it would be good to know if this has been tried :-)

Overlap when download on Mac

Would it be possible to rename BUILD to something that does not overlap with build/ to be able to clone on mac?

Boot cpmish without a floppy or SRAM card?

Is there a way to boot cpmish on a PCMCIA 32 mb card without a floppy or SRAM card?

My NC200 has a dead floppy and could not find a ram card for less than 200 USD; so I was hoping there is a way to bootstrap cpmish as you do with the floppy disk, like using the onboard basic or a command via serial port?
If so, how would that be possible? Thanks

Arch and SUSE linux compatibility

It seems that there are some different labelings in the arch and suse linux distributions causing errors apon making.

Please do something to gain more compatibility with those distributions.

Build failing on macOS with "error: image must be a multiple of 6 pixels across"

[1/28] .obj/arch/nc200/utils/fontconvert/fontconvert .obj/...x7font.png > .obj/arch/nc200/supervisor/font_inc/font.inc
FAILED: .obj/arch/nc200/supervisor/font_inc/font.inc
.obj/arch/nc200/utils/fontconvert/fontconvert .obj/utils/6x7font/6x7font.png > .obj/arch/nc200/supervisor/font_inc/font.inc
error: image must be a multiple of 6 pixels across
[2/28] .obj/arch/brotherop2/utils/fontconvert/fontconvert ...font/6x7font.png > .obj/arch/brotherop2/font_inc/font.inc
FAILED: .obj/arch/brotherop2/font_inc/font.inc
.obj/arch/brotherop2/utils/fontconvert/fontconvert .obj/utils/6x7font/6x7font.png > .obj/arch/brotherop2/font_inc/font.inc
error: image must be a multiple of 6 pixels across
[3/28] .obj/arch/wp2450ds/utils/fontconvert/fontconvert .o...x7font/6x7font.png > .obj/arch/wp2450ds/font_inc/font.inc
FAILED: .obj/arch/wp2450ds/font_inc/font.inc
.obj/arch/wp2450ds/utils/fontconvert/fontconvert .obj/utils/6x7font/6x7font.png > .obj/arch/wp2450ds/font_inc/font.inc
error: image must be a multiple of 6 pixels across
[4/28] .obj/utils/objectifyc/objectifyc < .obj/utils/emu/b...bdos.cim > .obj/utils/emu/biosbdos_cim_h/biosbdos_cim_h.h
ninja: build stopped: subcommand failed.

support for Tandy 100?

Just wondering if there is any plan for the TRS-80 model 100; which is running a compatible 8080 CPU.

What CP/M hosted C compiler is used?

I've tried BDS-C and SmallC and tons of error complaining of format and structure and libs.
HitechTec C and Aztec C are pending.
Likely can compile on the PC using SDCC but that far from native.

"Preparing memory." on booting cpmish on an NC200.

I tried to boot cpmish on my NC200 and just got a message saying "Preparing memory." in a centralised box on the NC screen. The disk drive motor stays on and the machine power button no longer works... I assume it's crashed.

I created a boot disk on Linux (USB disk drive) using:
ufiformat -f 720 /dev/sda
dd if=nc200.img of=/dev/sda

I've tried the image in the current github distribution. I also managed (after some hacking) to build the image (on Raspbian). Both images have the same results.

Any ideas?

Many thanks,
Frank.

zmac seg faults on Travis

...causing the builds to fail. I have no idea why. It doesn't do it on my development machine and it's valgrind clean.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.