Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » LC-80 reloaded - Platinenlayout für Neuauflage » Themenansicht

Autor Thread - Seiten: [ 1 ] [ 2 ] [ 3 ] -4- [ 5 ] [ 6 ] [ 7 ] ... [ Letzte Seite ]
300
05.01.2016, 14:48 Uhr
Alwin

Avatar von Alwin


Zitat:
KK schrieb
...plus 2x13 Stiftleisten.



2x13? Waren das nicht nur 2x7 zumindest auf der Hauptplatine
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
301
05.01.2016, 14:56 Uhr
KK

Avatar von KK


Zitat:
Alwin schrieb
Waren das nicht nur 2x7 zumindest auf der Hauptplatine



Ähh... ja natürlich. 2x13 sind der User-Bus. Uff, doch nicht so viel Arbeit :-))
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
302
07.01.2016, 15:20 Uhr
Andreas



So, jetzt geht meiner auch.Der ist immer im Kreis gerannt, aber keine Anzeige.Auf dem Daten- und Adressbus war Leben laut Oszi. Erst ein EPROM voll mit NOP`s zeigte Auffälligkeiten. Adresse A1 und DB2 hatten Berührung an einem U224 durch einen ganz dünnen Lötfloh.
Meine Tastaturplatine ist auch eben eingetroffen.

Andreas.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
303
07.01.2016, 15:51 Uhr
KK

Avatar von KK

Na denn Glückwunsch zur Erweckung und zur Fehlerfindung!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
304
07.01.2016, 19:25 Uhr
Mobby5



Bei mir ist heute auch die Tastaturplatine eingetrudelt. Danke schön.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
305
07.01.2016, 21:14 Uhr
PeterSieg



Bei mir heute auch alles gut angekommen.

Besten Dank,
Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
306
07.01.2016, 21:21 Uhr
KK

Avatar von KK

Freut mich, danke für die Rückmeldungen!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
307
07.01.2016, 21:43 Uhr
holm

Avatar von holm

...kennt sich hier Jemand vielleicht mit der Anfertigung von Tastaturfolien aus?
Ich habe mal kurz gegoogelt, es gibt da mehrere Anbieter die auch von Kleinserien schwafeln,
evtl. ist ja Sowas interessant?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
308
08.01.2016, 09:26 Uhr
KK

Avatar von KK

Prinzipiell schon. Welche Preise rufen die auf?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
309
08.01.2016, 10:15 Uhr
holm

Avatar von holm

..das beißt sich die Katze in den Schwanz, die wollen bei ner Preisanfrage sofort wissen welche Stückzahl (das kennst Du selber)...und die Frage von mir hattest Du unbeantwortet gelassen :-)

Ich habe doch noch gar niemanden konkreten im Auge gehabt, aber Tastaturfolie Druck liefert mehrere verschiedene Ergebnisse.

Einer meiner ehemaligen Chefs hat eine Werbefirma, über den kann ich sicherlich so eine Art Aufkleber anfertigen lassen, die Frage bleibt die Eignung/Lebensdauer der Folie für diesen Zweck.
Spezielle Tastaturfolien haben u.U. auch Prägungen usw, man kann da ziemlich variieren. Erfahrungen habe ich wie in der Mail angedeutet damit auch Keine und alles Andere neben einer Folientastatur bzw. einer Tastaturfolie über den Stößeln der RAFI Taster wird sicherlich zu teuer (wobei man sich über die Erstellung der ALU Platte für die Tastatur z.B. bei Schäffer auch noch Gedanken manchen kann..auch hier im Forum haben Leute CNC Fräsen so viel ich weiß...)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 08.01.2016 um 12:35 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
310
08.01.2016, 10:55 Uhr
KK

Avatar von KK

Zu den Stückzahlen kann ich nichts sagen, das kommt auf den Bedarf an. Wir könnten jetzt in die Runde werfen:

"Möchte jemand eine originalgetreue Tastaturfolie für den LC?"

aber da kommt sicher die Frage "Was kostet das?". Glaube aber nicht, daß bei diesen kleinen Stückzahlen weniger als 10€ rauskommen.
Ich habe auch keinerlei Erfahrungen mit solchen Tastaturfolien und wie man den Unterbau dafür konstruieren muß. Vermutlich müßten die Kappen der Stößel (die RAFI-Stößel sind für sowas vorgesehen) bündig mit der Platte abschließen.

Normale Aufkleber werden sicher nicht oder zumindest nicht auf Dauer funktionieren. Das wird sich schnell abgreifen oder gar reißen.

Ich habe momentan zu wenig Zeit, um mich damit zu befassen. Also wenn einer der Mitleser Ideen hat oder Kapazitäten zur Fertigung, bitte melden, kreative Mitarbeit ist erwünscht ;-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
311
08.01.2016, 17:12 Uhr
ambrosius



Könnte man nicht mit einem Grafikprogramm ein Layout erstellen, spiegeln und auf eine normale Folie, vornehmlich für Laserdrucker, drucken? Da man sie mit der bedruckten Seite nach hinten montiert, dürfte sich der Aufdruck auch nicht 'abgreifen'. Ich muß mal ein paar Versuche starten.
--
Viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
312
08.01.2016, 18:13 Uhr
KK

Avatar von KK

Ja klar, das geht. Was Holm meint, ist aber nicht die "Hintergrund"-Beschriftung, sondern eine Folie, die auch über die eigentlichen Taster geht. Die RAFI-Stößel sind sogar dafür bestimmt, müßten aber mit ihren Köpfen plan zur Deckplatte abschließen. Die Folie könnte man dann mit dem originalgetreuen Layout des LC-80 drucken lassen, also eckige Tasten und so.
Solche Folien mit Stößeln drunter findet man z.B. an manchen Fernbedienungen:

https://www.conrad.de/medias/global/ce/5000_5999/5900/5910/5913/591328_RB_00_FB.EPS.jpg

Mir persönlich reicht mein Prototyp, aber bei genügnend Interessenten könnte man beim Profi anfragen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
313
08.01.2016, 19:58 Uhr
ambrosius



Alles klar, dann habe ich das falsch verstanden. Bin noch beim bestücken ...
--
Viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
314
08.01.2016, 20:38 Uhr
Alwin

Avatar von Alwin

hab meine Tastatur auch fertig


--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
315
08.01.2016, 20:50 Uhr
felge1966

Avatar von felge1966

@alwin

Was hast du eigentlich alles auf die Eproms gepackt?
Normalerweise müsste doch einer ausreichen.

Gruß Jörg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
316
08.01.2016, 21:03 Uhr
Alwin

Avatar von Alwin


Zitat:
felge1966 schrieb
@alwin

Was hast du eigentlich alles auf die Eproms gepackt?
Normalerweise müsste doch einer ausreichen.

Gruß Jörg



Eprom1: Monitor Original
Eprom2: Monitor LC80.2
Rest paar Progs von Volkers Homepage

Hatte nur paar Testeproms gebrannt. Die Monitore würden auch in einen Eprom passen, aber das haut dann ohne Modifikation nicht mit umschalten hin. müsste dann nen kleinen Schalter nachrüsten. aber sind ja genug Eprom Steckplätze da.
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
317
09.01.2016, 10:52 Uhr
KK

Avatar von KK


Zitat:
Alwin schrieb
hab meine Tastatur auch fertig



Tipp-Tipp Hurra! ;-)


Zitat:
felge1966 schrieb
Was hast du eigentlich alles auf die Eproms gepackt?
Normalerweise müsste doch einer ausreichen.



Abwarten, was in nächster Zeit noch kommt. Die erste speziell für den LC-80ex geschriebene Software, eine Routine zum Laden und Sichern über die serielle Schnittstelle, ist schon per Mailverteiler unterwegs. Der Verdienst geht an Rollo, der auch die Pionierarbeit an der SIO geleistet hat. Danke an ihn!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
318
09.01.2016, 11:14 Uhr
holm

Avatar von holm

Ich warte noch auf die bestellten Tasten...

..und was fangen wir dann an? TinyBasic? 12K TDL Basic?

:-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 09.01.2016 um 11:20 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
319
09.01.2016, 11:24 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
..und was fangen wir dann an? TinyBasic? 12K TDL Basic?



Wie wärs mit Tiny-BSD? ;-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
320
09.01.2016, 11:29 Uhr
madnex1966



Alles eingetroffen!!!! Vielen Dank
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
321
09.01.2016, 11:34 Uhr
KK

Avatar von KK

Keine Ursache.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
322
09.01.2016, 12:19 Uhr
holm

Avatar von holm


Zitat:
KK schrieb

Zitat:
holm schrieb
..und was fangen wir dann an? TinyBasic? 12K TDL Basic?



Wie wärs mit Tiny-BSD? ;-)



Na dann mach mal die nächste Platinenversion mit MMU...



Edit:

Habe gerade noch diesen Fred hier gefunden, ist schon älter aber offensichtlich noch aktuell..

Tastatur aus Plexiglas?

https://www.mikrocontroller.net/topic/301411#new

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 09.01.2016 um 14:02 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
323
09.01.2016, 14:10 Uhr
holm

Avatar von holm

Ich habe mal unter http://www.tiffe.de/Robotron/PATB/ das Palo Alto 8080 Basic abgeworfen, in PATB.Z80 habe ich die Menmonics von 8080 auf Z80 umgemodelt. Das Zeuch ist angepaßt worden um unterhalb des SID Debuggers auf CP/M zu laufen. Das müßte man durch die entsprechenden IO-Routinen für die SIO ersetzen und die Adreßlage für RAM/ROM anpassen. Ich habe noch keine Tastatur dran und am LC80 mit Tastatur ist keine SIO..also gehts bei mir erst mal nicht sinnvoll weiter...

Der Mensch hier
http://stardot.org.uk/forums/viewtopic.php?f=3&t=9821

hat scheinbar noch eine erweiterte Version mit Floatingpoint Arithmetik gefunden ..nur falls Jemand Auslastungsprobleme hat :-)

Das 12K Zapple Basic (TDL) lungert hier herum:

http://www.tiffe.de/Robotron/Zapple-Basic/

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 09.01.2016 um 14:12 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
324
09.01.2016, 17:14 Uhr
Alwin

Avatar von Alwin

Kurze Frage:

Sind die kleinen Programme aus dem Archiv von Volkers Homepage grundsätzlich auf jeder Adresse lauffähig? Oder haben die feste Sprungadressen? Hatte nur mal eins probiert und das lief auf verschiedenen Adressen.
Frage deshalb, weil ich einige Programme in 2764 unterbringen möchte.
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
325
10.01.2016, 09:34 Uhr
KK

Avatar von KK

Gute Frage. Müßte man in den Quellcode reinschauen. Einfach im RAM ausprobieren.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
326
10.01.2016, 10:17 Uhr
KK

Avatar von KK

Ich habe stichprobenartig nachgeschaut, eigentlich dürften die Programme nicht auf anderen Adressen laufen, weil CALLs auf den eigenen Code und diverse Labeldefinitionen enthalten sind.
Aber, das ist gar kein Problem. Da die Quellcodes immer mit dabei sind, mußt du nur mit ORG die vorgesehene Startadresse festlegen und neu assemblieren. Scheitern könnte es noch, wenn im Programm Speichervariablen verwendet werden, die lassen sich im ROM natürlich nicht beschreiben.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
327
10.01.2016, 10:21 Uhr
Alwin

Avatar von Alwin

Ja da hast du recht, ein paar Programme laufen nach dem neuassemblen normal, aber einiges geht halt nicht. Manches startet zwar, aber geht dann nicht weiter.
Hilft dann nur Laden per SIO.

Das Schachprogramm von der Exportversion läuft übrigens.
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
328
10.01.2016, 10:59 Uhr
PeterSieg



Nur falls ihr Spaß daran habt. HIer gibt es noch buzzword.
Passt evtl. ja noch mit rein..

http://petersieg.bplaced.net/?LC80_Lerncomputer_der_DDR

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
329
10.01.2016, 12:36 Uhr
Enrico
Default Group and Edit



Zitat:
PeterSieg schrieb
Nur falls ihr Spaß daran habt. HIer gibt es noch buzzword.
Passt evtl. ja noch mit rein..

http://petersieg.bplaced.net/?LC80_Lerncomputer_der_DDR

Peter



Das stimmt aber nicht ganz.
Z80 PIO und 8255 sind ganz was anderes in Sachen "PIO".
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
330
10.01.2016, 14:48 Uhr
dm



@KK,
Zuerst möchte ich mich bei dir und bei Rollo für die gute Dokumentation bezüglich der SIO und Speichern und Laden über die serielle Schnittstelle, bedanken.
Erste Tests ergaben folgendes Ergebnis. 1. Nach dem Ladeaufruf mit A000, werden die Daten übertragen und enden mit der Ausgabe RST 38. Ist das richtig??
Wenn ich in den Adressbereich überprüfe, sind die Daten richtig geladen.
Die Eingabe A003 bzw. A006 und EX, führt zum Programmabbruch mit der Ausgabe RST 38. Ich habe noch keinen Ansatz, welche Ursache dies bewirkt.
Mein LC80ex ist mit folgenden Speicher ausgerüstet, 4k-RAM U224, S1- 2764 (0), S3-6264 (4), S4- 2764 (A).
Kann das Werkzeug "V.24 Transceiver" von Rollo, mit veröffentlichen werden?

MFG
Dieter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
331
10.01.2016, 16:01 Uhr
Pollyplay




Zitat:
Alwin schrieb
... Hatte nur mal eins probiert und das lief auf verschiedenen Adressen.
Frage deshalb, weil ich einige Programme in 2764 unterbringen möchte.


Bitte mal das erste posting anschauen.
http://www.robotrontechnik.de/html/forum/thwb//showtopic.php?threadid=12960

Ich würde zu dem hier bereits Geschriebenen vermuten, dass dann, wenn die Startadresse nicht gleich der Einsprungsadresse ist, das Programm nicht laufen kann.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
332
10.01.2016, 16:54 Uhr
KK

Avatar von KK

@Dieter
Der Dank für alles rund um die SIO gebührt allein Rolf, ich habe da keine Aktie dran.
Den rst38 Effekt konnte ich nur beim Buschendorf-Monitor beobachten, ich habe aber noch nicht eruiert, warum. Mit dem originalen LC80-Monitor funktioniert es wie vorgesehen. Die V24-Software von Rolf schicke ich dir (und auf Anfrage anderen Interessenten) per Mail.

Dieser Beitrag wurde am 10.01.2016 um 16:54 Uhr von KK editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
333
10.01.2016, 22:17 Uhr
Alwin

Avatar von Alwin

hab heut mal paar Roms erstellt und bei mir getestet.
Hatte in der Textdatei vergessen anzugeben, das bei Benutzung von Sockel3+4 (Schach) der Systemtakt auf 1/2 zu stellen ist.

https://www.dropbox.com/s/5wa82gfne70j08k/LC80Eproms.zip?dl=0

Leider laufen nicht alle vorhandenen Progs im Rom, sodaß die Auswahl nicht ganz so groß war. Aber ich habe meine 5 Sockel alle für verschiedene Systeme gefüllt.
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex

Dieser Beitrag wurde am 11.01.2016 um 06:22 Uhr von Alwin editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
334
10.01.2016, 23:12 Uhr
holm

Avatar von holm

Ich habe mich mal eine Weile mit L80 herumgeärgert, das Ding dann in den Arsch gekickt und Linkmt genommen:

Quellcode:


PALO ALTO TINY BASIC V3.0ON LC80EX
OK
>10 FOR I = 0 TO 20
>20 PRINT I,I*I
>30 NEXT I
>40 STOP
>LIST
  10 FOR I = 0 TO 20
  20 PRINT I,I*I
  30 NEXT I
  40 STOP
OK
>RUN
       0       0
       1       1
       2       4
       3       9
       4      16
       5      25
       6      36
       7      49
       8      64
       9      81
      10     100
      11     121
      12     144
      13     169
      14     196
      15     225
      16     256
      17     289
      18     324
      19     361
      20     400
OK
>PRINT SIZE
   10698
OK
>



Den Fehler mit dem fehlenden Leerzeichen werde ich evtl. noch beheben können.
Das Basic ist niedlich, aber dem fehlt noch sowas wie peek und poke damit man
damit die Peripherie ansprechen kann.. ma gucken.

..heute habe ich keine Lust mehr.
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
335
11.01.2016, 07:04 Uhr
KK

Avatar von KK

@Holm

Du hast tatsächlich Basic auf den LC80 portiert? Erstaunlich, ich dachte das ist ein Scherz.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
336
11.01.2016, 07:46 Uhr
holm

Avatar von holm

...ja freilich..so eine herausragende Leistung ist das ja wohl auch nicht. Ich habe mehr mit dem ätzenden Microsoft Linker gekämpft als mit dem Basic.

Ich habe noch eine weiter entwickelte Version gefunden und werde mich mal damit befassen.

BTW: was ist eigentlich der Grund der doppelten Adressierung des esrten Roms bei F000 (oder so)
mit diesem Nand Gatter? Ist das Kunst oder kann das weg?

Die Taktfrequenzen für die SIO sind Mist. Falls Du noch mal ne neue Version baust müssen wir da was ändern..
Für solche Sachen wie das Basic wäre es natürlich angebracht irgendwo recht viel zusammenhängenden RAM zu haben, gibts hier Leute die bei den vorhandenen Programmen "gut in der Materie stehen" und die Befindlichkeiten kennen? Es hat angesichts der Diodenmimik nicht viel Sinn wenn man für jede Software die Adreßdecodierung ändern muß. Ich habe jetzt 8K Ram ab 0x3000 und einen 8K Rom ab 0xc000...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 11.01.2016 um 07:52 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
337
11.01.2016, 09:21 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Ich habe noch eine weiter entwickelte Version gefunden und werde mich mal damit befassen.



Dann müßten nur noch eine alphanumerische Anzeige und eine vollwertige Tastatur dran, damit man mit dem BASIC auch arbeiten kann.


Zitat:
holm schrieb
BTW: was ist eigentlich der Grund der doppelten Adressierung des esrten Roms bei F000 (oder so)
mit diesem Nand Gatter? Ist das Kunst oder kann das weg?



Jetzt wo du fragst.. erschließt sich mir bei näherer Betrachtung auch nicht ganz. Ich hatte das so übernommen, ohne mir weiter Gedanken drüber zu machen. Habe eben mal die Simulation angeworfen, die Verbindung zum "F"-Ausgang des AD3 getrennt und die Gattereingänge parallel geschaltet. Negative Auswirkungen sind nicht festzustellen, die Decodierung funktioniert weiterhin richtig. Gut, daß wir drüber gesprochen haben, wird in die nächste Platinenauflage einfließen.


Zitat:
holm schrieb
Die Taktfrequenzen für die SIO sind Mist. Falls Du noch mal ne neue Version baust müssen wir da was ändern..



Was genau ist daran Mist? Erklär mal.


Zitat:
holm schrieb
Für solche Sachen wie das Basic wäre es natürlich angebracht irgendwo recht viel zusammenhängenden RAM zu haben



Die maximale Ausbaustufe sind 28K, wenn zusätzlich zu den 2114-Bänken auf Sockel 3-5 jeweils ein 6264 steckt. Entsprechend gejumpert ergibt sich ein zusammenhängender Adressbereich von 2000-8FFFH. Für den ROM verbleiben dann noch 16K, aufgeteilt auf jeweils einen 2764 in den Sockeln 1 und 2. Es wäre vom Layout des JP6 her sinnvoll, dem Sockel 1 die Adressen 0000H und 1000H zu spendieren und dem Sockel 2 C000H und D000H. Genau dieses Szenario hatte ich im Kopf, als ich den JP6 layoutet habe. Zur Erinnerung, die ROMs des LC80e nutzen genau diese Bereiche (außer D000H).
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
338
11.01.2016, 11:40 Uhr
holm

Avatar von holm

Anzeige und Tastatur ..
..da haben Leute indessen Terminals erfunden die man über eine SIO anknüppern kann.

>Was genau ist daran Mist? Erklär mal.

Naja, erstens ist es seltsam das sich die Baudrate je nach gejumpertem Takt ändert und zweitens sind die erzeugbaren Frequenzen doof.

Die SIO braucht für Asynchronbetrieb die 16-fache Taktfrequenz der Baudrate, also z.B. für 9600 Baud 9600*16=153600 Hz. Dummerweise funktionieren CTCs als Zeitgeber auch nur mit dem minimalen Vorteiler 16 selbst wenn man dann die Zeitkonstante 1 laden kann. Das heißt also wir müssen die 153600 Hz nochmal mit 16 multiplizieren = 2457600 Hz ...wasn Zufall...

Damit sind 9600 Baud bei 2,4576Mhz Takt die höchste erzeugbare Baudrate, mit der Zeitkonstante 2 kann man dann 4800 Baud erzeugen usw..
Bei den beim LC80 vorhandenen Takten (3,6864 und 1,8432 und 0,9216 Mhz) kommen wir aber mit den Baudraten in Teufels Küche. Ich habe den Laden derzeit mit 1,8432Mhz laufen, wenn man das 2 mal durch 16 Teilt bekommt man 7200 Baud :-| ..die nächste erzeugbare und brauchbare Baudrate ist 2400 Baud bei einem Vorteiler von 3.

Andererseits kann man mit einem CTC ja nicht nur "zeitgeben" sondern auch zählen, man kann ihn also mit einem externen Takt versorgen der aber maximal die Hälfte seiner Taktfrequenz betragen darf. Das wird z.B. in einer P8000 gemacht (sicher woanders auch), dort gibt es einen DL074 der den Takt halbiert und dann auf den CTC schiebt, der seinerseits die Taktfrequenzen für die SIOs erzeugt. Mit den 0.9216 Mhz Takt die wir verfügbar haben sollten damit wenn als CTC Takt benutzt 9600 Baud bei einem Teiler von 96 möglich sein und 19200 bei Teiler von 48. dazu muß man den CTL/TRG0 (z.B.) dann mit den 0,9Mhz verbinden...
Mit der CPU Taktfrequenz hat das alles nur sekundär zu tun, die SIO kann etwas was fast keine der heute üblichen Implementationen kann (auch Atmel UART nicht), sie kann selbständig mit den Modemcontrolsignalen wackeln wenn sie die Schnautze voll hat und damit Überläufe verhindern, genauso geht sie auch mit dem Kommunikationspartner um und hält an wenn er die Nase voll hat (WR3 D5)

...denke mal bei der Baterriegestützten RAM Fassung über den Einsatz z.B. 62256/M5M5256 mit 32K nach...die Diodenmimik wäre dann aber ziemlicher Huckauf weil Fitz. Das wäre die komplette obere Hälfte das Adreßbereiches, A15=H und MREQ=L würde als Decoder ausreichen...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 11.01.2016 um 11:42 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
339
11.01.2016, 13:47 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
..da haben Leute indessen Terminals erfunden die man über eine SIO anknüppern kann.



Ist das nicht etwas oversized für einen Lerncomputer, da brauchts doch wieder ein zusätzliches Gerät? Was ich mir durchaus vorstellen könnte, wäre ein LCD am User-Bus und eine PC-Tastatur, die über einen Wandler an der SIO hängt. Der brachliegende Port A ließe sich dafür gleich sinnvoll nutzen.


Zitat:
holm schrieb
Naja, erstens ist es seltsam das sich die Baudrate je nach gejumpertem Takt ändert und zweitens sind die erzeugbaren Frequenzen doof.



Wenn die Baudrate unabhängig vom CPU-Takt sein soll, müßte man die SIO aus einem separaten Taktgeber speisen. Das ist praktisch nicht mal problematisch, weil die Pins auf Stiftleisten herausgeführt sind. Kleines Platinchen draufstöpseln und fertsch. Damit kannst du deine Baudraten beliebig einstellen. Aber du mußt bedenken, daß der Zeichenstrom auch vom LC verarbeitet werden muß. Was nützt dir Baudrate ohne Ende, wenn die CPU nicht hinterher kommt? Bei Versuchen mit meiner kleinen Testroutine im Loopback-Modus und 921Khz war bei 9600 Baud Ende. Die CPU hat dabei nichts weiter gemacht als Zeichen zu empfangen und gleich wieder rauszuschieben. Hatte sie etwas mehr zu tun, z.B. das Zeichen mit Hilfe von DAK2 parallel auf dem Display anzuzeigen, mußte ich bis auf 600 Baud runtergehen, um einen fehlerfreien Datenstrom zu erhalten.
Rollo hat während der Programmierung seiner Load/Save Routine ähnliche Erkenntnisse gewonnen, 1200 Baud ist die Obergrenze für stabilen Betrieb mit dem Standardtakt. Selbst wenn man den CPU-Takt auf 4MHz erhöht, würden also nicht mehr als 4800 Baud gehen.




Zitat:
holm schrieb
...denke mal bei der Baterriegestützten RAM Fassung über den Einsatz z.B. 62256/M5M5256 mit 32K nach...die Diodenmimik wäre dann aber ziemlicher Huckauf weil Fitz. Das wäre die komplette obere Hälfte das Adreßbereiches, A15=H und MREQ=L würde als Decoder ausreichen...



Könnte man machen, ja. Aber wäre eine ziemliche Baustelle, weil die A13 und A14 zum S5 verlegt und dafür erstmal Platz geschaffen werden müßte, denn da ist einiges im Weg. Wenn das jemand unbedingt will, durchtrennt er die Leiterbahn an Pin 1 und 26, schafft die Verbindung zur CPU/A13/A14 mit "Layer K3" Drahtstrippen und baut sich eine Decoderspinne oder verlötet die Dioden gleich auf der Leiterseite.

Klar kann man noch viel ändern und verbessern, aber da stellt sich auch die Frage nach der Sinnhaftigkeit. Das Ding ist als primitiver Lerncomputer gedacht und nicht als Workstation. Mit den bisherigen Modifikationen ist die Ausstattung -für diesen Verwendungszweck- im Vergleich zum Ur-LC80 doch schon ziemlich üppig. Noch mehr Um- und Ausbau würde meines Erachtens nach den Rahmen sprengen, denn dann kann man gleich einen KC nehmen oder einen völlig neuen Z80-Rechner bauen ;-)

Dieser Beitrag wurde am 11.01.2016 um 13:52 Uhr von KK editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
340
11.01.2016, 14:18 Uhr
holm

Avatar von holm


Zitat:
KK schrieb

Zitat:
holm schrieb
..da haben Leute indessen Terminals erfunden die man über eine SIO anknüppern kann.



Ist das nicht etwas oversized für einen Lerncomputer, da brauchts doch wieder ein zusätzliches Gerät? Was ich mir durchaus vorstellen könnte, wäre ein LCD am User-Bus und eine PC-Tastatur, die über einen Wandler an der SIO hängt. Der brachliegende Port A ließe sich dafür gleich sinnvoll nutzen.



Naja, über Sowas denken wir viel später nach, im Endeffekt ist das auch nur ein Terminal.
Ich denke das auch kaum Jemand heute noch ohne "zusätzliches Gerät" aka PC mit Assembler und dafür mit Handbuch unterwegs ist ...


Zitat:


Zitat:
holm schrieb
Naja, erstens ist es seltsam das sich die Baudrate je nach gejumpertem Takt ändert und zweitens sind die erzeugbaren Frequenzen doof.



Wenn die Baudrate unabhängig vom CPU-Takt sein soll, müßte man die SIO aus einem separaten Taktgeber speisen. Das ist praktisch nicht mal problematisch, weil die Pins auf Stiftleisten herausgeführt sind. Kleines Platinchen draufstöpseln und fertsch. Damit kannst du deine Baudraten beliebig einstellen. Aber du mußt bedenken, daß der Zeichenstrom auch vom LC verarbeitet werden muß. Was nützt dir Baudrate ohne Ende, wenn die CPU nicht hinterher kommt?



Quatsch!


Zitat:


Bei Versuchen mit meiner kleinen Testroutine im Loopback-Modus und 921Khz war bei 9600 Baud Ende. Die CPU hat dabei nichts weiter gemacht als Zeichen zu empfangen und gleich wieder rauszuschieben. Hatte sie etwas mehr zu tun, z.B. das Zeichen mit Hilfe von DAK2 parallel auf dem Display anzuzeigen, mußte ich bis auf 600 Baud runtergehen, um einen fehlerfreien Datenstrom zu erhalten.
Rollo hat während der Programmierung seiner Load/Save Routine ähnliche Erkenntnisse gewonnen, 1200 Baud ist die Obergrenze für stabilen Betrieb mit dem Standardtakt. Selbst wenn man den CPU-Takt auf 4MHz erhöht, würden also nicht mehr als 4800 Baud gehen.




Ich habs doch erklärt.
Es gibt erst mal keinen Zusammenhang zwischen der Baudrate und der über die Schnitte gehenden Datenmenge pro Zeit.
Mach mal einen Erklärbär wie der 8 Bit Teil einer P8000 es schafft 4 serielle Schnittstellen mit SIO zu bedienen, nebenbei die Kommunikation zum 16 Bit Teil aufrecht zu erhalten und die Floppies anzusteuern...mit 4Mhz Takt und 19200 Baud auf den Schnittstellen.....?

Sowohl Rollo als auch Du sitzen da einem Bären auf.
Die SIO kann das, besser als andere mir bekannte Uarts, Write Register 3 Bit D5 angucken!


Zitat:


Zitat:
holm schrieb
...denke mal bei der Baterriegestützten RAM Fassung über den Einsatz z.B. 62256/M5M5256 mit 32K nach...die Diodenmimik wäre dann aber ziemlicher Huckauf weil Fitz. Das wäre die komplette obere Hälfte das Adreßbereiches, A15=H und MREQ=L würde als Decoder ausreichen...



Könnte man machen, ja. Aber wäre eine ziemliche Baustelle, weil die A13 und A14 zum S5 verlegt und dafür erstmal Platz geschaffen werden müßte, denn da ist einiges im Weg. Wenn das jemand unbedingt will, durchtrennt er die Leiterbahn an Pin 1 und 26, schafft die Verbindung zur CPU/A13/A14 mit "Layer K3" Drahtstrippen und baut sich eine Decoderspinne oder verlötet die Dioden gleich auf der Leiterseite.

Klar kann man noch viel ändern und verbessern, aber da stellt sich auch die Frage nach der Sinnhaftigkeit. Das Ding ist als primitiver Lerncomputer gedacht und nicht als Workstation. Mit den bisherigen Modifikationen ist die Ausstattung -für diesen Verwendungszweck- im Vergleich zum Ur-LC80 doch schon ziemlich üppig. Noch mehr Um- und Ausbau würde meines Erachtens nach den Rahmen sprengen, denn dann kann man gleich einen KC nehmen oder einen völlig neuen Z80-Rechner bauen ;-)



...Workstation mit Z80? :-)

Du hast Da einen SBC gebaut der CMOS RAM hat (und mehr als 32K kann!) und mit 4 Mhz unterwegs sein kann. Des Weiteren hat er 2 serielle Schnittstellen, eine Statusanzeige und eine kleine Tastatur, Piepsen kann er auch.

..was ist daran falsch?

Ich nörgele ja auch nicht sondern sage was ich für zweckmäßig halte. Ein Z1013 hat u.U auch nicht mehr RAM, keine serielle Schnittstelle, weniger Takt und dafür ein Fernseherdisplay das sich heute kaum noch einer antun kann, trotzdem gibts da CP/M für ...
Es war früher durchaus üblich das die Console eines CP/M Rechner über eine UART in einem Terminal endete (ADM31, VT100 etc..). Ich kann also überhaupt keinen "primitiven Lerncomputer" erkennen, auch
wenn ich die Crossentwicklung unter cpmsim im Fenster eines UNIX Rechners bewerkstellige..


So what?


Ich habe auch mit wenigen verlegten Drahtbrücken auf dem Board kein Problem (kaufe eh nicht noch Eins) wenn mehr Speicher drauf zu stöpseln geht.
Mit den Taktraten und den CTC Eingängen befasse ich mich noch, ich bastele erst mal an einer anderen (besseren) Tiny-Basic Version und die ärgert mich vorläufig noch..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 11.01.2016 um 17:53 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
341
11.01.2016, 15:04 Uhr
holm

Avatar von holm

...so, wers mal ausprobieren möchte:

http://www.tiffe.de/Robotron/LC80ex/

Das Bin File in einen EPROM ab 0xc000 brennen und einen 6264 auf 0x3000 basteln, so das sich ein zusammenhängender RAM ab 2400 ergibt.

Die SIO über den Jumper mit CTC Kanal 0 verbinden und das Basic auf 0xc000 starten, das sollte sich dann auf der seriellen mit 2400/8/N/1 melden.
Mit 'BYE' kann man aus dem Basic auf 0 springen, d.h. wieder zurück in den Monitor der dann auch die Anzeige wieder an macht. In der Zelle 2418 steht die Adresse aber der das Basic Programm beginnt und in der Zelle 2416 der erste unbenutzte Speicherplatz. Der Für Basic verwendbare Speicher geht bis 4DC8.
Ein Bisschen was kann ich da sicher noch raus quetschen wenn ich den eigenen Stack des Interpreters in die Gegend verlege in der auch der LC80 Monitor denkt seinen Stack abzulegen. Mal sehen.
Den im Original vorhandenen RTC Kram habe ich vorerst ausgebaut, wir haben ja keine RTC.
Man kann den Interpreter auf 0xc002 warm starten, das Programm ist dann noch im Speicher.

Das Original gibts hier: http://p112.sourceforge.net/

Wobei man dem "Entwickler" der das unter die GPL gestellt hat mal einen Knüppel zwischen die Beine werfen sollte, er selbst hats nämlich "geklaut" und mit der GPL infiziert was so nicht Rechtens ist.
Es handelt sich um eine Weiterentwicklung des Palo Alto Tiny Basic von Li-Chen Wang, ursprünglich geschrieben für den 8080. Das Teil verwendet nur verhältnismäßig wenig der Z80 Features, der gesamte Schattenregistersatz ist unbenutzt und es sind auch noch etliche JP statt JR drin.

Das PDF zum TinyBasic habe ich mit ins Verzeichnis auf dem Webserver geschmissen, es kann inp, out, peek und poke, damit kann man also auch z.B. den 2. SIO Kanal programmieren oder ein Epromer Programm schreiben :-)

Assemblieren: m80 lc80bas.erl,lc80bas.prn=lc80bas
Linken: linkmt lc80bas=lc80bas

Evtl hat Rollo ja Lust seine Routinen für Specihern und Laden mit ins Basic zu bauen, sollte kein größeres Problem sein. Die Console Handler für die SIO sind eh mit drin, Call auf 0xc941 initialisiert SIO und CTC, Ausgabe aus A über Call auf 0c8f4, Eingabe call auf 0xc91e, kommt mit gesetztem Z zurück wenn kein Zeichen da, anderenfalls Zeichen in A.


Nochwas: Capslock ist wichtig, das Ding löffelt nur Großbuchstaben.

Have Fun!


Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 11.01.2016 um 17:56 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
342
11.01.2016, 15:54 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Ich habs doch erklärt.
Es gibt erst mal keinen Zusammenhang zwischen der Baudrate und der über die Schnitte gehenden Datenmenge pro Zeit.



Soweit habe ich das schon verstanden.


Zitat:
holm schrieb
Mach mal einen Erklärbär wie der 8 Bit Teil einer P8000 es schafft 4 serielle Schnittstellen mit SIO zu bedienen, nebenbei die Kommunikation zum 16 Bit Teil aufrecht zu erhalten und die Floppies anzusteuern...mit 4Mhz Takt und 19200 Baud auf den Schnittstellen.....?



Keine Ahnung, der LC war wie gesagt schon mit dem bloßen Hin- und Herschieben von Bytes bei 14400 überfordert.


Zitat:
holm schrieb
Write Register 3 Bit D5 angucken!



Ich hatte bisher mit der Z80 SIO nichts zu tun und muß mir das erstmal in Ruhe reinziehen. Was brauchts für die Flußsteuerung eigentlich an Leitungen nach draußen? Der MAX ist momentan mit RxD/TxD/CTS/RTS voll belegt, für einen zweiten ist kein Platz. Wenn ich recht verstehe, wird aber auch DCD benötigt?


Zitat:
holm schrieb
Ich nörgele ja auch nicht sondern sage was ich für zweckmäßig halte.



Gewiss, ich verstehe das auch so. Ich will aber auch keine größeren Umbauarbeiten mehr vornehmen. Kleine, mit wenig Aufwand realisierbare Verbesserungen sind OK, aber für sowas wie den 62256 müßte ich wieder zu weit reinreißen ;-)

Dieser Beitrag wurde am 11.01.2016 um 15:55 Uhr von KK editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
343
11.01.2016, 16:12 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
...so, wers mal ausprobieren möchte:


Wie geil is das denn? BASIC aufm LC80. Vor 30 Jahren bin ich rumgerannt wie ein Blöder, um einen Rechner zu kaufen, mit dem ich BASIC programmieren kann. Aber es gab ja nüscht, der LC80 war eigentlich ein Notlösung. Und nun spricht er BASIC, wer hätte das geglaubt!

Danke Holm!

PS: Takt auf 1,8 MHz stellen nicht vergessen!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
344
11.01.2016, 16:30 Uhr
millenniumpilot

Avatar von millenniumpilot

Hallo KK, und ich sitze jetzt hier wie auf Kohlen :-)

Mein Dank an alle Beteiligten, die hier ihr Bestes für das Fortbestehen des LC80 geben.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
345
11.01.2016, 16:35 Uhr
KK

Avatar von KK


Zitat:
millenniumpilot schrieb
Hallo KK, und ich sitze jetzt hier wie auf Kohlen :-)



Kann ich verstehen ;-) Wirst aber noch ein wenig aushalten müssen, bis die SIO-Problematik geklärt ist, da muß vielleicht noch was geändert werden.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
346
11.01.2016, 16:49 Uhr
KK

Avatar von KK

Wichtiger Hinweis!

Stolperfalle Adressdecodierung bei 8Kx8 Speichern

Die Zuweisung von zwei Basisadressen hat einen kleinen Haken. Wegen der nicht ganz vollständigen Decodierung müssen immer eine gerade und eine ungerade Basisadresse kombiniert werden (z.B. 3000H und 4000H oder 0000H und B000H). Zwei gerade oder zwei ungerade Adressen (z.B. 3000H und 5000H oder 0000H und A000H) führen zu Adressierungsfehlern. Es wird dann immer nur eine Hälfte des Speichers angesprochen, je nach Adresse die oberen oder unteren 4K. Das ist auch der Grund, weshalb bei mir die Laderoutine von Rolf zuerst nicht funktionierte. Ich hatte sie nämlich zusammen mit dem Monitor in einen 28C64 gebrannt und diesen auf 0000H und A000H gejumpert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
347
11.01.2016, 17:42 Uhr
holm

Avatar von holm


Zitat:
KK schrieb

Zitat:
holm schrieb
...so, wers mal ausprobieren möchte:


Wie geil is das denn? BASIC aufm LC80. Vor 30 Jahren bin ich rumgerannt wie ein Blöder, um einen Rechner zu kaufen, mit dem ich BASIC programmieren kann. Aber es gab ja nüscht, der LC80 war eigentlich ein Notlösung. Und nun spricht er BASIC, wer hätte das geglaubt!

Danke Holm!

PS: Takt auf 1,8 MHz stellen nicht vergessen!



:-)

Wenn es mich rafft portiere ich noch das große TDL Basic (12K), allerdings benutzt das wohl zumindest teilweise selbst modifizierenden Code, ich weiß nicht ob ich es hinkriege das es im ROM läuft.

3,6Mhz Takt geht auch (wen man die richtigen Rechner-ICs drin hat), dann ist die Baudrate halt 4800..

Apropos Baudrate, versuche mal eine Möglichkeit für ein Jumper mit einem Draht von CLK/TRG0 zu 0.9Mhz vorzusehen..

Wenn man die komische Adreßleitung für den oberen Bereich auftrennt könnte der Tiny-Basic Interpreter
an das obere Ende rutschen und unterhalb Platz für einen zusätzlichen RAM frei machen. Momentan geht der RAM von 3000h (2400H) bis 4FFF, man könnte also noch 2000h dazu stecken mit einem weiteren 6264, allerdings brauchts dann einen neuen ROM, die Speichergröße wird nicht dynamisch ermittelt.

Gibts zur Speicheraufteilung andere Vorschläge? Ich würde das Basic u.U. noch mal anpassen wenn was Anderes zweckmäßiger wäre.. ich habe die ganze Geschichte mit den Monitoren/Schachprogrammen nicht im Kopf, habe derzeit außer dem BASIC nur die 1. Monitorversion drauf. Rollos Mimik läßt sich ja im Prinzip auch an das Ende das BASICs verschieben und mit in den ROM bruzeln.


..übrigens: ich habe gemerkt das die lc80bas.mac auf dem Webserver nicht die aktuelle Version war, die die das geholt haben bitte nochmal saugen..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 11.01.2016 um 17:48 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
348
11.01.2016, 18:26 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Wenn man die komische Adreßleitung für den oberen Bereich auftrennt könnte der Tiny-Basic Interpreter
an das obere Ende rutschen und unterhalb Platz für einen zusätzlichen RAM frei machen.



Das ist auch bei den bestehenden Platinen nur ein unkomplizierter, minimalinvasiver Eingriff. Dazu muß die Leitung zwischen Pin12 des AD2 und Pin7 des AD3 durchtrennt und eine Brücke zwischen Pin12 und Pin13 des AD2 hergestellt werden (siehe Bild). Nur zum Abgreifen des "F"-Ausgangs am AD3 muß man sich irgendwie behelfen, bei den neuen Platinen arbeite ich eine Stiftleiste ein oder verlege gleich zum JP6.


Zitat:
holm schrieb
Gibts zur Speicheraufteilung andere Vorschläge?



Empfehlenswert wäre die Reservierung des kompletten Bereiches von 2000-8FFFH für RAM. 0000-1FFFH ist bereits für die Monitore vergeben und C000-CFFFH für den Schach-ROM. Wären also noch 9000-BFFFH sowie D000-FFFFH frei. Dabei immer schön die o.g. Problematik (Post #346) bei 8Kx8 Speichern im Blick behalten.


Dieser Beitrag wurde am 11.01.2016 um 18:27 Uhr von KK editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
349
11.01.2016, 19:18 Uhr
Alwin

Avatar von Alwin

Welcher Pin am AD3 ist für F? Pin7?
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex

Dieser Beitrag wurde am 11.01.2016 um 19:19 Uhr von Alwin editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
350
11.01.2016, 19:18 Uhr
holm

Avatar von holm


Zitat:
KK schrieb

Zitat:
holm schrieb
Wenn man die komische Adreßleitung für den oberen Bereich auftrennt könnte der Tiny-Basic Interpreter
an das obere Ende rutschen und unterhalb Platz für einen zusätzlichen RAM frei machen.



Das ist auch bei den bestehenden Platinen nur ein unkomplizierter, minimalinvasiver Eingriff. Dazu muß die Leitung zwischen Pin12 des AD2 und Pin7 des AD3 durchtrennt und eine Brücke zwischen Pin12 und Pin13 des AD2 hergestellt werden (siehe Bild). Nur zum Abgreifen des "F"-Ausgangs am AD3 muß man sich irgendwie behelfen, bei den neuen Platinen arbeite ich eine Stiftleiste ein oder verlege gleich zum JP6.



Guck mal nach ob Du evtl. statt der Stifte an der Jumperleiste die jetzt zu den Fassungen gehen (S1..)
nicht gleich noch eine Anzahl Dioden unterbringen kannst die man dann jumpern kann.. (bin zu faul drüber zu brüten, abgesehen vom Platz. Es wird nicht unmöglich viele zweckmäßige Möglichketen geben).

Zumindest mir sind die notwendigen Änderungen schon klar und ich würde für die F-Leitung evtl. einfach eine andere unbenutze Leitung "umwidmen". Man steckt doch nicht wirklich immer andere Speicher da drauf.


Zitat:



Zitat:
holm schrieb
Gibts zur Speicheraufteilung andere Vorschläge?



Empfehlenswert wäre die Reservierung des kompletten Bereiches von 2000-8FFFH für RAM. 0000-1FFFH ist bereits für die Monitore vergeben und C000-CFFFH für den Schach-ROM. Wären also noch 9000-BFFFH sowie D000-FFFFH frei. Dabei immer schön die o.g. Problematik (Post #346) bei 8Kx8 Speichern im Blick behalten.





Hmm.. das erzeugt aber ein ganz schönes Kuddelmuddel im Speicherraum. Mal sehen, evtl. sehe ich mir mal den Schachrom an ob man den nicht umpatchen kann damit er wo anders (wo?)auch läuft (absolute Adressen bearbeiten). Hat das Ding evtl. schon mal Jemand disassembliert? Wenn das Schachprogramm läuft ist es doch im Endeffekt Jacke wie Hose wo, nicht so beim Basic, da will man viel Speicher zusammenhängend...

Soll ich den Interpreter ans obere Ende umlagern (das der nur noch mit dem Hardwarepatch wie von Dir angedeutet) läuft? Wenn ja, sollte man sich (Rollo?, ich?) auch Gedanken um die Lademimik machen damit die gleich mit in den Rom paßt.. oder halt load und save im Interpreter nachrüsten (geht!). Auch ein Autostart von BASIC Code aus einem ROM wäre evtl. nicht blöde, dann steuern Deine LC80ex demnächst Aquarien und Gewächshäuser und solches Zeuch...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 11.01.2016 um 19:22 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
351
11.01.2016, 19:23 Uhr
holm

Avatar von holm


Zitat:
Alwin schrieb
Welcher Pin am AD3 ist für F? Pin7?


Jepp.

15-8
14-9
....
9-E
7-F

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 11.01.2016 um 19:24 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
352
11.01.2016, 19:39 Uhr
Alwin

Avatar von Alwin


Zitat:
holm schrieb

Zitat:
Alwin schrieb
Welcher Pin am AD3 ist für F? Pin7?


Jepp.

15-8
14-9
....
9-E
7-F

Gruß,

Holm



Thx, hab ich mir gedacht. habe ja auch den Leiterzug aufgetrennt.
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
353
11.01.2016, 20:27 Uhr
holm

Avatar von holm

>Ich hatte bisher mit der Z80 SIO nichts zu tun und muß mir das erstmal in Ruhe reinziehen. Was brauchts für die Flußsteuerung eigentlich an Leitungen nach draußen? Der MAX ist momentan mit RxD/TxD/CTS/RTS voll belegt, für einen zweiten ist kein Platz. Wenn ich recht verstehe, wird aber auch DCD benötigt?

...Du kannst dich entkrampfen, RTS/CTS sollten völlig ausreichen. DCD, DTR und DSR braucht man dafür nicht unbedingt, das sind Modem Cotrol Signale die man wirklich nur braucht wenn man ein Modem anhängen möchte.
Mir war das ein Bisschen spät eingefallen das ich Deine Frage nicht beantwortet hatte :-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
354
11.01.2016, 20:45 Uhr
Alwin

Avatar von Alwin

Frage: ist das normal, das beim 2764 der obere und untere Bereich bei gewissen Adressen vertauscht ist?
Beispiel: habe Sockel5 auf 4-F oder 4-D gejumpert und auf 4000 ist der Inhalt des unteren Bereichs zu sehen und auf F000 der obere. bei 1-A oder 1-E ist der obere Inhalt auf der niedrigeren Adresse.
Ich nehme an, das die geraden Adressen immer denselben Platz im Eprom belegen?
--
...Z1013, KC87, KC85/5, KC Compact, C64, PC1715+W, AC1-2010, LC-80ex
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
355
11.01.2016, 20:48 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Guck mal nach ob Du evtl. statt der Stifte an der Jumperleiste die jetzt zu den Fassungen gehen (S1..)
nicht gleich noch eine Anzahl Dioden unterbringen kannst die man dann jumpern kann..



Hatte ich ursprünglich bereits ins Auge gefaßt und wieder verworfen, weil kein Platz. Wenn überhaupt, ist das nur mit SMD zu realisieren und bei dem Gedanken stellen sich mir die Nackenhaare auf. Ich habe mir vor dem Wochenende schon Gedanken über platzsparende Diodenjumper gemacht. Die enthalten zwar auch SMD-Dioden, aber dort störts nicht. Wenn morgen die Reichelt-Lieferung kommt, stell ich Bilder rein.


Zitat:
holm schrieb
Soll ich den Interpreter ans obere Ende umlagern (das der nur noch mit dem Hardwarepatch wie von Dir angedeutet) läuft? Wenn ja, sollte man sich (Rollo?, ich?) auch Gedanken um die Lademimik machen



Von mir aus ja, neue Platinen haben den "F-Bug" sowieso nicht mehr. Die Laderoutine umzuziehen, ist null Problemo. Da muß nur die ORG-Anweisung im ASM-Code angepaßt werden.


Zitat:
holm schrieb
dann steuern Deine LC80ex demnächst Aquarien und Gewächshäuser und solches Zeuch...



Das wärs noch. Aber wer weiß, Retro ist voll in, die NASA sucht ja auch wieder ASM-Progger :-))
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
356
11.01.2016, 20:51 Uhr
KK

Avatar von KK


Zitat:
Alwin schrieb
Frage: ist das normal, das beim 2764 der obere und untere Bereich bei gewissen Adressen vertauscht ist?



Ja, siehe oben (Post #346). Das muß beim Brennen berücksichtigt werden.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
357
11.01.2016, 20:53 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
...Du kannst dich entkrampfen, RTS/CTS sollten völlig ausreichen.



OK, umso besser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
358
12.01.2016, 15:04 Uhr
holm

Avatar von holm

An der Speicheraufteilung sollten wir irgendwie noch eine Weile grübeln.. ich bin hier bereits an der nächsten Bastelei (hab eigentlich gar keine Zeit..)

Es gibt von der Firma TDL recht leistungsfähige Monitore und Basic Interpreter für den Z80 (Zapple Monitorm Zapple Basic). Der 12K Basic Interpreter aus dem Buch von Rolf Dieter Klein ist recht bekannt und war auch schon zu DDR Zeiten hier im Osten auf Homecomputern unterwegs (10 Digit Floatingpoint). Etwas weniger bekannt ist, das es da noch eine 8K Version gibt und weil die so schön in einen 2764 passen sollte dachte ich..

Jedenfalls habe ich irgendwo bei Dave Dunfield den "Dump" eine Paper Tapes aka Lochstreifen gefunden und das Ding habe ich gerade am Wickel. Auf dem Lochstreifen ist modifizierter Intel Hex Code und zwar hat das TDL Hex Record Format (http://www.retrotechnology.com/restore/tdlz801k_loader.txt) Informationen zusätzlich wo der Code beim Laden auf eine andere Adresse gepatcht werden muß und kann das automagisch beim Laden bewerkstelligen....*grusel*..

Ich habe jetzt erst mal mit Offset 0 die Daten extrahiert, setze mich jetzt an die Offsetmimik, mal sehen ob ich das Ding an den LC80ex anpassen kann.
Wenn aber dieser vollwertige Basic Interpreter läuft wäre es schade wenn wird den RAM so fragmentieren das wir keinen Spaß mehr an dem Rechnerchen haben. Von einem 4Mhz Z80 Basic Rechner hätte ich zu DDR Zeiten wohl auch noch geträumt.. Ich empfehle also wirklich über S5 und 32K RAMs nachzudenken...

...wozu mache ich das eigentlich?

:-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
359
12.01.2016, 15:51 Uhr
Enrico
Default Group and Edit



Zitat:
holm schrieb

.....
...wozu mache ich das eigentlich?

:-)

Gruß,

Holm



Langweile?

Vergiss nicht, dass Dir da auch noch Netzwerk fehlt.
--
MFG
Enrico

Dieser Beitrag wurde am 12.01.2016 um 15:51 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
360
12.01.2016, 15:53 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
wäre es schade wenn wird den RAM so fragmentieren das wir keinen Spaß mehr an dem Rechnerchen haben. Von einem 4Mhz Z80 Basic Rechner hätte ich zu DDR Zeiten wohl auch noch geträumt.. Ich empfehle also wirklich über S5 und 32K RAMs nachzudenken...



Wenn wir die Bereiche wie oben vorgeschlagen aufteilen, hängt der gesamte bestückbare RAM (28K) zusammen. Man könnte 9000-9FFFH noch mit reservieren, dann reichts auch für optionale 32K.
Wie oben schon angedeutet, ist das Umlayouten des Sockel5 für 62256 recht aufwendig. Mit dem Cuttermesser und zwei Schaltdrähten kann es bei Bedarf aber ganz einfach erledigt werden (sieht dann sogar richtig 80er Jahre retro aus). Oder alternativ mit einer RAM-Karte am CPU-Bus. Also nicht böse sein, ich möchte da nicht mehr reinreißen ;-)


Zitat:
holm schrieb
...wozu mache ich das eigentlich?



Wie wir alle vermutlich, weils Spaß macht und der Weg das Ziel ist.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
361
12.01.2016, 19:31 Uhr
holm

Avatar von holm

Hier mal zum Schnuppern die Doku vom 8K Interpreter:

http://www.tiffe.de/Robotron/Zapple-Basic/Zapple_8k_BASIC_Users_Manual.PDF

Da liegt auch das "dechiffrierte" Binary für eine Ladeadresse von 200h:

http://www.tiffe.de/Robotron/Zapple-Basic/tdl8kbas-200h.bin

Das aus dem Paper Tape extrahierte TDL-Hex File mit variabler Ladeadresse:

http://www.tiffe.de/Robotron/Zapple-Basic/tdl8kbas.thex
(sieht beim reingucken kaputt aus, isses aber nicht, die Prüfsummen stimmen :-) )

und der originale Paper Tape Dump von Dave Dunfield:

http://www.tiffe.de/Robotron/Zapple-Basic/TDL8KBAS.PT

..nur für den Fall das ein Anderer da auch mal gucken will...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 12.01.2016 um 19:33 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
362
13.01.2016, 09:30 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Hier mal zum Schnuppern die Doku vom 8K Interpreter:



Sieht recht umfangreich aus. Die Bedienung erinnert mich irgendwie an unixoide Editoren. :-))
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
363
13.01.2016, 10:39 Uhr
holm

Avatar von holm

..kann ich verstehen. Allerdings war Edlin unter Dos auch nicht anders und unter CP/M war das auch üblich, PDP11 dito.

Ich habe schon gemerkt das Du Basic mit kompletten Computer mit Tastenuhr und Guckfenster verbindest, deswegen sind Dir Screeneditoren geläufig.
..das hat allerdings mit der Programmiersprache an und für sich nichts zu tun, früher hatten Computer serielle Terminals, gerne auch mit einer Schreibmaschine als Bildschirm. Wenn man auf so einem Ding editieren muß kommt man zu Zeileneditoren ..oder kannst Du Dir eine Cursorpositionierung auf einer Schreibmaschine vorstellen? :-)

Das 12K Basic ist noch umfangreicher. Beide waren auf Computern wie IMSAI oder ALTAIR im Einsatz.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
364
13.01.2016, 13:16 Uhr
holm

Avatar von holm

Ich hatte hier noch einen Z80 Emuf rumliegen den ich mal als leere Platine bekommen hatte und etwas aufgebohrt habe. Da werkelt ein 6Mhz Z80, 2PIOs, eine SIO 32KROM und 64KRAM, der ROM ist abschaltbar. Da drauf hatte ich schon 2014 mal den Zapple Monitor portiert, es ar also relativ easy das 8K Basic da mal drauf zu verhackstücken:


Quellcode:

�mem 0fa00h
ok
starting memmove
jump to monitor entry

Zapple V1.1
>g200


HIGHEST MEMORY?

52926 BYTES FREE

Welcome to BASIC, Ver. 1.3
<TDL Z-80 8-K VERSION>

>READY



...es funktioniert, damit habe ich wohl diesen Lochstreifen-Dump richtig dechiffriert.
Da das Ding ja nun auch Floatingpoint kann:

Quellcode:

list

10 PI=4*ATN(1)
20 RAD=PI/180
30 FOR G=0 TO 90
40 PRINT "Grad:",G,"sin:",SIN(G*RAD)
50 NEXT G
60 END


>READY
run
Grad:          0            sin:           0
Grad:          1            sin:           .0174525
Grad:          2            sin:           .0348995
Grad:          3            sin:           .052336
Grad:          4            sin:           .0697565
Grad:          5            sin:           .0871558
Grad:          6            sin:           .104528
Grad:          7            sin:           .121869
Grad:          8            sin:           .139173
Grad:          9            sin:           .156435
Grad:          10           sin:           .173648
Grad:          11           sin:           .190809
Grad:          12           sin:           .207912
Grad:          13           sin:           .224951
Grad:          14           sin:           .241922
Grad:          15           sin:           .258819
Grad:          16           sin:           .275637
Grad:          17           sin:           .292372
Grad:          18           sin:           .309017
Grad:          19           sin:           .325568
Grad:          20           sin:           .34202
Grad:          21           sin:           .358368
Grad:          22           sin:           .374607
Grad:          23           sin:           .390731
Grad:          24           sin:           .406737
Grad:          25           sin:           .422618
Grad:          26           sin:           .438371
Grad:          27           sin:           .453991
Grad:          28           sin:           .469472
Grad:          29           sin:           .48481
Grad:          30           sin:           .5
Grad:          31           sin:           .515038
Grad:          32           sin:           .529919
Grad:          33           sin:           .544639
Grad:          34           sin:           .559193
Grad:          35           sin:           .573576
Grad:          36           sin:           .587785
Grad:          37           sin:           .601815
Grad:          38           sin:           .615662
Grad:          39           sin:           .62932
Grad:          40           sin:           .642788
Grad:          41           sin:           .656059
Grad:          42           sin:           .669131
Grad:          43           sin:           .681999
Grad:          44           sin:           .694658
Grad:          45           sin:           .707107
Grad:          46           sin:           .71934
Grad:          47           sin:           .731354
Grad:          48           sin:           .743145
Grad:          49           sin:           .75471
Grad:          50           sin:           .766044
Grad:          51           sin:           .777146
Grad:          52           sin:           .788011
Grad:          53           sin:           .798636
Grad:          54           sin:           .809017
Grad:          55           sin:           .819152
Grad:          56           sin:           .829038
Grad:          57           sin:           .838671
Grad:          58           sin:           .848048
Grad:          59           sin:           .857167
Grad:          60           sin:           .866026
Grad:          61           sin:           .87462
Grad:          62           sin:           .882948
Grad:          63           sin:           .891007
Grad:          64           sin:           .898794
Grad:          65           sin:           .906308
Grad:          66           sin:           .913546
Grad:          67           sin:           .920505
Grad:          68           sin:           .927184
Grad:          69           sin:           .933581
Grad:          70           sin:           .939693
Grad:          71           sin:           .945519
Grad:          72           sin:           .951057
Grad:          73           sin:           .956305
Grad:          74           sin:           .961262
Grad:          75           sin:           .965926
Grad:          76           sin:           .970296
Grad:          77           sin:           .97437
Grad:          78           sin:           .978148
Grad:          79           sin:           .981627
Grad:          80           sin:           .984808
Grad:          81           sin:           .987688
Grad:          82           sin:           .990268
Grad:          83           sin:           .992546
Grad:          84           sin:           .994522
Grad:          85           sin:           .996195
Grad:          86           sin:           .997564
Grad:          87           sin:           .99863
Grad:          88           sin:           .999391
Grad:          89           sin:           .999848
Grad:          90           sin:           1

>READY



Soweit, so gut.
Bevor das Ding auch auf dem LC80 tut habe ich noch etwas Arbeit. Der Interpreter möchte im Bereich von 0x100-0x1ff einen Pufferspeicher haben, ist aber sonst selbst verschieblich, bzw zumindest von mir auf jede sinvolle Adresse zu platzieren.
Um den Puffer-RAM aber woanders hin zu legen muß ich mit dem Disassembler ran, da zumindest das 8K Basic nicht als Quelle vorliegt. Das 12K Basic hat ähnliche Restriktionen, will aber wohl 200Bytes am Anfang, aber da gibts ein Disassembler Listing.

So .. jetzt werde ich erst ma lein Bisschen arbeiten..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 13.01.2016 um 13:36 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
365
13.01.2016, 14:19 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
So .. jetzt werde ich erst ma lein Bisschen arbeiten..



Psst, nicht stören, den Holm hat das BASIC-Fieber gepackt. :-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
366
13.01.2016, 15:38 Uhr
KK

Avatar von KK

Ich war auch nicht faul und habe die Platine überarbeitet. Vorläufiges Changelog:

- Fehler im Bestückungsdruck korrigiert
- Bohrungen angepaßt, kein Nachbohren oder Abknipsen mehr nötig
- die Lötaugen am Quarz vergrößert, bei Bedarf kann dort größer gebohrt werden
- an der Stiftleiste von SIO Port A ein Lötauge für den Systemtakt hinzugefügt
- zum Abgriff der CTC CLK/TRGx-Pins einen neuen Jumper JP13 hinzugefügt
- Ausfräsung an der Sub-D-Buchse, damit bestimmte Stecker besser passen
- den "F-Bug" beseitigt, die 2114-Bänke werden jetzt nur noch auf 2000H selektiert
- Leitungsführung an BU3 (DIN-Buchse) geändert, sodaß bei Problemen mit dem LCR-C die Verbindung zwischen Pin3 und Pin5 nebenwirkungsfrei getrennt werden kann
- und die Belegung am Adressjumper JP6 gemäß der neuen Überlegungen zur Speicheraufteilung geändert:

"9" und "A" sind nicht mehr am JP6 vertreten, können aber weiterhin am AD3 abgegriffen werden. Hinzugekommen ist "E", das jetzt gemeinsam mit dem frei gewordenen "F" direkt neben "S2" liegt. "B", "C" und "D" sind umgezogen. Alles andere bleibt, wie es ist.



Winke, winke an die in der Warteschleife hängenden Leute, Version 2.0 der Platine geht noch diese Woche zum PCB-Hersteller ;-)

Ach ja, wegen der ungebrochenen Nachfrage muß ich leider den Preis verdoppeln...

Wie? Was? Häh???

Nee, Quatsch, Joke, veralbert... Natürlich bleibt es beim alten Preis. :-))
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
367
13.01.2016, 17:06 Uhr
holm

Avatar von holm

Quatsch Basic Fieber...

Du bist schuld, Du hast die Möglichkeiten des LC80 so weit ausgebaut das das geht. Ich habe nix dagegen wenn ein Anderer z.B. Forth portiert.

Mal was zu diesen Adreßjumpern...

Mir ist eingefallen das man da u.U. keine Stiftleisten einlöten sollte, sondern diese Präzisionsfassungskontakte. Dann lassen sich Drahtbrücken aber auch Dioden da reinstecken.
Das wiederum würde aber nahe legen das die zu den /CS Eingängen führenden Leitungen ggf. mehrere Lötaugen haben..

Was Denkst/Du Ihr darüber?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
368
13.01.2016, 17:53 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Mal was zu diesen Adreßjumpern...



Ja klar, das geht auch so. Ich muß dazu nicht mal was ändern, die Entscheidung liegt beim Bestücker. Und die Chipselects sind bereits auf zwei Stiften.

Aber gutes Timing, ich habe soeben kleine Diodenjumper gebastelt.
Bild 1:
Man nehme eine Buchsenleiste, schneide ein Stück ab und löte eine Minimelf SMD-Diode (hier BAT46) zwischen die Kontakte. Schrumpfschlauch drüber und Kathode markieren, fertig.



Bild 2:
Wie 1., nur mit 3-beiniger SMD-Diode (gemeinsame Anode, BAT54A). Markierung unnötig, kann nicht falsch rum gesteckt werden.



Der Dreibeiner eignet sich sehr gut dort, wo die gewünschten Adressen nebeneinander liegen, z.B. 0/1 oder 3/4.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
369
14.01.2016, 16:17 Uhr
ambrosius



Habe heute meine bestellten 6264 bekommen. TinyBasic läuft. Vielleicht noch eine Anregung für eine Layoutverbesserung: an der RS232-Buchse sollte vielleicht Rx und Tx vertauscht werden, um einen USB-Seriell-Konverter direkt stecken zu können. Bei meinen drei Stck verschiedener Typen mußte ich bei allen dreien immer einen Nullmodemadapter zwischenstecken. Hat da jemand andere Erfahrungen?
--
Viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
370
14.01.2016, 16:26 Uhr
holm

Avatar von holm

..ja, das habe ich auch schon gemerkt, die Belegung stimmt so herum nicht, jedenfalls nicht wenn das Ding mit einem 1:1 Kabel mit einem PC verbunden wird. Die Anschlußbelegung ist so richtig für einen Stecker und ein Nullmodemkabel mit 2 Buchsen, man kann allerdings keinen Stecker bestücken weil das 1 mit 5 vertauscht ist (usw).

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
371
14.01.2016, 16:31 Uhr
paulotto



da läßt sich doch sicherlich was schnitzen auf der Platine...

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
372
14.01.2016, 16:51 Uhr
KK

Avatar von KK

Nun, die Gretchenfrage lautet, ist der LC80 ein DTE oder ein DCE? Die derzeitige Belegung und Buchsenform (männlich) entspricht einem DTE, wie bspw. auch am PC. Wenn ich die Belegung umdrehe, muß auch eine weibliche Buchse dran und dies entspräche einem DCE (Modem).
Für die Verbindung mit einem PC und 1:1 Kabel wäre DCE wahrscheinlich günstiger, aber das gefällt vielleicht wieder jemand anderen nicht. Abstimmung? Wer ist für was?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
373
14.01.2016, 18:11 Uhr
holm

Avatar von holm

...bin für passend zum 1:1 Kabel und PC.

Bitte das Tiny-basic noch mal holen, hatte mich im Datum vertan.
Ich hatte das auch schon gemerkt aber bisher ist das nur ambrosius aufgefallen, hat das noch kein Anderer ausprobiert?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
374
14.01.2016, 18:35 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Ich hatte das auch schon gemerkt aber bisher ist das nur ambrosius aufgefallen, hat das noch kein Anderer ausprobiert?



Die Belegung als DTE ist eigentlich kein Fehler, die Anschaltung über ein Nullmodemkabel war so vorgesehen. Ich bin von der Überlegung ausgegangen, daß ein Computer gewöhnlich als DTE fungiert. Ambrosius war nur der Erste, der einen USB-Wandler direkt anstecken wollte und das geht natürlich nicht ohne Adapter.
Wie dem auch sei, die Änderung auf DCE macht in diesem Fall Sinn, weil wohl keiner ein Modem-Gerät am LC-80 betreiben wird und sich andererseits die Verbindung zu PCs vereinfacht. Die Platine habe ich bereits angepaßt und den Vermerk "DCE" dem Bestückungsdruck hinzugefügt.

Morgen will ich die Fertigung beauftragen. Also wenn noch jemanden was einfällt, bitte schnellstmöglich melden.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
375
14.01.2016, 21:03 Uhr
KK

Avatar von KK

Version 1 Platinen können auch auf DCE umgebaut werden. Dazu eine weibliche Sub-D-Buchse verwenden und die Verdrahtung gemäß dem Bild unten ändern.
CTS und RTS können so bleiben, weil sich die Spiegelung der Buchsenpins durch das 1:1 Kabel kompensiert. Masse muß auf die gegenüberliegenden Seite umziehen und TxD/RxD rücken jeweils einen Pin weiter in Richtung Platinenmitte.



Ich würde den Umbau aber nur bei noch nicht bestückten Platinen machen. Die Buchse wieder auszulöten, richtet eher mehr Schaden als Nutzen an.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
376
14.01.2016, 21:07 Uhr
S0C4



Hallo,

ist es noch möglich sich für eine Platine anzumelden?

gruss joerg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
377
14.01.2016, 21:18 Uhr
KK

Avatar von KK


Zitat:
S0C4 schrieb
ist es noch möglich sich für eine Platine anzumelden?



Ja natürlich. Wer gerne eine haben möchte, schreibe mir bitte eine PN (als E-Mail). Dazu mit angeben, ob auch eine Tastaturplatine gewünscht ist.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
378
15.01.2016, 18:02 Uhr
KK

Avatar von KK

So, die Platinen in der überarbeiteten Version V2 sind bestellt. Es wird ca. 2 Wochen dauern, bis ich sie geliefert bekomme. Aufgrund der Änderungen gibt es auch eine neue Stückliste, die unter www.lc80ex.de zum Download steht. Jawoll, ich war so frei, mir die Domain zu grapschen und werde in Zukunft alle mit dem Projekt zusammenhängenden Infos dort veröffentlichen. Die Verteilung per Mail wird auf Dauer zu anstrengend und hier im Thread gehen möglicherweise wichtige Infos zwischen den Postings unter. Die Diskussion soll natürlich trotzdem hier weitergeführt werden.
Auf der Seite ist momentan noch nichts weiter hinterlegt, in den nächsten Wochen folgen schrittweise Inhalte. Bitte vorläufig außer der Hauptseite nichts irgendwo verlinken, denn ich muß erst mal Struktur reinbringen.

Hinweis zum Material:
Ein LM358 hat den Test im Tapeinterface erfolgreich bestanden. Das Einlesen vom LCR-C klappte problemlos, ich habe aber noch keine Messungen zu Frequenzgang oder Signalform durchgeführt. Mit 25 Cent ist er jedenfalls eine kostengünstige Alternative zu AD822 oder LT1078.

Dieser Beitrag wurde am 15.01.2016 um 18:04 Uhr von KK editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
379
16.01.2016, 13:06 Uhr
holm

Avatar von holm

ambrosius hat versucht mein assemblieren des lc80bas.mac nachzuvollziehen und ist dabei auf Probleme gestoßen. Der M80 (ASM) meckerte imemr "No END Statement" obwohl das deutlich lesbar im Quelltext zu sehen ist.
Ich habe nun meine Krzikalla CP/M Mimik angeworfen, die Datei mit FTP11 da hin gezogen und das Problem ist das Selbe. Ein type lc80bas.mac brachte mir dann das Problem zu Vorschein, das sah nicht nach einer ordentlichen Quelldatei aus, sondern das war ein etwas formloses Teil..weil überall das Zeilenende <CR> fehlt.
Ich habe die Quelldatei (vom FTP Server) noch mal durch ein Programm namens unix2dos geleiert (das gehörte auch unter DOS mal zur Standardausstattung), das tauscht jedes <LF> am Zeilenende durch ein <CR><LF> aus ..und dann assembliert..die Probleme sind verschwunden.
Ich lege noch eine lc80bas.mac.dos mit auf den FTP server..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 16.01.2016 um 15:25 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
380
16.01.2016, 14:01 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Ich lege noch eine lc80bas.mac.dos mit auf den FTP server..



Die Syntax ist aber auch bei jedem Assembler anders. Ich wollte das mit dem ASIDE assemblieren, aber der erwartet bei den Labeldefinitionen mit EQU ein ":" hinter dem Label. Mit den IF/ENDIFs kommt der auch nicht klar.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
381
16.01.2016, 15:18 Uhr
holm

Avatar von holm

Ja, es gibt viele unbrauchbare Assembler..oder auch welche die keine Objekte erzeugen können oder nur absoluten Code bei direkter Ausgabe des Binaries..brauche ich nicht.
Schon das Bauen eines CP/M Bios erfordert so ziemlich zwangsläufig die Möglichkeit ein Binarie aus mehreren Objekten linken zu können. Ich wäre echt an einer Quelle des CP/M M80 (ASM) interessiert um den auf meinem Unix laufen lassen zu können.

Alternativ suche ich einen Crossassembler der bedinge Übersetzung, Macros und Strukturen beherrscht sowie Objektdateien zum Linken ausgeben kann.

Ich hatte schon mal was gefunden aber irgendwie fehlte da die Hälfte des Sourcecodes, nahe ran kommt der aus der Consolenszene stammende WLA-DX (WLA-Z80) aber der hat wieder komische Mechanismen on Board die für irgendwelche Memory-Module gedacht sind, die stören eher. Abgesehen davon assembliert der am 12K TDL Basic Sourcecode endlos (da stimmt was nicht).
Das U880 PLZ Zeuch unter Wega oder Udos funktioniert sicher auch, nur habe ich dafür keinen Emulator, entwicklen auf dem echten P8000 wäre so ziemlich Hardcore ...

Die DOS Assembler und noch schlimmer die Windowsdinger interessieren mich nicht, die sind nicht automatisierbar. Ich habe keinen Bock auf Mausklickorgien sondern möchte mit einem simplen "make clean, make" das Projekt neu bauen können.

Der M80 bzw. Robotron ASM ist "Referenz" und einer der Standard CP/M Tools. Die Befindlichkeiten anderer Assembler gehen mir deswegen so ziemlich am Pops vorbei. Wenn Jemand das unbedingt mit so einem Teil übersetzen will lege ich die Benutzung eines Präprozessors (cpp) oder eines Streameditors (sed) bzw. awk oder lex/yacc nahe:-)


BTW Karsten:

schade da Du mich wegen www.lc80ex.de nicht vorher gefragt hast, ich hätte Dir die Domain für lau gehostet. Bei Dir wären nur die Registrierungskosten aufgelaufen.

Gruß,
Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 16.01.2016 um 15:26 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
382
16.01.2016, 15:43 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
schade da Du mich wegen www.lc80ex.de nicht vorher gefragt hast, ich hätte Dir die Domain für lau gehostet. Bei Dir wären nur die Registrierungskosten aufgelaufen.



Ich hätte dich ganz sicher gefragt, wenn ich nicht schon einen Hostingvertrag zu laufen gehabt hätte und mich die Domain auch so nichts extra kostet ;-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
383
16.01.2016, 16:51 Uhr
holm

Avatar von holm

hier ist wieder so ein Mist:

Quellcode:

        CALL    EXPCHR  ;032DH
EXEDIM:         ;0CD0
        LD      BC,DIMLOP       ;0CC7H  ; stay in DIM
        PUSH    BC
        OR      0AFH            ; skipped Holm
        LD      (DIMFLG),A      ;0187H ???
        LD      B,(HL)
L0CDA:          ;0CDA
        CALL    CHALPH  ;078BH


0CD0  01C70CC5 F6AF3287  0146CD8B 07DA3903  *......2. .F....9.*
0CE0  AF4F3288 01CD0E07  3805CD8B 07380B4F  *.O2..... 8....8.O*
0CF0  CD0E0738 FBCD8B07  30F6D624 20093C32  *...8.... 0..$ .<2*



EXEDIM (oCD0) ist eine Einsprungadresse, die 2. ist 0CD5, dann sieht das so aus:

Quellcode:

0CD5    L0CD5:          ;0CD5
                XOR     A
0CD6            LD      (DIMFLG),A       ;0187H
0CD9            LD      B,(HL)
0CDA    L0CDA:          ;0CDA
                CALL    L078B   ;078BH



..jetzt muß ich gucken wie ich das darstellen kann damit der Assembler beide Labels sieht..


Quellcode:

EXEDIM:         ;0CD0
        LD      BC,DIMLOP       ;0CC7H  ; stay in DIM
        PUSH    BC
        DEFB    0F6H            ; OR 0AFH ...
FNDVAR: XOR     A               ; skipped Holm  find_var
        LD      (DIMFLG),A      ;0187H ???




Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 16.01.2016 um 16:57 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
384
17.01.2016, 22:40 Uhr
holm

Avatar von holm

...bis jetzt hats gedauert eine Assembler Quelle zu erstellen die nach Verschieben auf andere Startadressen auch identischen Binärcode wie dieser Verschiebemechanismus des TDLHex files erzeugt, ich habe also jetzt den Sourcecode für den 8K Interpreter. Da steckt tagelange Arbeit drin..
Jetzt kann ich anfangen mir Gedanken um ein anders Speicherlayout und damit den Port auf den LC80ex zu machen.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
385
18.01.2016, 07:17 Uhr
KK

Avatar von KK

Du kniest dich richtig rein, Respekt! Und Danke!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
386
18.01.2016, 22:45 Uhr
holm

Avatar von holm

..ja ich kniee bis zu den Ohren drin...

blöder Mist:


Quellcode:

HIGHEST MEMORY? 61440

12170 BYTES FREE

Welcome to BASIC, Ver. 1.3
<TDL Z-80 8-K VERSION>

>READY
10 rem
20 print 4*atn(1)
30 end
run

SYNTAX ERROR
>READY
goto 10

SYNTAX ERROR
>READY
goto 20
3.14159

>READY



Irgendwo steckt bei der initialisierung des Speichers noch ne Wanze drin, run geht nicht (syntax error) goto 10 get auch nicht (dito), goto 20 aber schon...

Das läuft übrigens schon auf dem lc80ex..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
387
19.01.2016, 09:29 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
..ja ich kniee bis zu den Ohren drin...



Man könnte auch sagen, du steckst knietief im Code. :-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
388
19.01.2016, 19:06 Uhr
millenniumpilot

Avatar von millenniumpilot

Hallo an alle "Erfahrenen",

sind alle 6264 SRAMs Pin- und Signalmäßig untereinander kompatibel?
Sprich, wären folgende 8K-RAMs für den LC80e geeignet?

einmal Wingshing WS6264LLPG-70
http://www.ebay.de/itm/310706054044

oder Sharp LH5164D-10L
http://www.ebay.de/itm/321220639779

oder bei Reichelt:
UTRON UT6264C
http://www.reichelt.de/6264-70/3/index.html?&ACTION=3&LA=446&ARTICLE=2676&artnr=6264-70


möchte ja schließlich Holms TinyBasic drauf laufen lassen. ;-)
Würde mich über eine Empfehlung sehr freuen.

Dieser Beitrag wurde am 19.01.2016 um 19:12 Uhr von millenniumpilot editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
389
19.01.2016, 19:19 Uhr
Rolly2



Die sind Pin-kompatibel und sollten funktionieren. Der Sharp hat 100ns die anderen beiden 70. Ob das im LC80ex reicht kann ich nicht beurteilen.


Andreas
--
wie man denkt, so lebt man!

Dieser Beitrag wurde am 19.01.2016 um 19:19 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
390
19.01.2016, 19:57 Uhr
holm

Avatar von holm

Die Geschwindigkeiten sind dicke ausreichend, die sollten Alle funktionieren.
Interessant finde ich die Ultron oben, ich verwette meinen Arsch (wenn Jemand den braucht) darauf das das ZMD Teile sind. Ich habe zwischen meinen 6516 RAMs indessen auch noch U6264D vom ZMD ebenfalls mit 70ns (C07) hergestellt 91/27 gefunden und mittlerweile 2 davon auf dem LC80ex.

Ultron ist ein alt bekannter Röhren-Relabeler, Ich habe diverses DDR Zeuch mit deren Label..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 19.01.2016 um 19:59 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
391
19.01.2016, 20:07 Uhr
millenniumpilot

Avatar von millenniumpilot

Hallo Holm,

die heißen aber laut Reichelt Utron, nicht Ultron.
Außer bei Reichelt habe ich zu diesem Typ aber nichts gefunden. Also werden es wohl dann die Wingshings werden.
Wobei ich bei der nächsten Reichelt-Bestellung mal einen Utron zur Ansicht mitbestelle.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
392
19.01.2016, 20:29 Uhr
holm

Avatar von holm

Na Wingshing klingt für mich auch nicht Vertrauenerweckender...

Ok, bei Uton vs. Ultron hatte ich Tomaten auf den Augen.

Wie wäre es wenn Du einfach keine kaufst und mal fragst ob ich Dir was abgeben möchte?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
393
19.01.2016, 20:31 Uhr
millenniumpilot

Avatar von millenniumpilot

;-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
394
19.01.2016, 20:42 Uhr
KK

Avatar von KK

Einen Wingshing habe ich neben zwei U6264 auch drauf. Bisher keine Auffälligkeiten.
Mal rein rechnerisch, bei 3,6864 MHz dauert eine Taktperiode 271 Nanosekunden. Die o.g. Speicher kommen also selbst bei 1/1 Taktrate nicht annähernd an ihre Grenzen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
395
20.01.2016, 12:37 Uhr
holm

Avatar von holm

Ich bräuchte mal Jemanden der ein Bissel Zeit hat und sich den Code der 8K Interpreters mal mit anguckt.

Per Definition ist der Interpreter selbst relozierbar, besteht aber auf einen Pufferspeicherbereich von 100-200Hex der an sich nicht verschieblich ist, das ist aber nicht das Problem so wie es aussieht.
Hinter dem Interpreter Code wird bei der Initialisierung ein Teil selbst überschrieben weil er nicht mehr notwendig ist und das ein paar Bytes Platz schafft (Seriennummer und Startinitialisierung).
Wenn ich versuche das zu ändern und den Begin das BASIC Rams etwas nach hinten verschiebe, spinnt das Ding und zwar in der oben schon berichteten Art mit dem nicht funktionierenden RUN bzw. Goto auf die erste Zeile (das ist für den Interp. weitgehend identisch). Irgendwie wird der Start des Basic Programms falsch ausgewertet und das scheint ein BUG und nicht beabsichtigt zu sein.
Putzig ist aber auch die Beschreibung des 8K Basics an dieser Stelle:

"In addition to the factor of relocatability, Zapple BASIC is ROMABLE. That is, it does not change any of its internal structure while operating, and therefore may be resident in ROM, PROM or protected memory."

Das liest sich lustig wenn man die oben beschriebene Initialisierung im Code sieht. :-|

Egal, ist hier Jemand dem die Mitarbeit dabei interessiert?
Bei mir wirds gerade Zeitmäßig wieder ein Bisschen eng, ich muß mich erst mal wieder um die indessen aufgestapelte Arbeit kümmern.

Günstig wäre dazu eine Hardware mit einer SIO, 64KRam und abschaltbarem Laderom bzw. ein entsprechender Emulgator :-)

Ich habe so eine aufgebohrte Z80-EMUF Platine mit der ich das mache auf die ich schon vor langer Zeit mal einen Zapple 2K Monitor gesetzt habe, dadurch läßt sich ganz hybsch im Speicher herum stochern.
Ich kann die ganzen Quellen auf den Webserver laden und beschreiben was wie läuft, kann mir das aber kneifen wenn es sowieso Keinen interessiert... ?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 20.01.2016 um 12:38 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
396
20.01.2016, 15:16 Uhr
KK

Avatar von KK


Zitat:
holm schrieb
Egal, ist hier Jemand dem die Mitarbeit dabei interessiert?



Prinzipiell schon. Zeitnah wäre allerdings schwierig, weil ich
a) keinen Plan habe, wie so ein BASIC-Interpreter arbeitet und ich mich deshalb erst reinarbeiten müßte sowie
b) mir aus den gleichen Gründen wie dir die Zeit dazu fehlt.

Rentner oder Millionär müßte man sein. :-~
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
397
20.01.2016, 17:59 Uhr
holm

Avatar von holm

Ich habs gefunden...so was fieses...


Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
398
20.01.2016, 18:01 Uhr
paulotto



dann laß mal hören...

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
399
20.01.2016, 20:13 Uhr
holm

Avatar von holm


Quellcode:

HIGHEST MEMORY?

16266 BYTES FREE

Welcome to BASIC, Ver. 1.3
<TDL Z-80 8-K VERSION>
>READY

10 PI=4*ATN(1)
20 FOR GRD=0 TO 360
30 PRINT GRD,"Wert: ",SIN(GRD*(PI/180))
40 NEXT GRD
50 END

>READY

run

0            Wert:           0
1            Wert:          .0174525
2            Wert:          .0348995
3            Wert:          .052336
4            Wert:          .0697565
5            Wert:          .0871558
6            Wert:          .104528
7            Wert:          .121869
8            Wert:          .139173
9            Wert:          .156435
10           Wert:          .173648
11           Wert:          .190809
12           Wert:          .207912
13           Wert:          .224951
14           Wert:          .241922
15           Wert:          .258819
16           Wert:          .275637
17           Wert:          .292372
18          ..




Das Ding holt die maximale Adresse aus dem Zapple Monitor mit dessen Memory-Sizing Programm
und als niedrigste Adresse legt es selber halt die der Seriennummer im Interpreter fest, also RAM der der Meinung des Programms nach überschrieben werden kann. So weit so schön. Das fiese ist aber, das die Speicherzelle unterhalb des niedrigsten BASIC-Speichers mit einer 0 initialisiert sein muß...


Quellcode:


        DEFB    0DH,0AH,0
A_BRK:          ;2074
        DEFB    0DH,0AH
        DEFB    '*BREAK'
        DEFB    0
DISPOS: DEFB    0               ; Start of Basic Memory, 0 is neccessary!
PRTSER:         ;207E
        CALL    PCRLF   ;0985H
        LD      HL,(SERIAL)
        CALL    PRNTHL  ;1ACDH



Auf den Trichter muß man erst mal kommen, das war ja disassembliert.. Das Label DISPOS gabs da vorher nicht.
Das Teil funktioniert nun erst mal und bei 4800 Baud begrenzt offensichtlich die serielle Schnittstelle die Ausgabegeschwindigkeit der Sinus Werte...
Zu tun ist noch genug, der Zeileneditor stürzt offensichtlich ab da das Teil nicht reagiert und dafür die Anzeige vom LC80 plötzlich "Start " anzeigt..mal gucken..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 20.01.2016 um 21:14 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: [ 1 ] [ 2 ] [ 3 ] -4- [ 5 ] [ 6 ] [ 7 ] ... [ Letzte Seite ]     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek