Ich wollte eine Umfrage aus MJ's Liste machen, aber es gehen nur 20 moegliche Bulletpoints.
Da mussten wir uns einschranken. Komplexe/Aufwendige Sachen werden rausfliegen. Es soll ja auch ein Normalo in absehbarer Zeit was fertigstellen koennen und hoffentlich wie die letzten Compos im Bereich des Moeglichen evt. auch fuer ASM Anfaenger liegen.
Hallo Besucher, der Thread wurde 21k mal aufgerufen und enthält 135 Antworten
letzter Beitrag von detlef am
ASM-Compo #6: Ideensammlung
- syshack
- Erledigt
-
-
Zwei Umfragen machen? Müssten dann halt 'händisch' ausgewertet werden.... immer noch besser als jeden Post hier zu notieren
BTW: Pong?
-
Och nee, keine Umfrage. Lieber einen Compo-Diktator, gerne selbsternannt.
Sonst haben wir einen Komitee-Compo, der es jedem recht machen will
-
Noch eine Idee: Magisches Quadrat auf den Text Screen in dezimal poken in 20x20 Feldern mit max zweistelligen Zahlen pro Feld.
Diagonal-, Längs- und Quersummen müssen identisch sein.
Das geht in Basic und Assembler und ist kein zu großes Ding, aber eine schöne kleine Kopfnuss.
In Asm die Kürze des Codes und in Basic die Schnelligkeit über Ti.
-
Bin auch für Compodiktator
-
Gibt nicht normalerweise der Gewinner der letzten ASM Compo das Thema vor?
-
Gibt nicht normalerweise der Gewinner der letzten ASM Compo das Thema vor?
Ja, eigentlich schon. IIRC hat das leider die letzten 1-2 Mal nicht so geklappt.
-
Ich habe folgende Idee für eine Aufgabe:
Stringvergleich mit Wildcards.Stellt euch vor Ihr möchtet eine Liste an Dateinameneinträgen filtern bzw. ihr möchtet nach Dateinameneinträgen suchen.
Ein Dateinameneintrag hat den Aufbau: <Dateiname>.<Dateiendung><nullbyte>Der Suchstring kann
- einen oder mehrer Platzhalter '?' für ein Zeichen beinhalten
- max. 1 Wildcard-Zeichen '*' für den Dateinamen beinhalten
- max. 1 Wildcard-Zeichen '*' für die Dateiendung beinhalten
- kann max. 1 Trennzeichen '.' für die Markierung der Trennung zwischen Dateiname und Dateiendung beinhalten.Nach dem Wildcard-Zeichen soll kein Matching im Dateinamen oder in der Dateiendung mehr erfolgen, d.h. es markiert, falls es verwendet wird, die letzter Stelle des Dateinamens oder der Dateiendung im Suchstring.
Die Funktion, die geschrieben werden soll, soll also
- zwei nullbyte-terminierte Strings (einen Suchstring und einen Dateinameneintrag) miteinander vergleichen und zurückgeben, ob die Strings unter Berücksichtigung der Wildcards im Suchstring "gleich" sind oder nicht.
- Es dürfen keine Kernal- oder Basicfunktionen verwendet werden.
- Die Funktion soll möglichst klein sein.------
Man könnte die Aufgabe schwieriger gestalten:
- Die Zeropage soll unter keinen Umständen verwendet werden, d.h. weder direkt, noch indexiert.oder einfacher:
- Man könnte den Stringvergleich auf einfache Strings ohne Trennzeichen reduzieren, d.h. ein Suchstring kann einen oder mehrere Platzhalter '?' und max. ein Wildcard-Zeichen '*' enthalten.(((Ein Grundgerüst habe ich noch nicht, aber ich stelle mir das so vor, dass die Funktion auf zwei feste Zeiger im Speicher (, je nach Schwierigkeit der Aufgabe nicht zwangsläufig in der Zeropage!, ) mit den Startadressen der zu vergleichenden Strings zurückgreifen kann.)))
Was haltet ihr von der Idee?
-
Grundgerüst (645 Bytes .prg ohne Vergleichsfunktion) im "Compodictator"-Style:
(Wer möchte kann es natürlich verbessern.)Code- ptr1 = $fb ; searchstring
- ptr2 = $fd ; directoryentry
- KERNELPRINT = $AB1E
- KERNELCHROUT = $FFD2
- * = $0801
- !basic
- lda #<searchstring ; ptr1 = searchstring
- sta ptr1
- lda #>searchstring
- sta ptr1+1
- lda #<directory ; ptr2 = directoryentry
- sta ptr2
- lda #>directory
- sta ptr2+1
- loopdir
- ldy #0 ; if ([ptr2]==0) then exit
- lda (ptr2),y
- beq exit
- jsr COMPARE_STRING
- bcc nextentry
- lda ptr2 ; Print string [ptr2]
- ldy ptr2+1
- jsr KERNELPRINT
- lda #13 ; Print return
- jsr KERNELCHROUT
- nextentry
- inc ptr2 ; inc ptr2
- bne +
- inc ptr2+1
- +
- ldy #0 ; skip to next nullbyte
- lda (ptr2),y
- bne nextentry
- inc ptr2 ; inc ptr2
- bne +
- inc ptr2+1
- +
- jmp loopdir
- exit
- rts
- ; YOUR FUNCTION STARTS HERE ========================
- ; ptr1 points to the searchstring
- ; ptr2 points to the directoryentry
- ; return carry=1 if equal
- COMPARE_STRING
- sec
- rts
- ; YOUR FUNCTION ENDS HERE ===========================
- searchstring
- !text "G??FARB*",0
- directory
- !text "FROSCH.PRG",0
- !text "M1 MUSIK.PRG",0
- !text "M2 SYNTHESIZER.PRG",0
- !text "SPRITES.PRG",0
- !text "MUSIC.PRG",0
- !text "SPRITE.BOOT.PRG",0
- !text "POLLY.PRG",0
- !text "1540DEMO.BOOT.PRG",0
- !text "3000.EMU.BOOT.PRG",0
- !text "M3 DIXIE.PRG",0
- !text "EMULATOR.PRG",0
- !text "GRAFIK.PRG",0
- !text "DOS BOOT.PRG",0
- !text "DOS 5.1.PRG",0
- !text "CHANGE 1541.PRG",0
- !text "PIANO.PRG",0
- !text "M4 YANKEE.PRG",0
- !text "FARBTEST.PRG",0
- !text "M5 GONG.PRG",0
- !text "M6 BOMBE.PRG",0
- !text "M7 SCHUSS.PRG",0
- !text "M8 SOUND.PRG",0
- !text "IRRGARTEN.PRG",0
- !text "BITS AND BYTES.PRG",0
- !text "BYTSPRITES.PRG",0
- !text "UHR-DEMO.PRG",0
- !text "BLACKJACK.PRG",0
- !text "G1 FARBDEMO.PRG",0
- !text "G2 HIRESDEMO.PRG",0
- !text "G3 GRAFIK.PRG",0
- !text "G4 FARBDEMO.PRG",0
- !text "G5 HIRES LOADER.PRG",0
- !text " HIRES.DEMO.PRG",0
- !text "S1 DEMO 1.PRG",0
- !text "S2 DEMO 2.PRG",0
- !text "S3 DEMO 3.PRG",0
- !text "DEMO.BOOT.PRG",0
- !text "CCC1.PRG",0
- !text "DEMO.C000.PRG",0
- !text "DEMO9.PRG",0
- !byte 0
Ich hoffe Ihr findet gefallen an der Idee/ dem Vorschlag.
Als Deadline wähle ich mal selbst So., den 5.8.2018 um 23:59 Uhr, d.h. in 2 Wochen.
Ich hoffe Ihr (bzw. jemand) macht mit.
Fragen oder Unklarheiten könnt Ihr natürlich noch stellen. -
Deadline in 2 Wochen? Nee, danke.
-
Deadline in 2 Wochen? Nee, danke.
Dann mache einen Vorschlag:
4 Wochen bis zum 19.08.2018 23:59 Uhr oder länger ? -
Dann mache einen Vorschlag:4 Wochen bis zum 12.08.2018 23:59 Uhr oder länger ?
Danke, das finde zeitlich ich fairer gegenüber Anfängern, die halt nicht so mal schnell ASM aus dem Ärmel schütteln.
-
Nur zur Info, als kurzen Zwischenstand bzw. als Messlatte oder Ansporn für eine noch unoptimierte COMPARE_STRING-Routine für die einfachste Form, d.h.
- einfacher Stringvergleich mit mehreren möglichen Platzhaltern '?' und max. einem Wildcard-Zeichen '*', ohne Trennzeichen und mit Zeropage-index-nutzung in 35 Bytes.Der Suchstring lautet
!text "G??FARB*",0und liefert als Ergebnis
"G1 FARBDEMO.PRG"
"G4 FARBDEMO.PRG"(((Der Code ist überhaupt nicht optimiert.)))
Edit: jetzt sind es 32 Bytes für die einfachste Form. -
Der 19.08.2018 ist verstrichen. Keine Interessenten/Teilnehmer und somit auch keine "Gewinner".
Evtl. kommt demnächst ein neuer Vorschlag von Jemandem für die ASM-Compo, in der Hoffnung, dass dieser dann einwenig "mehr" Resonanz findet. -
Oh, das ist irgendwie total an mir vorbeigegangen. Ich glaube ein eigener Thread wäre ganz gut gewesen, um es ein bisschen sichtbarer zu machen. Obwohl, bei der Hitze hätte ich eh nix zusammengekriegt ...
-
Ja, ein neuer Thread mit klarer Formulierung der Aufgabenstellung und der Bedingungen und Termine wäre hilfreich.
Mir war jetzt nicht klar, was genau die Aufgabenstellung war.