MockbaTheBorg / RunCPM

RunCPM is a multi-platform, portable, Z80 CP/M 2.2 emulator.
MIT License
412 stars 75 forks source link

[WIP] Implement iobyte for TTY #194

Closed TurBoss closed 3 months ago

TurBoss commented 4 months ago

Implement iobyte from moxhamj's issue #85 code

Ive been testing it on a teensy 4.1 going to give a try on a esp32

did a pull request allow easy test this to others and allow reviews

Thanks!

MockbaTheBorg commented 4 months ago

Cool.

Thanks for taking the time to do this. I had it in mind but the pandemic killed it. Let's hold on to the pull request until you have tested in the ESP32. Would be perfect if you could also add some Due corresponding code and some skeleton we could leave in place for the other platforms, like vstudio and posix.

Thanks a lot.

On Thu, May 9, 2024, 11:04 PM TurBoss @.***> wrote:

Implement iobyte from moxhamj's issue #85 https://github.com/MockbaTheBorg/RunCPM/issues/85 code

Ive been testing it on a teensy 4.1 going to give a try on a esp32

did a pull request allow easy test this to others and allow reviews

Thanks!

You can view, comment on, or merge this pull request online at:

https://github.com/MockbaTheBorg/RunCPM/pull/194 Commit Summary

File Changes

(2 files https://github.com/MockbaTheBorg/RunCPM/pull/194/files)

Patch Links:

— Reply to this email directly, view it on GitHub https://github.com/MockbaTheBorg/RunCPM/pull/194, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD74NC4FW6OCN4GMOZ4JK2DZBQ2NFAVCNFSM6AAAAABHP3NJPWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI4DQOBSGQ3TQNI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

TurBoss commented 4 months ago

Hello!

Got the esp32s3 i have to work!

RunCPM Version 6.3 (CP/M 60K)

A0>kermit
Kermit-80 v4.11 configured for Generic CP/M-80 with Generic (Dumb) CRT Terminal type selected 

For help, type ? at any point in a command
Kermit-80   0A:>SET PORT TTY
Kermit-80   0A:>SET TERMINAL OFF
Kermit-80   0A:>c
[Connected to remote host.  Type Control-\C to return;
 type Control-\? for command list]
ATI

Zimodem ESP32 Firmware v4.0.1
sdk=v4.4.6-dirty chipid=0 cpu@240
tot=8192k heap=268k fsize=1287k
CONNECTED TO TP-LINK (192.168.10.136)
READY.
OK

But i have to manually assign the pins to each serial port in the INO file like this


...

const int TTY1SerialTX = 15;
const int TTY1SerialRX = 16;

const int TTY2SerialTX = 17;
const int TTY2SerialRX = 18;

void setup(void) {
  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);
  Serial.begin(SERIALSPD);
  Serial1.begin(SERIALSPD, SERIAL_8N1, TTY1SerialRX, TTY1SerialTX);
  Serial2.begin(SERIALSPD, SERIAL_8N1, TTY2SerialRX, TTY2SerialTX);

...

I have also added a hardware file for my esp32 board

I'm also trying to figure why the boot message goes over the Serial1

Thanks :)

MockbaTheBorg commented 4 months ago

We need to evaluate how much of this functionality can be moved to the hardware definition file (and globals.h) in a way that someone having a different board would just need to change that file and nothing else, like we have today. I want to avoid that someone else, willing to use an additional serial, would have to go change source inside the RunCPM innards. That would make it hard to support. For example: whatever needs to be in RunCPM.ino, for arduinos, wild need to have an equivalent on main.c, so people on the PCs could also enable the functionality seamlessly.

On Sun, May 19, 2024, 11:08 AM TurBoss @.***> wrote:

Hello!

Got the esp32s3 i have to work!

RunCPM Version 6.3 (CP/M 60K)

A0>kermit Kermit-80 v4.11 configured for Generic CP/M-80 with Generic (Dumb) CRT Terminal type selected

For help, type ? at any point in a command Kermit-80 0A:>SET PORT TTY Kermit-80 0A:>SET TERMINAL OFF Kermit-80 0A:>c [Connected to remote host. Type Control-\C to return; type Control-\? for command list] ATI

Zimodem ESP32 Firmware v4.0.1 sdk=v4.4.6-dirty chipid=0 @.*** tot=8192k heap=268k fsize=1287k CONNECTED TO TP-LINK (192.168.10.136) READY. OK

But i have to manually assign the pins to each serial port in the INO file like this

... const int TTY1SerialTX = 15;const int TTY1SerialRX = 16; const int TTY2SerialTX = 17;const int TTY2SerialRX = 18; void setup(void) { pinMode(LED, OUTPUT); digitalWrite(LED, LOW); Serial.begin(SERIALSPD); Serial1.begin(SERIALSPD, SERIAL_8N1, TTY1SerialRX, TTY1SerialTX); Serial2.begin(SERIALSPD, SERIAL_8N1, TTY2SerialRX, TTY2SerialTX);

...

I have also added a hardware file for my esp32 board

I'm also trying to figure why the boot message goes over the Serial1

Thanks :)

— Reply to this email directly, view it on GitHub https://github.com/MockbaTheBorg/RunCPM/pull/194#issuecomment-2119269600, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD74NC34KICD4TOZ27CVX6TZDC57LAVCNFSM6AAAAABHP3NJPWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJZGI3DSNRQGA . You are receiving this because you commented.Message ID: @.***>

TurBoss commented 4 months ago

hello, sorry for the delay

I was curious if platformio could be an opition to have many platforms

[platformio]

;default_envs = teensy41
default_envs = esp32s3
;default_envs = linux

[env]
framework = arduino

[env:teensy41]
platform = teensy
board = teensy41
board_build.mcu = imxrt1062
board_build.f_cpu = 600000000L
monitor_speed = 115200
monitor_dtr = 0
monitor_rts = 0
upload_protocol = teensy-cli
lib_deps =
    greiman/SdFat@=2.2.3

build_flags =
    -DCORE_TEENSY
    -DDISABLE_FS_H_WARNING 
    -DTEENSY_OPT_FAST_LTO
    -DUSB_SERIAL
    -DSPI_DRIVER_SELECT=0
    -DSDFAT_FILE_TYPE=1

[env:esp32s3]
platform = espressif32
board = esp32-s3-devkitc-1
monitor_speed = 115200
board_build.flash_mode = dio
lib_deps =
    greiman/SdFat@=2.2.3
;build_flags = -DBOARD_HAS_PSRAM
;board_build.partitions = partitions.csv
;board_build.filesystem = spiffs
build_flags = 
    -DESP32
    -DUSB_SERIAL
    -DDISABLE_FS_H_WARNING 
    -DSPI_DRIVER_SELECT=0
    -DSDFAT_FILE_TYPE=1
    -DBOARD_HAS_PSRAM
    -mfix-esp32-psram-cache-issue

[env:windows]
platform = windows_x86

[env:linux]
platform = linux_x86_64

[env:linux_arm]
platform = linux_arm

thanks

MockbaTheBorg commented 3 months ago

Hi there ... I am freezing the code of RunCPM ... from now on no more feature adding to it. (unless someone creates their own fork to work on) Its been a long journey, more than 10 years, but I am having to change gears away from it.

TurBoss commented 3 months ago

cool Thank you!

wrljet commented 3 months ago

Thank you for sharing your very neat project.../Bill