Posts by Bytebreaker

    Ich nehme an es gab zum PCMCIA Adapter eine Installationsdiskette? Cf0 muss beim Systemstart gemountet werden über einen PCMCIA Gerätetreiber, das scheint bei dir auch der Fall.


    Kannst du die CF Karte mal unter Windows formatieren bei der Arbeit? Und dann mit dem Mac drauf schreiben? I


    Wenn das Cf0 device richtig installiert ist muss es an der Karte liegen oder am Format, das der Mac schreibt beim formatieren.


    Ich habe einen a1200 mit PCMCIA CF Adapter es klappt super, Austausch über Windows PC. Adf schreibe ich mit Trans adf auf Diskette. Whd load geht auch.

    Quote

    Ah, habs gefunden. Auch wenn es sauteuer ist, solltes Du zuschlagen.


    Hab gerade zugeschlagen. 1 Euro plus 3 Euro Versand passt gerade noch in mein Budget. :-)


    Edit:


    Der Basic Raytracer ist ja krass. Probiere ich aus.

    Hallo,


    hat sich schonmal jemand mit FN Formeln beschäftigt, die man über eine Plot-Routine ausgeben kann?
    Es gibt Graphen, die sehen aus wie Blumen oder schöne Muster wenn man sie plottet.


    Anbei ein Beispiel mit einer Sinus-Funktion, einer Cosinus-Funktion und einer Parabel.


    Ich selbst bin Mathe-Legastheniker, aber ich weiß dass es Coder gibt, die Mathe sofort verstehen als würden sie Zeitung lesen.
    Vielleicht bekommen wir eine Sammlung schöner (und komplexer) Figuren zusammen?


    Edit: Unter VICE mit Alt-W beschleunigen, das kriecht arg, ist halt BASIC.


    Gruß

    Drei Zeilen Code und das Ding rennt sofort los. Cool. :thumbup:


    Edit:
    In Mikes POKE-Listing auf Seite 2 fährt er eine sich 2x wiederholende (für sauberes Loopen) lange im RAM liegende Textzeile entlang mit einem 40-Zeichen-Sichtfenster, das per Print Befehl ausgegeben wird. Der Pointer (A) wird zwar umgebogen auf die neue "Cursor-Position" durch die POKEs in Zeile 19, das Basic denkt aber immer noch, a$ ist 40 Zeichen lang, daher klappt das mit den Ausschnitten. Mike setzt das Ende des Basic-Listings auf Adresse 16384 durch die POKEs in die Adressen 46 und 45 ganz zu Beginn. Dadurch setzt Basic den String-Start auf 16387, was Mike weiß und in seinem Code schon fest eingeplant hat durch Definition A=16387.


    Der CLR-Befehl am Anfang ist zwingend nötig, warum weiß ich nicht. Ich habe nur ausprobiert, dass das Programm ohne diesen Befehl nicht läuft.


    On- (Bedingung) Goto13:Goto14


    heißt, dass bei Nichterfüllen der Bedingung der Interpreter hinter dem Doppelpunkt weitermacht. Dadurch kommt es zu der Kopieraktion ins RAM, von der ich zwar gewusst habe dass sie stattfinden muss, aber nirgendes eine funktionierende Schleife dazu entdeckt hatte, weil ich die BASIC Syntax "On-" nicht kannte.


    Ich habe eben jetzt erst wirklich verstanden was das Programm macht. Ich dachte davor an so Sachen wie "Mike schreibt in die Bitplane" wegen der Adressen die er benutzt hat. und mich dann gewundert warum er ohne Grafikmodus auskommt. Naja, Anfänger-Schnellschuss-Denken.


    Ich schreibe diese Zeilen auch für oobdoo und alle anderen, die offen von sich sagen, dass sie hier und da noch dazulernen wollen, weil sie noch nicht alles wissen. Wer weiß wer von den Mitlesern noch in ähnliche Denkfallen getappt ist.

    @ BIF:


    Danke für die info mit der String-Adresse.
    Wozu aber die Wahr/Falsch-Abfrage ob a$>"", d.h. ob a$ nicht leer ist? Wenn es nicht der Fall ist, wird 0 hinzuaddiert und es passiert nichts. Wenn a$ aber leer ist, werden durch Subtraktion (-1) Hi-Byte und Low-Byte des String-Zeigers verändert und damit die Adresse, die wir bisher für den String Zeiger gehalten haben. Das bisherige Low byte wird zum Hi Byte und das neue Low Byte ist in Adresse 33 - gehört also gar nicht zum String-Zeiger, den Du als 34 und 35 beziffert hast. Nix verstehn. Help. :?:?(


    @ Mike:


    Das ist ja geil. Klartext mit mehreren $DATAs. Hexworx' Ansatz fand ich zwar gut, ich hätte aber nur an String Variablen gedacht die ich irgendwie hätte durchnudeln müssen und nicht an $DATAs, was ja natürlich geht, ich aber vor lauter CHR$ nicht mehr im Kopf hatte. Die Routine braucht viel Initalisierungszeit durchs Kopieren in den geschützen Bereich und ist dann sehr schnell. Meine Routine rennt von Anfang an (Zwei Zeilen voller Leerzeichen am anfang sorgen für Verzögerung und die Sprite-Abfrage verlangsamt den Scroller zusätzlich für bessere Lesbarkeit), dafür kriegt man Augenkrebs bei der manuellen Erstellung der CHR$-Datas.


    Ich versteh schon warum am Ende alle Assembler lernen..


    Trotzdem sehr geil. Danke, viel gelernt.


    @ WTE


    Dem "Typer-Effekt" am Anfang der Scrollroutine beuge ich vor durch vorheriges Einschieben von Leerzeichen in den Scrolltext. Dann wirkt es optisch so als würde der Text wirklich rechts rein und links rauslaufen. Ich habe denselben Effekt auch in meinem Code.

    @ Mike


    Ähm, was ist denn der bevorzugte Weg, Assembler-Code zu verarbeiten? Prg-Dateien mit CBM Prg Studio generieren? Oder einen C64 Assembler nehmen wie TurboAssembler? Wie machen die Leute das außerdem, dass wenn man LIST eintippt, eine SYS-Anweisung steht mit einer Sprung-Adresse auf den Maschinencode?


    Wollte nicht zu sehr OT werden und bin da thematisch auch noch gar nicht. Es war nur weil ich nicht weiß, wie ich den Assembler Code von Dir überhaupt benutzen kann.

    @ Mike, Hexworx


    Gröl! Ihr hattet recht!
    Es geht um die richtigen Zeitpunkte wann man peekt und poked. Wenn ich gleich nach dem Sprite-Read peeke klappt es.


    Bitte findet die korrekte PRG im Anhang. Mit Alt-W könnt ihr in VICE vorspulen bis zu dem Moment wo die blaue Schrift gleich verschwindet. Ab dann sieht man den flüssigen Übergang. Endlosschleife gelungen, Basic V2 überlistet.


    :thumbsup::thnks:

    Files

    • vintro2.prg

      (3.08 kB, downloaded 13 times, last: )

    @ mc71


    Ich habe nach Auslesen der Sprite-Daten in den Quelltext eingesetzt:


    d1=peek(63)
    d2=peek(64)
    d3=peek(65)
    d4=peek(66)


    Denn hier fängt der "Scrolltext" an.


    Wenn der DATA-Bereich zuende ist, springt das Pogramm eigentlich ganz an den Anfang und initialisiert vorher alle relevanten Variablen und resettet den DATA-Zeiger per Restore-Befehl.


    Stattdessen initialisiere ich die relevanten Variablen und schreibe statt Restore


    poke 63,d1
    poke 64,d2
    poke 65,d3
    poke 66,d4


    Und lasse dann nicht an den Anfang springen, sondern an den Beginn der Sprite-Abfrage. Das soll eine flüssige Dauer-Wiederholung bewirken ohne ruckeln und Neuzeichnen der "Rasterbars" durch den Komplett-Neustart bei DATA-Ende.


    Ich bekomme aber eine "Out of Data" Meldung sobald sich das Programm an den "umgestellten" DATA-Zeigern bedienen soll.


    Sind die Adressen 63-66 wirklich die richtigen? Wenn ja liegt es an mir und ich muss nochmal in den Code gucken.


    Edit:
    Oder aber das Programm verändert sich dynamisch im Speicher während der Ausführung und das Beschreiben mit den alten Zeiger-Adressen führt ins Leere weil da gar kein DATA-Bereich mehr ist (?!). Ein V3.5/V7 Basic-Befehl mit dem man den Zeiger beeinflussen kann, fängt diese "Dynamik" womöglich ab. Ist aber alles Spekulation meinerseits vielleicht hab ich auch nur Tomaten auf den Augen.

    @ Duke


    Danke das höre ich gern von einem C64 Scener. Das nächste Mal poste ich vielleicht eine Textdatei mit Tabs usw.
    Im BASIC-Code selber vermeide ich "Einrückungs"-Doppelpunkte, weil sie die Ausführung durch den Interpreter verlangsamen.

    @ Hexworx


    Quote

    2) Statt der DATA-ASCII-Orgien würde ich mal über einen normalen Text-String und MID$(V$,I,40) nachdenken.


    Das hatte ich ursprünglich auch überlegt weil mich das PETSCII-Gehacke schon genervt hat. Aber Text-String-Variablen sind doch in der Länge begrenzt, ich müsste mit mehreren String-Variablen arbeiten. Technisch wäre das sicher möglich.


    Ich denke aktuell eher darüber nach, mir unter Windows ein Batch-Skript zu schreiben was mir einen ASCII-Text in passende DATA-Zeilen umwandelt, die ich dann in VICE copy-pasten kann.


    Dein Vorschlag, DATAs in ein Array zu überführen ist super. :thumbsup:

    @ MacBacon


    Quote

    Hast Du die Sprite-DATAs nach der Handbuchmethode ausgerechnet?


    Ja genau, nach Handbuch. Mit Karopapier aufgemalt und abgezählt. ^^
    Die CHR$-Nummern habe ich auch aus dem Handbuch abgelesen.


    Ich finde den Einstieg über BASIC gar nicht schlecht, denn das ROM und die POKEs und Adressen alle zu verstehen ist erstmal genug Gehirnfutter. Und es ist ja auch toll, dass man mit einer Hochsprache wie BASIC überhaupt direkt an die Hardware-Register drankommt. Wenn das richtig sitzt, dann werde ich anfangen, in Opcodes zu denken. ;)


    Außerdem habe ich noch einen CPC464 bei mir herumstehen und mir auch einen ZX- und Atari-Emulator angeschafft. Da weiß man das bessere BASIC auf den anderen Plattformen gleich viel mehr zu schätzen. ^^


    Ähnlich wird es mit Z80 Assembler sein. Der Prozessor ist ja in vielen Systemen verbaut gewesen da kommt man dann auch entsprechend schnell rein wenn man Z80 Assembler erstmal kann.

    @ Endurion


    Zu spät. ;)
    Ich hab schon zwei Stück, eins 3 Jahre und das andere 8 Monate alt. Es ist so ziemlich das schlechteste Zeitfenster für Männerhobbies überhaupt.


    Trotzdem habe ich vor, Dein Spieleprojekt zu lernen was Du hier ins Forum gestellt hast. :thumbsup:

    Hallo,


    ich habe landauf, landab nach Basic Listings gesucht mit denen man Scrolltexte und Type-Effekte (wie eine Schreibmaschine, langsames Print sozusagen) erstellen kann. Da ich nichts gefunden habe, machte ich mich an die Arbeit und schrieb mir selber etwas. Ich bin noch zu weit weg von Assembler und eines Tages will ich ein echtes Intro schreiben können mit Logo und Scroller und Sprites und SID-Sound und Rasterbars.


    Aber warum nicht erstmal mit einer "'Version für Arme" anfangen und überhaupt, warum sollte sowas Elementares wie ein Scroller nicht auch in Basic gehen? Ich habe natürlich keinen echten Scroller geschrieben sondern nur etwas, das wie ein Scroller aussieht. Trotzdem ist die Position frei wählbar und man kann auch längere Texte nach Belieben einbauen.


    Das einzige Manko am V2 Basic ist echt, dass man den Zeiger auf den DATA-Bereich nicht selber setzen kann, sondern nur starten und resetten. Dadurch gibt es keine flüssigen Schleifen wenn man im Data-Bereich z.B. noch Sprites hat, aber gut.


    Also für alle, die zu den echt krassen Assembler-Codern noch aufsehen und sich erstmal in Basic versuchen, zwei "Demo"-Listings mit Type- und Scrollroutinen.


    Bitte nicht stören am Loblied an meine Ehefrau im Text, sie leidet wirklich unter meinem Hobby (überalll alte Computer im Haus und ständig hat der Ehemann die Nase in irgendeinem alten Handbuch) und ich hatte keinen Nerv, den Text jetzt extra fürs Forum zu ändern, es ist ja nichts Verbotenes was da geschrieben steht. ;)

    Files

    • val15.prg

      (515 Byte, downloaded 2,057 times, last: )
    • vintro.prg

      (2.95 kB, downloaded 65 times, last: )

    Das heißt, so ein Editor ist ein Tool, mit dem man die Levelgrafik bastelt und dann sagen kann: So, das ist mein Level. Speichere das als Datei.
    Und im Programmcode des Spiels geht man her und sagt: Du Datei, Dich kopiere ich ins RAM und die Bitmap wo das Spielgeschehen gerade ist, stellt den gerade aktuellen Ausschnitt dar?