Youen Chéné ist dabei, eine Visual Studio Code Extension zu schreiben, die Amiga Blitz Basic 2 (und Amiblitz) Unterstützung bietet. Die Syntaxhervorhebung ist in der frühen Alpha Version noch eingeschränkt. Codeurs en Seineist eine Programmierer-Community in der Normandie die von Youen Chéné organisiert wird.
Features:
Syntax-Hervorhebung.
Snippets für die meisten Blitz Basic 2 Funktionen und Methoden.
Gliederung zeigt Makros, Labels, Funktionen und Anweisungen.
Integrierte Hilfe.
Diese Version von Youen Chéné ist ein Fork desvscode-amiga-blitzbasic-Projekts von 'MickGyver' und hat das Ziel, eine vollständige, native Javascript-Erweiterung zu bieten, die möglichst ohne externe Tools auskommt (außer UAE) und nicht nur auf Windows, sondern vielen Plattformen läuft (macOS, Linux, ...).
Also manchmal hat man ja das Bedürfnis, Kreise "von Hand" zu zeichnen, der Kontrolle wegen, also z.B. die Farbe ändern zwischendurch oder spezielles Clipping usw.
Nun, ich habe das mal probiert und leider ist es mit Basic viel zu langsam" da ist soviel Overhead auf jedem Befehl, das macht außer bei o.g. Anwendungsfällen beinahe keinen Sinn.
Erst Recht, wenn wir selbst die Koordinaten checken fürs clipping anstatt auf Blitz zu vertrauen (einfache rechteckige Bitmap).
mit Clipping
ohne Clipping, Bitmapgrenzen werden von Blitz überwacht.
zum Vergleich:
interner Circle Befehl.
AmiBlitz wurde in der Version 3.9.0 veröffentlicht.
Diese Version von AmiBlitz enthält einige wesentliche Änderungen und einige Optimierungen:
Große interne Veränderungen
Unmengen von Code von asm nach basic konvertiert
Kleinere Anpassungen
Tooltype DISABLE_HIGHLIGHTING hinzugefügt, um die Leistung auf Low-End-Rechnern zu verbessern Tooltype DISABLE_LOCALIZATION hinzugefügt, um den Speicherbedarf auf Low-End-Rechnern zu reduzieren Tooltype STANDARDEDITMODE entfernt, nur noch das neue Verhalten wird unterstützt Tooltype OLDSEARCH entfernt, jetzt wird nur noch das neue Verhalten unterstützt Tooltype USE_ASLDIMS entfernt Tooltype NO_DISPLAYBEEP in DISABLE_DISPLAYBEEP umbenannt Tooltype NO_WELCOME in DISABLE_WELCOME umbenannt Tooltype TOKENBOLD in BOLD_TOKENS umbenannt Menüeintrag "Autolayout" hinzugefügt, um eine automatische Anordnung aller geöffneten Fenster per Menüaufruf durchzuführen Wrapperlib für gadtools.library zu osLibs hinzugefügt Reorganisiertes Einstellungsfenster Neues Iconify-Gadget für Quellfenster hinzugefügt (OS3.2+) Aktualisierte GlowIcons für alle Icons in der AmiBlitz3-Schublade
Wie ihr alle wißt, sollte man auf jeden Fall mal ein Tetris selbst programmiert haben.
Darum hier meine Version davon. von 1996!
Das ist jetzt natürlich noch kein richtiges Spiel, nur ein ProofOfConcept oder so.
ist schon etwas älter, ich hab es heute nochmal neu kompiliert, vorher nochmal durchgesehen wegen Bugs und so, war aber größtenteils schonmal revidiert irgendwann 2000-2003 oder so.
Sounds hängen hinterher, aber sonst...
Joystick in Port 1 zur Steuerung, P für Pause, Q oder ESC für Ende.
Manchmal will man verschiedene Fonts für diverse Gadgets verwenden, z.B. weil man in einem Listview lieber alles nett untereinander gelistet haben will und man sich mit Charakter-Spalten begnügt.
Dann hilft der einfache Trick, den IntuiFont zu wechseln während des Erstellens der Gadget-List:
ttext$=" Evil Midan, tyrant of the highest order, lies hidden deep within his underground lair. Allied security forces demand"
ttext$+" his reign to cease. one man is needed. that man is YOU. "
Repeat
ev=Event ;we don't wait...
Delay_1 ;...here we do!
Gosub winscroll
If ev=$2 Then Gosub refwin
Es scheint immer mal wieder die Frage aufzutauchen, wie man ein Interlace-Display aufbaut. Dabei steht es doch in der Anleitung.
Ok, die Anleitung ist nicht immer fehlerfrei und AGA macht gelegentlich einen Strich durch die Rechnung, aber was soll's.
Interlace erfordert normalerweise eine besondere Behandlung der Copperliste, aus der das Display aufgebaut ist.
Da das Display nur noch halb so schnell aufgebaut wird (immer erst ein Halbbild, gerade, dann das andere, ungerade), und der Vblank Interrupt dies auch bei jedem Wechsel anzeigt, können wir dies benutzen, um das jeweilige Halbbild anzuzeigen. Damit das funktioniert, muß aber das angezeigte Halbbild natürlich jede zweite Zeile überspringen.
Das erreichen wir, indem wir die Zeilenbreite (Modulo, was übersprungen wird, um die nächste Zeile anzusteuern), die das Display (Slice) erwartet, verdoppeln. Die unnütze nächste Zeile verschwindet quasi rechts von der aktuellen im Nichts.
Slice 0,44,`1,`2 / 2,$fff8,`3,8,32,`1+`1,`1+`1
Außerdem müssen wir das LACE Bit setzen in einem Spezialregister.
Dafür hat Blitz2 eine Abkürzung eingebaut: SetBplcon0.
Hier ist der Sourcecode im Beispiel. Macro benutzt, einfach mal so.
Code:
Macro laceblitz ;w, h, d
BitMap0,`1,`2,`3
VWait50
SetBPLCON0 4 ;set lace bit!
BLITZ
;$fff9 for HiRes
Slice0,44,`1,`2 / 2,$fff8,`3,8,32,`1+`1,`1+`1
SetInt5 ;VBI
;If Peek.w($dff004)<0 Show 0,0,0 Else Show 0,0,1 ;doesn't work on AGA??
lfr.b=1-lfr ;swap lace frame#
Show 0,0,lfr ;lace frame# becomes y offset to show
kann man amiblitz etwas abspecken, das es nur sagen wir mal 3-4 mb ram braucht
hintergrund ist der:
hab mir nen a500 geholt und nen ram-hack gemacht
hab nun 1mb chip und 1,5 slow
will nun etwas weiter aufpeppen, hab mich wohl für die terriblefire entschieden
dummerweise hat die tf nur 4mb fast
(die aka500+ hätte zwar 8, aber zu wenig leistung im speed,
den anderen kram brauch ich nich, nen kick3.1 hab ich eingebaut
und nen ide-adapter is an der tf auch drann)
mein endziel ist es, games zu coden die so ein system
auch benutzen, also trotz nur ecs/ocs aber 30/40 mhz
dafür hab ich ins purebasic amiga eine c2p engine eingebaut
die 6 bitplanes hat (auf echter hardware nicht getestet)
und hab noch eine für 4 bpl
unter amiblitz würd ich die normalen ecs-screen mit display-library
benutzen eventuell mit nen paar coppertrix
und das ganze blitting in 32 farben per cpu aus dem fastram
damit wäre so ne configuration auch mal benutzt
nun das problem:
im emu mit 2mb chip und 8mb fast nimmt amiblitz 7mb fast
das würde dann wohl auf meinem 1+5.5 mb nicht laufen
...hab auch irgendwie nicht so den drang des budget zu erhöhen
um mir ne tf mit 64mb ram zu holen, soll wohl dann auch
nen besseres netzteil brauchen und so weiter...