Beiträge von funkheld

    Hmmm...

    66Mhz sind 66Mhz in Deutschland.


    In der Dosbox und in der 86box.


    Es kann sein das eure alten Staubsauger nicht so genau laufen mit dem MHZ.

    Da spielen mehrere Faktoren eine Rolle : Netzteil , schlechte Condensatoren , verstaubte Übergänge , Festplattendrehung ungenau ohne Fehlermeldung usw.


    Ich nehme an , du kennst das PB nicht.

    Bei euch im Kopf schwiert bei dem Word Basic immer ein schlechter nachgeschmack im Mund rum.

    Auf Grund der Schnelligkeit des ASM-Code ist das Wort Basic bei dem PB nicht angebracht.

    Wie ich geschrieben habe ist es teilweise Compakter und schneller wie das C++ bei DOS.


    Versuch mal bei deinem Programm mit C++ ohne ASM-Code auszukommen.

    In C++ mit ASM-Code rumspielen ist verpönt , da drehen sich bei dem C++-Fachleuten die Magenwände rum.

    Meine Wagenwände sind in Ordnung , weil ich von C/C++ nicht viel halte.


    Danke.

    Das Problem ist bei den Programiersprachen verschieden.


    Eigentlich kein Problem , nur der Programmierer macht daraus eins.


    So lade ich meine 64000 Byte Daten rein in PB .

    PB ist teilweise schneller wie das C++ unter DOS.


    ----------------------

    DIM HUGE buff1(63999) as byte


    j%=0

    OPEN "daten.dat" FOR BINARY AS #1

    WHILE NOT EOF(1)

    GET #1,,tz

    buff1(j%)=tz

    j%=j%+1

    wend

    close #1

    ----------------------

    Noch nicht einmal 1 Sekunde bei 66Mhz und habe die Daten Griffbereit im Speicher.



    Danke.

    In welches RAM willst du unter DOS was großes laden?

    Was ist bei dir etwas Großes?


    Zeig mal was du ins RAM kopieren wolltest unter DOS mit PB , vielleicht kann ich dir helfen.

    Nicht motzen sondern klotzen.


    Ich habe hier 7 Speicherbereiche HUGE , die ich miteinander kopieren kann :


    memcopy (bufseg1, bufseg7, 64000)

    memcopy (bufseg5, bufseg4, 64000)

    .........

    .........usw.


    Hm... 448000 Byte.

    -------------------------------------------------------

    DIM HUGE buff1(63999) as byte

    DIM bufseg1 as WORD

    bufseg1 = varseg(buff1(0))


    DIM HUGE buff2(63999) as byte

    DIM bufseg2 as WORD

    bufseg2 = varseg(buff2(0))


    DIM HUGE buff3(63999) as byte

    DIM bufseg3 as WORD

    bufseg3 = varseg(buff3(0))


    DIM HUGE buff4(63999) as byte

    DIM bufseg4 as WORD

    bufseg4 = varseg(buff4(0))


    DIM HUGE buff5(63999) as byte

    DIM bufseg5 as WORD

    bufseg5 = varseg(buff5(0))


    DIM HUGE buff6(63999) as byte

    DIM bufseg6 as WORD

    bufseg6 = varseg(buff6(0))


    DIM HUGE buff7(63999) as byte

    DIM bufseg7 as WORD

    bufseg7 = varseg(buff7(0))

    -------------------------------------------------------


    Noch besser:

    Hier lege ich EMS-Speicher fest immer für je 64000 Byte , mit "e" lege ich den Bereich fest bei EMS. e=0 , e=1...usw.


    ems_64:

    for i=0 to 3

    reg %AX, (&h44*256)+i

    reg %BX,(e*4)+i

    reg %DX ,d

    call interrupt &h67

    next i

    return


    Hier kann ich dann in den jeweiligen Bereich "e" von Oben 64000 Byte reinlegen oder rausholen.

    eseg ist das EMS-Segment.


    ems_daten_dn:

    if fehl=0 then

    for i=0 to 3

    reg %AX, (&h44*256)+i

    reg %BX,(e*4)+i

    reg %DX ,d

    call interrupt &h67

    next i

    memcopy(eseg,bufseg2 ,64000) oder memcopy(bufseg4, eseg ,64000)

    end if

    return


    So einfach geht es.



    Frohe Weihnachten.

    Du solltest die Fähigkeit ab 66Mhz und drüber testen.


    Mit 25Mhz an der Kaffeemühle bringt nichts mit deiner Grafik-Idee.


    Da macht das Spielen nur im Textfenster spaß und da gibt es auch schöne Spiele.

    Große Array sind HUGE bei PB 3.5 :


    Habe hier 5 HUGE am laufen , 320000 Byte

    -----------------------------------------

    DIM HUGE buff1(63999) as byte

    DIM HUGE buff2(63999) as byte

    DIM HUGE buff3(63999) as byte

    DIM HUGE buff4(63999) as byte

    DIM HUGE buff5(63999) as byte


    Wenn du mit der IDE compilierst steht in der Beschreibung , das von der Größe her der Speicher manchmal nicht reicht von deinem Program.

    Schau dir die Einstellungen an für das direkte Compilieren.


    Das ist zb meine Einstellung :

    PBC -CE -FNPX -G386 -LA d:\pb35\bas\test.bas


    Jeder macht seine Einstellungen , die er braucht für sein Programm.



    Es gibt bei PB 3.5 zwei schöne Handbücher in Englisch.

    Auch für mich sind die Beschreibungen der Befehle mit 74 Jahren Verständlich.


    Die PB 2.... war der kleine Anfang für das DOS.

    PB 3.0.... war schon ein Meilenstein in der Entwicklung , danach habe sich die Versionen überschlagen um einen Größeren Speicher nutzen zu können und neue Befehle zu erfinden und die Fehler zu beseitigen.


    Ich suche noch die Version 3.5.1 , aber die finde ich nicht.


    Auch ASM kann man jetzt direkt eingeben ohne dieses Inline.

    --------------------------------------------

    DEFINT a-z

    DIM array1(1999)

    CALL FILL(array1(0))


    FOR i = 0 TO 1999

    PRINT array1(i);

    NEXT i


    END


    SUB FILL (x)

    ASM les di,[bp+6] ; segment and offset addr of parameter

    ASM mov ax, 177 ; constant to FILL

    ASM mov cx, &H7D0 ; length of FILL

    ASM cld ; clear the direction flag

    ASM rep stosw ; fill the words

    END SUB

    -------------------------------------------



    Bitte.

    Da musst du den Fragen der es für die PB32 geschrieben hat.


    Ich habe auch gesehen das von 3.2 zu 3.5 viele Fehler/Mängel behoben worden sind , so das die Versionm 3.2 out ist.

    Also 3.2 ab in die Tonne.


    Ich habe das EMS-Programm in PB35 für mich neu geschrieben.


    Gruss

    So jetzt kann ich in PB35 mit dem EMS spielen.


    Screens , Daten laden in den EMS , zurückholen und so weiter.

    Diese 16kb-Grenzen sind überhaput kein Hindernis , man kann sie einfach festlegen.


    Danke.

    Hallo, habe mir jetzt mal für den PI 400 mit :


    sudo apt install dosbox


    die DosBox 0.74-3 geladen.

    Mit den Tasten : ALT+Enter kann man die DOSBOX auf Vollbild schalten oder wieder auf den PI-400 Screen.


    Super.


    Mit FileZilla kann ich auch meine Dos-Programme und andere Programme hin und her-schaufeln vom Notebook zum PI-400.


    Das PCGEOS funktioniert super.
    Mein Basic PDS 7.1 läuft super darauf.


    Danke.

    Der Effekt tritt auch auf bei einem festen Byte-Array zb mit 800 Byte zb.

    Es ist schlecht das er nicht ein normales Array genommen hat mit Byte zum Testen und verschiedenen größen.


    Ich habe jetzt auch verschiedene EMS/XMS-ASM gesehen.

    Es gibt da wohl keinen festen Standard für die Abfolge.


    Dieser Originaltext funktioniert :

    Test$ = "Dieser Text wurde von und in den XMS-Speicher kopiert!"


    Sowie ich da ein Buchstabe dran hänge funktioniert es nicht :

    Test$ = "Dieser Text wurde von und in den XMS-Speicher kopiert!a"


    Das Programm hat eine schräglage.

    Der Rechner , DOS-BOX und 86BOX bleibt stehen nach dem Programmstart, Screen ist dunkel , muss ein Reset machen.


    Die Demo wie oben funktioniert wunderbar die du mir vorgeschlagen hast für PB35.


    Danke.

    Hallo, danke für die große Hilfe.


    Dieses Demo für PB3.5 läuft wunderbar.


    Probleme habe ich , wenn ich den Textspeicher(String) zb von einenr Größe 2048 nutze, dann versagt das XMS.


    Ich finde nicht , wo ich die Größe für den Speicher reinsetzen muss.


    Da das Programm übersichtlich ist kannst du mir bestimmt schreiben , wo der Wert reinkommt und wie die Speicherstücke aussehen müssen.


    Danke.