atari-home.de - Foren
Software => Coding => Thema gestartet von: Omikronman am Di 02.02.2010, 13:37:57
-
Hier möchte ich einige Tips geben, wie man Programme in Omikron.Basic durch Alternativen deutlich schneller machen kann.
slow: GOTO 123
quick : GOTO Abc
slow: IF X THEN Y=3
quick : IF X=1 THEN Y=3
slow: DRAW x,y TO x2,y2 : DRAW x2,y2 TO x3,y3
quick : DRAW x,y TO x2,y2 TO x3,y3
slow: IF X=1 AND Y=2 AND Z=3 THEN END
quick : IF X=1 THEN IF Y=2 THEN IF Z=3 THEN END
slow: FOR X=1 TO 1000 : FOR Y=1 TO 10 : NEXT : NEXT
quick : FOR Y=1 TO 10 : FOR X=1 TO 1000 : NEXT : NEXT
slow: IF X=1 OR Y=2 OR Z=3 THEN A=1
quick : IF X=1 THEN A=1 ELSE IF Y=2 THEN A=1 ELSE IF Z=3 THEN A=1
quick : IPL 4
info : Maus Interrupt aus, macht ganzes Programm 2 % schneller. Rückgängig machen mit IPL 3.
slow: A(5,5)=10 : IF A(5,5)=10 THEN END
quick : A55=10 : IF A55=10 THEN END
slow: A=100/2 : REM Floating-Point division
quick : A=100\2 : REM Integer division
slow: COMPILER "TRON"
quick : COMPILER "TROFF"
slow: A!=A!*2 : REM Floating-Point multiplikation
quick : A=A*2 : REM Integer multiplikation
slow: FOR X=1 TO 100 : A=50*30+20*X*2 : NEXT X
quick : C=50*30 : FOR X=1 TO 100 : A=C+20*X*2 : NEXT X
slow: FOR X=1 TO 100 : IF A=2 THEN PRINT "K" : IF A=2 THEN PRINT "L" : if A=2 THEN PRINT "M" : NEXT
quick : FOR X=1 TO 100 : IF A<>2 THEN GOTO Jmp : PRINT "K" : PRINT "L" : PRINT "M" : -Jmp : NEXT
slow: IF A>B THEN B=A
quick : IF A>B THEN SWAP A,B
slow: ON ... GOTO ... GOTO (back)
quick : ON ... GOSUB ... RETURN
slow: A = POINT(X,Y)
quick : A = (PEEK(LPEEK($44E)+Y*80+X\8) SHR(7-(X AND 7))) AND 1
slow: FOR Q=1 TO 1000 : X(A,B)=POINT(C*2+5,D*7-2) : NEXT Q
quick : E=C*2+5 : F=D*7-2 : FOR Q=1 TO 1000 : X(A,B)=POINT(E,F) : NEXT Q
ultra: E=C*2+5 : F=D*7-2 : FOR Q=1 TO 1000 : XAB=POINT(E,F) : NEXT Q
Schnelles Malen in ST-HOCH:
slow: DRAW 100,200
quick: XBIOS (V_Adr,3):BIT (7 AND NOT 100,V_Adr+200*80+100 SHR 3)=1
Der XBIOS-Befehl braucht nur einmal am Programmanfang ausgeführt zu werden. Möchte man in weiß malen, so lautet das Ende des BIT Befehls auf =0.
-
Solche Tips sind Gold wert. Kann man in Omikronbasic auch Programme schreiben die nicht nur in standart Aüflösungen (High, Mid, Low) laufen oder geht das nur mit irgendwelchen Tricks?
-
Hallo Arthur,
das ist gar kein Problem. Omikron.Basic wurde damals extra an die neuen Fähigkeiten des Falcon030 angepaßt, um beliebige Bildmodi ansprechen zu können. Auch der Editor arbeitet in jeder Bildgröße und Farbtiefe, einschließlich selbstgemachter Bildmodi via Screenblaster o. ä.
Grüße, Omi
-
Hast Du schon mal daran gedacht dein Joystick Programm so zu erweitern das es GEM nutzt und sauber in allen Auflösungen läuft und seine Ausgaben in ein Fenster ausgegeben werden? Wenn Du es dann noch ein wenig kommentierst wäre es für Anfänger eine Möglichkeit sich in die Programmiermaterie einzuarbeiten. Es kann natürlich auch ein anderes Programm sein das nicht all zu lang sein sollte und einen Anfänger nicht gleich überfordert.
Gruß Arthur
-
Hallo Arthur,
GEM zu nutzen ist recht aufwändig und kompliziert. Ich habe das bis heute nicht wirklich geblickt. Auch ist GEM oft eine Spaßbremse. So lautet ein Kapitel des Buches "Omikron Basic 3.0 - Das Buch zum Handbuch" von Clemens Hoffmann nicht umsonst: "GEM-Grafik: Extrem müde". :-(
Euer Omi
-
Ab welcher Omikron Basic Version trifft das zu? Schon ab der 3.6?
Gruesse,
Volkert
Hallo Arthur,
das ist gar kein Problem. Omikron.Basic wurde damals extra an die neuen Fähigkeiten des Falcon030 angepaßt, um beliebige Bildmodi ansprechen zu können. Auch der Editor arbeitet in jeder Bildgröße und Farbtiefe, einschließlich selbstgemachter Bildmodi via Screenblaster o. ä.
Grüße, Omi
-
@ Arthur
Um das mal zu verdeutlichen: Das Ringbuch/Handbuch zum Omikron.Basic umfaßt 225 ausführliche Seiten. Das "große GEM-Buch zum ATARI ST" von Data Becker ist alleine stolze 460 Seiten dick und behandelt nur GEM...
@ Volkert
Das gilt ab Omikron.Basic 3.6. Dazu gehört der Omikron.Compiler 3.5.
-
Ich kann verstehen das der Programmieraufwand durch den Einsatz von GEM wesentlich höher wird doch ich dachte das es unter Basic viel einfacher als unter C ist. Für nicht all zu komplexe Programme sollten es fast immer die selben Routinen/Befehle sein. Aber es gibt wohl nirgends ein einfaches how to wo anhand ein kurzen Programms erklärt wird wie's geht?