anstatt READ.ME mal ein RUNCPM.DOC
in Wordstar v4.0
(erstellt auf Basis der github-Seite
)
anstatt READ.ME mal ein RUNCPM.DOC
in Wordstar v4.0
(erstellt auf Basis der github-Seite
)
beim Code fehlt doch irgendwie der Längengrad?
Und die PC-Zeit * Faktor 1.0027 ist nicht die Sternzeit.
zusätzlich fehlt noch die Korr. 15°-L°, die ist für die Sternzeit wichtig.
Der umfangreiche Ansatz / Berechnung hat Franky in der Sterzeituhr.pdf richtig beschrieben.
Na dann leg mal los
Den Code hatte ich ja nur so "aus der Huefte geschossen" als Unwissender ![]()
Ich selbst brauche als nicht-Astronom so eine Uhr nicht.
Hallo Guidol
So ein Modul wäre genau das Richtige. Box drumrum und fertig wäre die Sternzeituhr. Sie müßten ohne Netzwerk laufen.
Verkaufst Du solche Bausätze? Kann man sie umstellen auf Sternzeit?
Nein
ich verkaufe keine Module. Die beiden Platinen sind Standard-Ware.
WEMOS D1 R2 = ESP8266 auf Arduino-Pinout-Board
LCD Keypad = aufsteckbares LCD-Modul mit Tasten
(auf der Seite gibts auch gleich Plexiglasgehaeuse)
So koennte man sich ohne Gehauese sowas fuer unter 20EUR bauen, wenn man den Code anpasst fuer die Sternzeit-Nutzung ![]()
...sieht mit PC-BASIC etwas seltsam aus...
Ooops - das hatte ich vorher nur bei den Minuten.
Ich habe Zeile 120 angepasst nun sollte es wieder stimmiger aussehen.
Wobei ich mit PRINT USING keine fuehrende 0 hinbekommen habe ![]()
(PRINT USING "##";STD)
So sehen die Zahlen <10 bei STD/MIN/SEC dan etwas komisch aus...
10 UNFLIC=0
20 STARSEC#=86164091#
30 DAYSEC#=86400000#
40 FAK#=DAYSEC#/STARSEC#
50 STD=VAL(MID$(TIME$,1,2))
60 MIN=VAL(MID$(TIME$,4,2))
70 SEC=VAL(MID$(TIME$,7,2))
80 TOTAL=(STD*60*60)+(MIN*60)+SEC
90 CONV=TOTAL*FAK#
100 IF UNFLIC<>CONV THEN GOTO 110 ELSE GOTO 50
110 STSTD=INT(CONV/(60*60))
120 RESTONE=CONV-(STSTD*(60*60))
130 STMIN=INT(RESTONE/60)
140 RESTTWO=RESTONE-(STMIN*60)
150 STSEC=INT(RESTTWO)
160 CLS
170 PRINT "Uhrzeit :";STD;":";MIN;":";SEC
180 PRINT "Sternzeit :";STSTD;":";STMIN;":";STSEC
190 UNFLIC=CONV
200 A$=INKEY$
210 IF A$<>"" THEN GOTO 230
220 GOTO 50
230 END
Alles anzeigen
Aber ein Arduino mit einem kleinen LED Display dran könnte so programmiert werden, dass er 24h in den 23h56m04s irdischer Zeit durchläuft.
Natürlich an besten mit echtroten LED Ziffern
Ich hatte mal aus eine ESP8266 und eine I2C-LED-Display eine Internet-NTP-Uhr gebaut.... die koennte man zu sowas umbauen - oder wenn man kein Internet nutzt einen "Dallas" DS3231 mit dran haengen?
Hier meine LCD-Version:
https://lehwalder.wordpress.co…ss-esp8266-ntp-lcd-clock/
Ansonsten hat jemand ( Jürgen Goldan - https://juergen.goldan.org/ )
anderes auch folgendes Arduino-Projekt:
https://www.goldan.org/juergen/software/
Als Idee habe ich die Sternenzeit-Umsetzung mal kurz ins GWBASIC geschrieben - als Anregung ![]()
Die Anzeige flackert zwar etwas durch das CLS (Clear Screen), aber grundsaetzlich scheint dies ein Weg zu sein fuer die Umsetzung auf einem BASIC-Rechner ![]()
[EDIT] Gerade noch damit es nicht flackert die UNFLIC-Variable/-Funktion eingebaut ![]()
10 UNFLIC=0
20 STARSEC#=86164091#
30 DAYSEC#=86400000#
40 FAK#=DAYSEC#/STARSEC#
50 STD=VAL(MID$(TIME$,1,2))
60 MIN=VAL(MID$(TIME$,4,2))
70 SEC=VAL(MID$(TIME$,7,2))
80 TOTAL=(STD*60*60)+(MIN*60)+SEC
90 CONV=TOTAL*FAK#
100 IF UNFLIC<>CONV THEN GOTO 110 ELSE GOTO 50
110 STSTD=INT(CONV/(60*60))
120 RESTONE=CONV-STSTD
130 STMIN=INT(RESTONE/60)
140 RESTTWO=RESTONE-(STMIN*60)
150 STSEC=INT(RESTTWO)
160 CLS
170 PRINT "Uhrzeit:";STD;":";MIN;":";SEC;" = Sternzeit: ";STSTD;":";STMIN;":";STSEC
180 UNFLIC=CONV
190 A$=INKEY$
200 IF A$<>"" THEN GOTO 220
210 GOTO 50
220 END
Alles anzeigen
Der Bildschirm wird nach dem Einschalten grün - da brauche ich vermutlich Startdisketten ?
und evtl. einen neuen Laufwerksgummiriemen , wenn es mit Diskette auch nur gruen bleibt...
... interessant: habe das obige RunCPM_GCC295.zip mit gcc (2.95) und gcc-x86 (13.x) getestet und konnte hier diesen Fehler nicht feststellen ... macht
einen Unterschied?
macht keinen Unterschied, aber den Fehler habe ich gefunden ![]()
Am Anfang habe ich anstatt FTP SFTP fuer den Filetransfer benutzt (wobei ich noch nicht verifiziert habe, ob es nun sauber mit FTP klappt....denn von Haiku zu Windows per WinSCP klappt es) und da gabs es oefter mal
"Permission Denied" und wenn man dann SKIPt erzeugt Haiku Files die es nicht umbenennt wie
WSPRINT.OVR.filepart
von Wordstar.
Liegt nun solch ein File im Laufwerks-Verzeichnis bricht da das DIR ab.
Nun habe ich auf A: und O: die *.filepart removed und es wird mit beiden GCC 2.95.3 Source Versionen das voll Directory angezeigt.
SFTP war erst default und spaeter das OpenSSH-SFTP Subsystem - aber in den Netzwerkeinstellungen gibt es auch die Option FTP aus/ein bzw. off/on
Lag also nicht an Deiner Umstellung, sondern am Fehlerhandling des Original-Code ![]()
JenGun
Ich trau mich es ja kaum zu schreiben
aber mit der GCC 2.95.3 Version haben wir aehnliche Probleme bei der DIR-Anzeige wie bei dem DJGPP
Bei meinem A: Laufwerk zeigt er mir nur die 1STREAD.ME
Auf B: und O: (Wordstar 4.0) sieht es ein wenig besser aus....aber meiner Ansicht kommen da auch nicht alle Dateien zur Anzeige ![]()
Wobei RunCPM (mit dem GCC 2.95.3 compiliert) mir auf B: die Datei MBAS529P.COM zeigt, aber nicht auf A:
Ich musste erstmal nachsehen, wie man das .diff anwendet mit patch
- wenn man noch die gleichen Files hat wie Du, d.h. org. github -
(Diese Dateien im Verzeichnis a/RunCPM)
Also habe ich mir nochmal die org. github-Files geholt, diese gepatcht und dann meine haendischen "Patches" wieder rein ![]()
Aber dann klappte es einwandfrei - cool
JenGun Du bist echt flott. Vor ca. 10 Jahren konnte ich auch keinen Code anpassen/compilieren - aber bis zu Deinem Stand brauch ich noch etwas Zeit ![]()
zur Info:
Adding ESP8266 MOD WIFI module and using BASIC serial communication commands to get our Neo6502 computer online and reading the web!
Merkwürdig, selbst mit gcc 2.95.3-haiku-2017_07_20 erscheint hier:
... ohne die obige Änderung in globals.h tritt dann genau der Fehler auf: es sind nur 3072 Bytes verfügbar ...
Mit dem v2.95.3 hat er bei mir garnicht z Ende compiliert und viele Meldungen ueber undeklariertes "geschmissen", da ist mir das wohl nicht mehr aufgefallen. Der v13.3.0 war ruhig.
Aber Du als Compiler-"Oracle" hattest Recht ![]()
Nachdem ich in der globals.h alle 3 PAGESIZE Vorkommen gegen RUNCPM_PAGESIZE getauscht hatte, klappt es mit dem Speicher (64512 bytes available gemaess INFO.COM)
Getestet hatte ich in der globals.h auch ein #undef PAGESIZE vor der von RunCPM, aber das hat er ignoriert.
Wie auch das Compiler-Flag --param=min-pagesize=65536 keine Meldung / noch mehr RAM brachte.
Wiedermal VIELEN DANK fuer Deine flotte Hilfe (da hab ich doch mal ein Vorbild fuer Compiler-Wissen
)
Interessant, dass sich sonst nie ein Compiler beschwert hat bei Linux/Windows/armbian
Entweder haben die keinen Eintrag oder ueberschreiben den Wert.
/boot/system/develop/headers/posix/arch/x86/limits.h
(4096 soll ein Standard seit GCC 12.x sein)
Danke für den Hinweis.
Der GCC v13.3.0 hat trotz des "only" Compile-flag -O3
mir kein einziges Warnung ausgegeben.
Ich werde mir Deinen Tipp ansehen, wenn ich wieder am Rechner bin ![]()
Da "ActionRetro" auf YT schmackhaft gemacht hat für kleine Rechner, habe ich auf mein Wetab die x86-Version von Haiku R1/beta5 installiert.
Nach dem compile mit dem GCC v13.3.0 (gcc-x86) startet RunCPM zwar, aber hat intern nur 3072 Bytes Ram frei für Applikationen (laut dem RunCPM Tool INFO.COM)
Normal sollte man bei 64K TPA da 60-64Kbytes frei haben.
Compiliert habe ich den selben posix-Source wie unter Linux/armbian.
Das ist das erste Mal, dass ich so wenig RAM "rausbekomme".
Laut dem Autor Marco Dantas sehen die Adressen für BIOS/BDOS so schräg/klein aus - die normal (laut ihm) von der cpm.h berechnet werden.
Hat irgend ein C-Experte eine Idee, welche Compile-/Link-Option mir da den Spass vehagelt?
A0>info
RunCPM System Information v1.0
RunCPM Version 6.6 running on Posix
CCP is Internal Version 3.1
CCP loads at address 0D00h
BDOS is at address 0D00h
BIOS is at address 0E00h
3072 bytes available for applications
Chatgpt sagt Rise of the Dragon. 😁
welche Frage hast Du da genutzt, weil ChatGPT mir was anderes sagte...
in einigen VTech haben div. Zusatzmodule nur andere Verdrahtungen - wie DIP-Swichtes.
Mein Sohn hatte damals auch 2 gebrauchte VTech (Chuggington und einen Colour) und damit lange viel Spass.
Jetzt ist er 12 und nun finden seine türkischen Freunde die VTechs immer noch toll. Und kaputt ist daran auch noch nichts gegangen ![]()
Ich habe mit gerade zwei LILYGO FabGL VGA32 mit dem ESP32 gekauft – zum Experimentieren. Hat jemand das RunCPM schonmal damit benutzt? Ich finde, das ist ein tolles kleines Board, PS/2-Maus und -Tastatur, VGA-Ausgang und SD-Card-Slot. Und sogar Sound.
Man könnte es natürlich auch als VT-Terminal konfigurieren und damit auf ein anderes Board zugreifen.
schon lange ![]()
schau mal in den Thread:
RunCPM v6.6 habe ich nun (in schlafloser Nacht) für mein Pyboard v1.1 erstellt.
Zum Glück ist bei dem Board von v6.1 zu v6.6 nicht so viel zu tun.
Musste nur beim STM32 Duino Support aufpassen, weil die neueste v2.8.1 soll nur mit der Arduino IDE 2.x laufen und ich nutze noch die IDE v1.8.19
So bleibt es beim STM32 Duino bei v2.7.1
Dafür neben dem RunCPM-Versionsupdate auch die leicht neuere SdFat v2.2.3 (gegen vorher v2.2.2)
Ist aber wohl immer noch das einzige RubCPM-Pyboard ![]()
Ich selbst habe (noch) keinen Nei6502.
Ich bin mir nicht sicher ob der UEXT SDcard-Adaoter am Neo6502 arbeitet.
Olimex hat an vielen Platinen UEXT Anschlüsse, aber wenn die für den Neo6502 wäre kann ich mir nicht vorstellen dass es nur davon Restposten gibt.
Wenn Du auf Facebook einen Account hast, da gibt es auch eine Gruppe zum Neo6502.
Zu den DIPs kann ich aufgrund mangelnder Platine nichts sagen.
Ich weiss nur, dass die allerersten Platinen diese DIPs noch nicht drauf hatten.
Das Apple Ii uf2 ist z.B. auf
Info dazu:
USB-Storage kommt auch an den USB-Port wie das Keyboard....evtl per USB-Hub beides...
schau mal in die Doku zum Nei6502:
Nach meinen Arbeiten im Grafikprogramm und Internet-lesen sollte es ein
Intel 80C51FA
sein.
Der passt zum MCS-51, den gab es auch von "Marl Internation Limited" und Marl steht ja auch auf dem EPROM ![]()
Auch wenn kein 8051 auf der Liste mehr ist, war er wohl mal drauf:
ach ja - die Variable GLREV habe ich bei Linux/Windows in der globals.h definiert (nahe der RunCPM-Vsersionadefinuerung) und bei Microcontrollern in der .ino ziemlich nah am Dateianfang ![]()
Datenbrei Danke ![]()
Bei den meisten Screenshots habe ich im Terminal den Monospace-Font Iosevka
Aber auch JetBrains Mono ist sehr nett.
Ich suche auch immer neue Mono-Fonts...aber vorher hatte ich auch mal den Ubuntu Mono genommen.
Ich mag nur keine Serifen am Mono-Font.
Die schönen zusätzlichen Angaben habe ich durch Erweiterung der main.c (bei Linux/Windows) oder der .ino bei Platinen innerhalb der Arduino IDE.
Bei meinen Zusatzzeilen achte ich auf die Formatierung/Ausrichtung und setze zusätzlich ANSI-Codes ein.
Wenn Du Dir ein paar Source-Code Zeilen entleihen möchtest, dann schau Dir mal Source-Code von meinem GitHub auf https://github.com/guidol70
an ![]()
Die Statuszeile vor dem Prompt findest Du als CCPHEAD in der globals.h
Mir war der normale Bootscreen etwas zu eintönig und zu schade für das tolle RunCPM ![]()
main.c
_console_init();
_clrscr();
_puts("CP/M Emulator \e[1mv" VERSION "\e[0m by \e[1mMarcelo Dantas\e[0m\r\n");
_puts("----------------------------------------------\r\n");
_puts(" running on [\e[1mWindows 32 Bit \e[0m]\r\n");
_puts(" compiled with [\e[1mmingw32-GCC v14.2.0 \e[0m]\r\n");
_puts(" compiled by [\e[1mGuido Lehwalder \e[0m]\r\n");
_puts(" Revision [\e[1m" GLREV "\e[0m]\r\n");
_puts("----------------------------------------------\r\n");
_puts("BIOS at [\e[1m0x");
_puthex16(BIOSjmppage);
// _puts(" - ");
_puts("\e[0m]\r\n");
_puts("BDOS at [\e[1m0x");
_puthex16(BDOSjmppage);
_puts("\e[0m]\r\n");
_puts("CCP " CCPname " at [\e[1m0x");
_puthex16(CCPaddr);
_puts("\e[0m]\r\n");
#ifdef FILEBASE
_puts("FILEBASE is [\e[1m");
_puts(FILEBASE);
_puts("\e[0m]\r\n");
#endif
#if BANKS > 1
_puts("Banked Memory [\e[1m");
_puthex8(BANKS);
_puts("\e[0m]banks\r\n");
#else
_puts("Banked Memory [\e[1m");
_puthex8(BANKS);
_puts("\e[0m]bank\r\n");
#endif
_puts("----------------------------------------------");
Alles anzeigen
globals.h
auch hier gibt's noch was in der Richtung:
und
Hier - ohne root aber mit Termux -
RunCPM v6.6 auf/für Android.
Muss man sich aber für sein Smartphone mit Termux compilieren...
Seit ca. 2 Monaten gibt es einen neuen Part zum ESPectrum-Projekt (Spectrum-Emulator auf dem VGA32),
der einen Amstrad CPC 464 bis 6128 und eine Floppy (.DSK./SNA-Support) emulieren kann.
Das Projekt ist auch auf X / Twitter unter @ZX_ESPectrum
Bis jetzt ist der CPCESP noch in der Alpha-Stage (v0.84.1) - aber da ich den CPC mag, habe ich mir das mal angesehen.
Bis jetzt gibt es den Source noch nicht, aber ein .bin File das man auf das VGA32 flashen kann.
In Windows mit folgenden Tool / Einstellungen:
oder dem esptool (Anleitung dazu auf dieser Seite)
esptool.py -p USB SERIAL DEVICE -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x0 CPCESP.0.84-1.bin
Zum Glueck (im Gegensatz zu manch anderen spanischen Emulatoren) hat dieser auch ein englisches Menue ![]()
wenn das ROM gleich ist dann ist evtl die Hardware auch gleich bis auf einen Platinen-Internen DIP-Switch oder sonstige Komponente die man abfragen kann und den (G)Erman Code ausfuehrt?
Sollte SHIFT @ sein soweit ich mich erinnere. Schau mal auf die Tasten, der Strich muss ja irgendwo aufgedruckt sein.
Na ja - bei dem aufgedruckten unterbrochenen Pipe kann man den fat mit einem Doppelpunkt : verwechseln ![]()