CBASIC unter CP/M
wurde von Digital Research 1981, 1982 entwickelt.
Ich habe noch keine Erfahrung mit dem Compiler.
Wer kann etwas beitragen zum Compiler CBASIC`
Gruß
retro
CBASIC unter CP/M
wurde von Digital Research 1981, 1982 entwickelt.
Ich habe noch keine Erfahrung mit dem Compiler.
Wer kann etwas beitragen zum Compiler CBASIC`
Gruß
retro
Hallo Leute,
da hat mich Detlef mal neugierig gemacht und ich habe mich ein wenig
mit CBASIC beschäftigt.
Hier eine kleine Demo.
Gruß
retro
Ich habe gerade mal versucht mit der DOS-Version von CBASIC unter DOS-BOX eines meiner alten Programme zu kompilieren.
Ich bekomme aber immer diesen Fehler beim Linken:
--------------------------------------------------
LINK-86 Linkage Editor Version 1.3
Serial No. 3120-3000-000166 All Rights Reserved
Copyright (C) 1982-1984 Digital Research, Inc.
--------------------------------------------------
OBJECT FILE ERROR 09
FILE: C:CB86.L86
RECORD # 0039
ITEM # 0001
Alles anzeigen
Mit dem Library-File CB86.L86 scheint irgendwas nicht zu stimmen.
Hat jemand die DOS-Version (Version 2.1) und kann mir mal diese Datei schicken?
Ich habe noch eine andere CB86 Version auf der Platte gefunden (Version 2.0). Damit habe ich mal eins der Demo-Programme kompiliert und bekomme den gleichen Fehler. Das gibt's doch nicht.
Ich versuche das gleich noch mal unter VirtualBox, aber ich kann mir nicht vorstellen, dass das an DOSBOX liegt. Kompilieren klappt ja einwandfrei.
EDIT: Grrr! Unter VirtualBox funktioniert es.
Ich habe mal meinen 6502 Unassembler angehängt. Den hatte ich für den CBM3032 geschrieben und dann später auf CBASIC umgeschrieben.
Ganz nett ist, dass der Compiler ein List-File mit dem erzeugten Assembler-Code schreibt.
Hallo Detlef,
das hast du gut gemacht.
Das habe ich gemeint mit eigenen Programme zeigen.
Ich habe unter CP/M mit meinen Z80(20Mhz) das Programm direkt übersetzen können.
Keine Fehler, Programm läuft.
Test mit einem Demo65.prg (C64 Programm) wurde übersetzt.
DIS65 1ST 32K (meine Sicherung)
DIS65 BAS 32K
DIS65 COM 28K
DIS65 REL 20K
DIS65 SYM 4K
Später werde ich meine selbst geschriebenen C64 Programme mal testen.
Das .BAS und das .LST File weichen in den Kopfzeilen vom Datum ab.
Sind es unterschiedliche Versionen?
Gruß
retro
Es kann sein, dass ich bei den Files unterschiedliche Versionen gemixt habt. Mich wundert nur, dass die Versionsnummer gleich ist.
Möglich, dass ich später mal das Datum angepasst habe, ohne wirklich an der Funktionalität was geändert zu haben.
Ich habe unter CP/M mit meinen Z80(20Mhz) das Programm direkt übersetzen können.
Das habe ich nie probiert. Ich habe nie mit der CP/M80-Version gearbeitet. Ich hatte damals nur die CP/M86 und die MS-DOS-Version. Und den Unassembler hatte ich nur mit der MS-DOS-Version getestet.
Schön, dass die Versionen untereinander so kompatibel sind und dass man Programme schreiben kann, die unverändert unter allen 3 Betriebsystemen laufen.
Hier noch ein Beispiel für den Aufbau der DEF-Datei des Unassemblers. Eine Doku gibt es nicht.
ZitatAlles anzeigen:T31.01.86
:USMB30.ASM
:LSMB30.LST
:XSMB30.CRF
:P6502
:O8000H
:C8000H,8068H
:D8069H,80EAH,H
:C80EBH,810EH
:D810FH,932AH,H
:DFF4BH,FFF9H,H
:DFFFAH,FFFFH,H
:E
Damit sagt man dem Unassembler, in welchen Bereichen Code und Daten enthalten sind. Und wie die Daten dargestellt werden sollen.
Ich habe ich bei fremden Programmen immer erstmal alles als Code definiert und sukzessive alle Daten-Bereiche indentifiziert. So lange, bis keine illegalen Opcodes und illegale Labels mehr vorhanden sind.
Alles anzeigenHier noch ein Beispiel für den Aufbau der DEF-Datei des Unassemblers. Eine Doku gibt es nicht.
ZitatAlles anzeigen:T31.01.86
:USMB30.ASM
:LSMB30.LST
:XSMB30.CRF
:P6502
:O8000H
:C8000H,8068H
:D8069H,80EAH,H
:C80EBH,810EH
:D810FH,932AH,H
:DFF4BH,FFF9H,H
:DFFFAH,FFFFH,H
:E
Damit sagt man dem Unassembler, in welchen Bereichen Code und Daten enthalten sind. Und wie die Daten dargestellt werden sollen.
Ich habe ich bei fremden Programmen immer erstmal alles als Code definiert und sukzessive alle Daten-Bereiche indentifiziert. So lange, bis keine illegalen Opcodes und illegale Labels mehr vorhanden sind.
So etwas suche ich gerade:
Hat da jemand eine Idee?
Was ist Floss?
Außerdem verstehe ich die Frage nicht. Wenn du genau so etwas suchst, dann ist das doch das was du suchst.
EDIT: Achso. FLOSS = Open Source. Von mir aus kannst du damit machen, was du willst. Schmeiß die Copyright-Zeile raus.
Aber ich werde jetzt keinen Lizenzvertrag aufsetzen.
Was ist Floss?
Free/Libre Open Source Software – Wikipedia
Außerdem verstehe ich die Frage nicht. Wenn du genau so etwas suchst, dann ist das doch das was du suchst.
Ebenfalls grübel.
Dein "6502 Unassembler" ist quasi das "Gegenteil":
Oder habe ich falsch gelesen?
Da es CBASIC auch für MS-DOS gibt (?), ließe sich 2) schnell lösen.
Ebenso 3), falls einfach noch ne OSI-approved Lizenz dazupackst, z. B. "Modified BSD" oder so etwas in der Art.
Nur bei 1) hängt dann halt echte Arbeit dran, die sich vermutlich schon mal irgendwo jemand anders gemacht hat.
Wenn du dich aber als "Fingerübung" dran versuchen willst, wäre ich natürlich der Letzte, der dich davon abhalten will.
Achso, du willst x86-Code disassemblieren. Ich dachte, das Programm soll auf einem x86 laufen.
CBASIC erzeugt übrigens MS-DOS Code.
Aber einen freien x86-Unassembler kenne ich nicht. Nur den Sourcer.
Hier noch ein Update
Meine persönlische Meinung zu SBASIC oder CBASIC.
Beide Compiler finde ich gut
SBASIC ist einfacher zum Erlernen.
CBASIC wurde später auch unter CP/M 86
und DOS entwickelt.
Mitmachen und eigene Meinung bilden.
Gruß
retro
Das HELLO.BAS sieht immer noch sehr nach Basic 2 aus. Nur ohne Zeilennummern.
Man darf da, wie in anderen Hochsprachen, Leerzeilen reinmachen und die müssen nicht jedesmal mit einem leeren REM eingeleitet werden.
Das DEF mitten im Programmcode erinnert stark an das DEF FN von Basic 2. In CBASIC sind das aber echte Funktionen.
Hallo Detlef,
was für ein Wunder. Da hast du mich erwischt.
Ich habe 1983-1988 mit BASCOM und KSAM80 programmiert.
CBASIC und SBASIC sind für mich auch Neuland.
Wie lange hast du gebraucht um dein hier vorgestelltes Programm
zu schreiben.
Schreibe mal Hello.bas in CBASIC. Dann kann der Anfänger etwas lernen.
Gruß
retro
Wie lange hast du gebraucht um dein hier vorgestelltes Programm
zu schreiben.
Das ist über Jahre entstanden. Das war zunächste ein einfacher Disassembler, dann wurde darauf der Unassembler - beides in Basic 2 für CBM 3032.
Dann habe ich gewerblich ein Projekt in CBASIC unter CP/M86 gemacht und dann später das CBASIC für MS-DOS bekommen und das Basic 2-Programm mit der Erfahrung aus dem anderen Projekt nach CBASIC portiert.
Schreibe mal Hello.bas in CBASIC. Dann kann der Anfänger etwas lernen.
Mal schauen. Wenn ich Zeit habe.
Ich habe ein wenig probiert.
Wenn ich das KAYPRO CBASIC Handbuch anschaue, dann wundere ich mich schon.
Viele Beispiele sind noch in MBASIC.
Das LIBRARY.BAS noch CBASIC kompatibel machen wäre eine sinnvolle Aufgabe.
Hier mal ein Ansatz. Detlef - schaue mal rein (Programm)
Gruß
retro
Das sieht doch schon viel übersichtlicher aus. Viel anders würde ich das auch nicht machen.
Wie man das dann formatiert und einrückt oder die Funktions-Header gestaltet ist Geschmacksache.
Das ist ja das Schöne bei Compilern. Man kann da ohne Ende Kommentare und Einrückungen reinpacken. Das hat keinen Einfluss auf das kompilierte Programm.