Hallo Besucher, der Thread wurde 27k mal aufgerufen und enthält 104 Antworten

letzter Beitrag von ANTIC-Fan am

BASIC Tenliners Contest 2015

  • "Schreibe ein Spiel in 10 Zeilen!"


    Schon zum vierten Mal ist das das Motto des Programmierwettbewerbs anlässlich des Retro-Computer-Treffens NOMAM.


    Während es in den Jahren 2011 und 2013 kleine, interne Wettbewerbe waren und die Beiträge live auf der Veranstaltung angefertigt wurden, rief der
    Wettbewerb 2014 weltweites Interesse hervor. Über ABBUC- und AtariAge-Forum trudelten Beiträge aus Australien, USA, Chile, Polen, Großbritannien und Deutschland ein – am Ende war es die überwältigende Anzahl von 40 (Atari-)Spielen.


    In diesem Jahr möchten wir dem Wettbewerb neue Impulse geben, indem wir ihn öffnen; sowohl im Hinblick auf zugelassene Systeme, als auch im
    Hinblick auf zugelassene BASIC-Dialekte.


    Zugelassene Systeme:


    Atari 8-Bit


    Commodore 64


    Commodore 128


    Schneider CPC


    Zugelassene BASIC-Dialekte:


    Atari BASIC (A8 )


    Turbo BASIC XL (A8 )


    Altirra BASIC (A8 )


    OSS BASIC XE (A8 )


    OSS BASIC XL (A8 )


    Commodore BASIC V2 (C64)


    Simons' BASIC (C64)


    Commodore BASIC 7.0 (C128 )


    Locomotive BASIC 1.0 (Schneider CPC)


    Locomotive BASIC 1.1 (Schneider CPC)


    Andere BASIC-Dialekte und Computer-Systeme sind unter der Bedingung zugelassen, dass die Beiträge vom Programmierer auf der Original-Hardware auf der NOMAM (11.04.) in Lübeck vorgeführt werden.


    Auch wenn der Spaß am Programmieren und am Wettbewerb im Vordergrund stehen soll, sind doch ein paar Regeln vonnöten.


    Akzeptiert werden Beiträge in drei verschiedenen Kategorien:


    Kategorie
    "PUR":


    Programmiere ein Spiel in 10 Zeilen (max. 120 Zeichen je logischer Zeile, Abkürzungen sind erlaubt)


    Kategorie
    "EXTREM":


    Programmiere ein Spiel in 10 Zeilen (max. 256 Zeichen je logischer Zeile, Abkürzungen sind erlaubt)


    Kategorie
    "LIVE":


    Am 11.04.15 wird eine Programmieraufgabe gestellt, die innerhalb von 2 Stunden gelöst werden muss


    Weitere Regeln:


    - kein Nachladen von Daten oder Programmteilen
    - Aufruf von Maschinensprachprogrammen nicht erlaubt
    - POKEn in Speicherstellen erlaubt (z.B. verändern der DL, PM-Grafik)
    - Einsendeschluss: Samstag, 11. April, 21.00 Uhr (Fernbeiträge: Mittwoch, 8. April, 21.00 Uhr)
    - Voting: Samstag, 11. April, 22.30 Uhr, anschließend Preisverleihung


    - zusammen mit dem Programm sollte eine Textdatei mit der Programmbeschreibung und Anleitung abgegeben werden


    - die Programmierer erklären sich mit einer Veröffentlichung der Programme, der Beschreibung und der Anleitung seitens desVeranstalters einverstanden
    - nur körperlich Anwesende dürfen voten
    - Fernbeiträge sind jedoch erlaubt, sofern sie bis Mittwoch, 8. April, 21.00 Uhr bei GKANOLD-äht-GMAIL-punkt-COM
    eintreffen

  • Paar Bemerkungen zu den Regeln:
    - Am C64 BASIC 2.0 ist 120 irgendwie ein schräger Wert für "PUR". Aber kann man wohl mit leben.
    - No POKE ist hart aber fair, schließt das I/O und Pages $00 bis $03 mit ein?
    - No POKE -> No SYS? :)


    Ansonsten klingt das aber gut, vor allem dass die Orgas Erfahrung haben, lässt hoffen, dass der Wettbewerb auch durchgezogen wird (anders als beim C= Free Desaster vor ein paar Jahren).

  • Letztes Jahr wurden wir ziemlich überrascht von der Fülle der Beiträge. Es zeigte uns, dass wir nicht die einzigen Verrückten sind :thumbsup: .


    Wenn man die 8-Bit-Rechner betrachtet, ist BASIC so etwas wie der kleinste gemeinsame Nenner. Weshalb also nicht ein plattformübergreifender Wettbewerb? Hauptsache, wir haben Spaß dran :) .
    Die Regeln sind der Versuch, möglichst gleiche Bedingungen zu schaffen. Vor der Veröffentlichung hätte ich vielleicht noch mit unseren 64er-Experten aRcAdEsTaTiOn und Slator sprechen sollen. Slator mag aber kein BASIC, deshalb habe ich mich nicht getraut, ihn zu fragen :whistling: . Deshalb schon mal meine Entschuldigung, wenn die Regeln sich aus 64er Sicht etwas "schräg" lesen.


    So weit ich das richtig überblicke: No SYS (weil Maschinensprache), aber Yes POKE ("POKEn in Speicherstellen erlaubt").

  • Warum kein Basic 3.5 vom C16?


    Wird prinzipiell nicht ausgeschlossen ("Andere
    BASIC-Dialekte und Computer-Systeme sind unter der Bedingung
    zugelassen, dass die Beiträge vom Programmierer auf der
    Original-Hardware auf der NOMAM (11.04.) in Lübeck vorgeführt werden. ").


    Das Problem ist, dass wir nicht jede Hardware auf der Veranstaltung vorhalten können und auch nicht für alle Systeme die Möglichkeit haben, die per Email übersendeten Programme auf die Hardware zu bringen.

  • - Am C64 BASIC 2.0 ist 120 irgendwie ein schräger Wert für "PUR". Aber kann man wohl mit leben.


    Die 120 rührt daher dass beim ATARI-BASIC-Editor eine logische Zeile bei der Eingabe maximal drei Bildschirmzeilen zu je 40 Zeichen lang sein darf.



    - No POKE ist hart aber fair, schließt das I/O und Pages $00 bis $03 mit ein?


    PEEK & POKE ist erlaubt.


    PEEK dient beim ATARI dazu eine einzelne Speicherstellen zu lesen, mit POKE schreibt man einen Wert in eine Speicherstelle. Damit lassen sich z.B. bestimmte Register (Farbe, Player-Missile-Grafik steuern, Player-Daten in´s RAM schreiben, ect.) ansprechen oder der Bildschirm manipulieren.


    Dabei handelt es sich nicht um ein Maschinenspracheprogramm.


    Man könnte zwar ein MC-Programm mittels POKEs in den Speicher schreiben und mit X=USR(0) aufrufen, was dann aber ein nicht zugelassenes MC-Programm wäre.


    - No POKE ist hart aber fair, schließt das I/O und Pages $00 bis $03 mit ein?
    - No POKE -> No SYS? :)


    Ich vermute mal das Pages $00..$03 irgendwelche Hardwareregister sind? Wäre O.K.
    "SYS" dürfte der Aufruf eines MC-Programms sein? Nicht O.K.


    Sleeπ

  • Sorry hatte mich wohl verlesen bei POKE.


    Ja SYS ruft ML Programm auf, also wohl inklusive ROM-Routinen verboten.


    In den Pages $00 (Zeropage) bis $03 liegen hauptsächlich Vektoren und Register für ROM-Routinen, aber auch noch Stack und einiges für I/O interessante Gedöns, für BASIC eigentlich nur bedingt/mittelm#ßig interessant, zumal wenn SYS verboten ist... aber ein paar Sachen kann man womöglich POKEn.


    PS: Habe auch 2x A800XL und hatte vor Jahrzehnten auch Atari BASIC gecodet, POKE und PEEK haben natürilch auf C= und A die gleiche Bedeutung :)


  • Ja SYS ruft ML Programm auf, also wohl inklusive ROM-Routinen verboten.

    Hmmm, mit bestimmten BASIC-Befehlen ruft man ja auch (auf dem Atari) ROM-Routinen auf (z.B. mit den Grafikbefehlen FILL und PLOT). Da wäre es ungerecht, wenn man mit Commodore BASIC nicht auf Betriebssystem-Routinen zugreifen darf. Man sollte in der beigefügten Textdatei erklären, was man da tut. Ich denke, man sollte nur keine selbstgeschriebenen Maschinenprogramme in den Speicher bringen und ausführen. Vielleicht sollte der Regeltext in der Beziehung präzisiert werden?!

  • Letztlich landen alle BASIC Befehle früher oder später ja sowieso beim BASIC- und/oder KERNAL-ROM. Die paar Sachen, für die man direkt ins KERNAL-ROM SYSt, sind meistens Diskettenoperationen. Sonst fiele mir höchstens noch Cursorpositionierung ein, aber das geht auch ohne SYS. Ich würde SYS ruhig mal verboten lassen.


    Brot: Imhotep sez: Durchatmen! Niemand motzt, aber sich rechtzeitig über Regeln zu unterhalten, damit jeder sie versteht ist 1 Mio mal besser als nachher zu weinen wegen Unklarheiten/Missverständnissen.

  • Beim A8 kann man, bei der Eingabe, viele BASIC-Befehle abkürzen, z.B. anstelle von "POSITION x,y" nur "POS. x,y" schreiben. Dann kann man die Leerzeichen meist weglassen -> "POS.x,y". Das spart bei der Eingabe Platz -> es passen mehr Befehle in die drei Bildschirmzeilen die eine Programmzeile im BASIC-Editor maximal lang sein darf.


    Listed man die Zeile, werden die abgekürzten Befehle allerdings ausgeschrieben (aus "POS.x,y" wird wieder "POSITION x,y") wodurch die angezeigte Programmzeile dann länger werden kann als die drei Bildschirmzeilen.


    So eine überlange Zeile kann man dann allerdings nicht mehr so ohne weiteres editieren.


    Sleepy