Software > Coding
Gemeinschaftsprojekt?
m0n0:
Hallo,
also... eigentlich muss man nicht auf das VDI verzichten - bisher ist mir nur eine Person bekannt die das benutzen des VDI's während der Autostart Programme als nogo bezeichnet hat ( Simon ). Auf der Firebee funktioniert es aber aus anderen Gründen nicht: Das VDI kann nur einmal geöffnet werden und nie wieder geschlossen - das sorgt dafür das das GEM dann VDI nicht mehr nutzen kann :( (es ist also ein Bug in der FireBee...).
Es gibt mehrere Möglichkeiten damit umzugehen:
- Auf Bilder verzichten und den Texttlichen Bildschirmaufbau so gestallten das es nicht unbedingt notwendig ist die Dimensionen zu kennen.
(D.h z.b. darauf verzichten in der untersten Textzeile text zu setzen - denn man weiss ja nicht wo die unterste Textzeile ist.)
- Das Programm konfigurierbar machen, so das die Auflösung vorher konfiguriert werden kann - dann könnte man auch z.b. am unteren bildschirmrand eine statuszeile einblenden, und wenn man möchte direkt auf den Bildspeicher zugreifen....
- warten bis das firetos fvdi gepatch ist ;)
- die Informationen die VsetScreen(-1) zurückgibt parsen und daraus eine Auflösung ermitteln.... das ist schwer und benötigt kenntnis über viele Hardware erweiterungen...
Daher... um es einfach zu halten - sollten wir uns auf Punkt 1 und 2 beschraenken. Zunächst 1 und dann evt. schritt 2. - je nach lust und laune :)
Achso, TOS hält ausser Vsetscreen keine funktion für uns bereit.
m0n0:
OK... fangen wir nochmal von vorne an?
Ich habe nochmal Projektfiles für AHCC und PC zusammengepackt und main.c reduziert.
Es macht nicht viel - ausser die Versionsnummer und das Kompilierdatum ausgeben. Trotzdem sind schon einige Sachen dabei die durchaus erstmal verstanden werden muessen.
--- Code: ---/* funktionen wie memcpy, strcpy... bekannt machen: */
#include <string.h>
/* auch die standard funktionen bekannt machen: */
#include <stdlib.h>
#include <stdio.h>
/* Standard TOS funktionen bekannt machen: */
#include <tos.h>
#include <vdi.h>
/* Ein string konstante definieren: */
/* __DATE__ ist standard und wird vom */
/* Compiler auf das aktuelle Datum gesetzt */
#define VERSION "0.1 - (" __DATE__ ")"
/* Hauptprogramm, wird aufgerufen nach start des Programms: */
int main(void)
{
/* Aufrufen der OS Routine Cconws */
/* Diese ist in tos.h deklariert */
/* und enthalten in PCTOSLIB.LIB */
/* bzw. AHCCGEM.LIB */
/* und gibt einen Text auf der */
/* Konsole bzw. auf dem Bildschirm */
/* aus. */
Cconws( "SimpleBoot Version " VERSION "\r\n" );
return( 0 );
}
--- Ende Code ---
Edit: informationen über die Betriebs-System routine Cconws:
http://toshyp.atari.org/de/005010.html#Cconws
Infos zur nutzung des C Befehls "#define" ( insbesondere um Konstanten zu definieren - man kann damit auch sogenannte macros definieren, aber das brauchen wir noch nicht):
http://www.proggen.org/doku.php?id=c:pre:define
m0n0:
Wie - hat schon keiner mehr lust weiter zu machen? Kein wunder das C Anfänger dingsbums das hier stattfand gestorben ist ;)
afalc060:
Ich denke die Lernkurve ist etwas zu steil.
Wieso nicht auf GFA-BASIC beschränken und dann etwas einfacheres umsetzen? Zudem ist ja überhaupt nicht wirklich klar, was denn nun gemacht werden soll. Jeder hat so seine Vorstellungen.
m0n0:
hm,... Ich denke bei step 1 ist die lernkurve noch nicht so hoch und man kann ja im nachhinein auf diesem code aufbauen, meinetwegen auch ein anderes programm, aber icht dachte bootmanager waere beschlossen ;) erstmal gucken was noch kommt, mit dem code kann man ja auch viele andere programme schreiben... Naechster schritt waere halt koordinierte textausgabe und dann dateiliste ausgeben und dann dateiumbenennen.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln