Commodore FREE One Liners competition

  • Sys verbieten hilft nicht; es gibt auch andere Wege eigenen Maschinencode aufzurufen. Am sinnvollsten ist da noch die Regel: "Die CPU darf nur Code ausführen, der schon vor dem Laden des Beitrags im RAM war bzw. im ROM ist."
    (auf ROM beschränken geht nicht, weil "GetByte" und ein paar Vektoren im RAM liegen)
    Yes, I'm the guy responsible for the ACME cross assembler
  • Tach.

    logiker schrieb:

    Also keine Tricks.
    :dafuer:

    Wobei bei einem One-Liner da wohl nicht viel bei rüberkommen dürfte.

    Wie wär's mit einem Five-Liner oder Nine-Liner oder Seven-To-Eleven- oder Wasimmer-Liner? Dann würde ich vielleicht auch mitspielen :kaputt .

    Bin ja auch eher ASMer (gewesen), aber just for fun mal wieder back to Basic... :gluck : :freude :juhu: !

    daybyter schrieb:

    Wenn Poke erlaubt ist, dann könnte man ja auch Assembler poken und dann aufrufen. Dann besser sys komplett verbieten.

    Ganz ohne POKE wär auch doof. Dürfte aber halt kein ausführbarer Code sein. Oder halt auf VIC/SID/Screen beschränken.
    Read'n'Blast my jump'n'stop-text-sprite-scroller Select A Move

    Ex-TLI (The Level 99 Industries) & Ex-TNP (The New Patriots) & Ex-TEA (The East Agents) & ?
  • logiker schrieb:

    Mein spontaner Vorschlag: Eine Zeile Code, dich nachweislich auch von Hand ohne Hilfsmittel eingegeben werden kann. Maximal .. Bytes. Kein Assembler. Peek/Poke/Sys schon.

    Nutzt alles nichts.

    Wenn ich es darauf anlege, kann ich 'von Hand' auch eine überlange Zeile eingeben, eben mit POKE.

    Auch 'kein Assembler' ist eine Scheinbeschränkung. Da läuft die ganze Zeit schon ein Maschinenprogramm, der BASIC-Interpreter. Ein gezieltes POKE in die CHRGET-Routine, und schon entführt man die geordneten Abläufe innerhalb des Interpreters in ein selbstgewähltes und getarntes Maschinenprogramm.

    Geht also nur mit vollständigem Verbot von PEEK */POKE/SYS/USR/WAIT. Und selbst dann kann man immer noch mit 'merkwürdigen' Befehlen den Interpreter zu unerwartetem Verhalten bringen, z.B. mit dem Klassiker PRINT 5+"A"+-5.

    *) warum PEEK()? Einige I/O-Adressen sind lese-sensitiv!
  • Oneliner sind sehr ausgelutscht imho.

    Ich fand damals[tm] bei der NOGOTO Competition ja LIST muss in ein Screen passen ein gutes Limit.
    20 Zeiler oder 4K oder so

    wäre auch okay, wobei ich da eine klare Blockbegrenzung für zielführender halte als Zeilenlimit, welches dazu führen würde, dass wir uns wieder alle die Finger brechen mit dem Hinpfuschen überlangen BASIC Zeilen mittels Petcat & friends bzw darüber fabulieren, ob man das denn darf.

    Cheers
    Ryk
    an allem schuld (sagt Sauhund, und der ist bekanntlich nicht ohne)
  • Ich würde trotzdem beim Thema one liner bleiben wollen. Wenn mehrere Zeilen erlaubt sein sollen, kann man die Regeln ja danach erweitern.
    Das kein Assembler verwendet werden soll, ist glaub ich klar. Notfalls kann man ja zwei Noten vergeben. A Programm Note B Basic-Anteil- (bzw. Assember-Missbrauchs-) Note.
  • Ich denke one liner ganz ohne irgendwelche "Tricks" werden so unglaublich langweilig, dass am Ende keiner was macht.

    Die Beschränkung "muss von Hand eingegeben werden können" finde ich dagegen nicht schlecht, wenn man sie noch um "direkt nach dem Einschalten ohne vorherige Direktmodus-Befehle" ergänzt wird es mit dem Tricksen schon recht schwierig.
  • ja zu _fast_ allem, was Ziriras sagt.

    Auf Oneliner wird kaum jemand Bock haben, aber egal ob mit oder ohne tricks, weil zu viele schon damit rumgemacht haben und es auch einfach schon seeehr viel gibt diesbzgl.

    Muss im Direktmodus eingebbar sein ist auch gut, z.B. das hier wäre okay:

    Quellcode

    1. **** commodore 64 basic v2 ****
    2. 64k ram system 38911 basic bytes free
    3. ready.
    4. 0?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?
    5. :?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?
    6. list
    7. 0 print:print:print:print:print:print:pr
    8. int:print:print:print:print:print:print:
    9. print:print:print:print:print:print:prin
    10. t:print:print:print:print:print:print:pr
    11. int:print:print:print:print:print:print:
    12. print:print:print:print:print:print:prin
    13. t
    14. ready.
    Alles anzeigen

    Aber irgendein PetCat-Pfusch nicht.

    Braucht man aber eigentlich nur, wenn man Zeilen als Limit nimmt. Fände nach wie vor 4 oder 16 blocks interessanter.
    an allem schuld (sagt Sauhund, und der ist bekanntlich nicht ohne)
  • Die Meinung, dass Oneliner langweilig sind, teile ich nicht. Aber wie die Größenbeschränkung nun genau aussieht, ist gar nicht so wichtig, glaube ich, solange eine da ist, um die Hemmschwelle zum Mitmachen klein zu halten.

    Mir kommt es sinnvoller vor, die Regeln so abzufassen, dass es nicht zu einem Wettlauf kommt, wie man am besten Assemblercode einschmuggelt. Das ist alles sehr interessant, aber für ASM-Coder gibt es doch genug andere Gelegenheiten und Wettbewerbe.
  • OK. Ich versuch mal das ganze ein wenig zusammenzutragen:

    Teilnahmebedingungen:
    1. Nur eine Zeile.
    2. Die Zeile muss per Hand ohne Hilfsmittel eingegeben werden können.
    3. Kein verstecken anderer Programmiersprachen (z.B. von eigenem Assembler-Code, dafür gibt es andere Wettbewerbe)
    4. Sys/Peek/Poke usw. nur in begründeten Fällen (z.B. für Farben setzten usw., wenn dafür kein Befehl existiert)
    5. System(e): Commodore C.. ohne irgendeine Erweiterung

    Abgabe:
    1. Programm als .PRG und als .TXT Datei.
    2. Beschreibung des Programms (als Ganzes und Befehl für Befehl.) Format: txt, doc(x), pdf, rtf

    Bewertungskriterien:
    1. Geschmack ;)
    2. Neu
    3. Verständlichkeit bzw. Genialität
    4. Reines Basic

    Wettbewerbe und Abarten:
    1. One Liner
    2. 2 Liner
    3. 10 Liner
    4. 64 Byte Assembler Wettbewerb

    Jury: ....

    Abgabeschluss: ....

    Bekanntgabe der Resultate: ....
  • Hi,

    ich wollte nur drauf hinweisen, dass ich auch gerade eine ASM-Compo vorbereite (in der ASM-Ecke gleich hier nebenan, das wird dann ASM Compo #3). Das wird was kleines, nur Forum64-intern und es wird eine sehr klar vorgegebene Aufgabenstellung geben. Trotzdem, falls es hier zu einer ASM-Compo käme, sollten wir uns da vielleicht abstimmen, damit das nicht gleichzeitig stattfindet ^^...
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Na ist doch super, dann können sich die Assembler-Gurus doch da austoben.

    Vielleicht kann man die Variante 'Sprung ins Kernal/BASIC-Rom' sogar erlauben, eben unter der Bedingung, dass der Coder in seiner Docu genau erklärt, was er da macht und wie das funktioniert. Dann könnten wir alle da was bei lernen.
  • Claus schrieb:

    Trotzdem, falls es hier zu einer ASM-Compo käme, sollten wir uns da vielleicht abstimmen, damit das nicht gleichzeitig stattfindet ^^...


    Keine Angst.
    Ich persönlich wäre dafür, dass man mal mit einem Einzeiler-Wettbewerb für nur ein System anfängt. Die Erfahrungen kann man dann ja wiederverwenden und weitere Compos auf anderen Systemen oder mit anderen Topics, usw. veranstalten.
  • Benutzer online 1

    1 Besucher