{{ ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Autor: Ingo Kripahle │ │ Copyright (c) 2010 Ingo Kripahle │ │ See end of file for terms of use. │ │ Die Nutzungsbedingungen befinden sich am Ende der Datei. │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ Informationen : hive-project.de Kontakt : drohne235@googlemail.com System : TriOS Name : Bellatrix-Test Chip : Bellatrix Typ : Treiber Version : 00 Subversion : 01 Funktion : Test für die grundlegenden Textausgabe- und Tastaturfunktionen. Komponenten : - COG's : - Logbuch : 22-03-2010-dr235 - anpassung trios Kommandoliste : Notizen : }} OBJ ios: "ios" CON _CLKMODE = XTAL1 + PLL16X _XINFREQ = 5_000_000 OS_TIBLEN = 64 'größe des inputbuffers VAR 'systemvariablen byte tib[OS_TIBLEN] 'tastatur-input-buffer byte tibpos 'aktuelle position im tib PUB main | tast,i,j,n ios.start 'ios.startram 'ram-testcode ' waitcnt(100_000_000+cnt) ios.screeninit(string("▶Funktionstest Bellatrix-BIOS"),1) ios.printnl repeat ios.print(string("Zeichensatz:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl charset ios.printnl ios.printnl {{ ios.print(string("Test ScrollUp:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl repeat 10 charset repeat 48 waitcnt(10_000_000+cnt) ios.scrollup ios.printnl ios.printnl ios.print(string("Test ScrollDown:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl repeat 10 charset repeat 48 waitcnt(10_000_000+cnt) ios.scrolldown ios.printnl ios.printnl }} ios.print(string("Test TAB:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl ios.print(string("tab")) ios.printtab ios.print(string("tab")) ios.printtab ios.print(string("tab")) ios.printtab ios.print(string("tab")) ios.printnl repeat i from 1 to 5 ios.printdec(i) ios.printtab ios.printdec(i) ios.printtab ios.printdec(i) ios.printnl ios.printdec(i) ios.printtab ios.printdec(i) ios.printtab ios.printdec(i) ios.printnl ios.printnl ios.printnl ios.print(string("Test SCREENINIT:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl ios.screeninit(string("▶Funktionstest Bellatrix-BIOS [SCREENINIT OK]"),1) ios.printnl ios.printnl ios.print(string("Test SETCOLOR:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl repeat i from 0 to 7 'vga-tile hat 8 farbkominationen repeat j from 0 to 32 ios.setcolor(i) ios.printchar(j + 65) ios.printchar(":") ios.printdec(i) ios.printchar(":") ios.printhex(i,2) ios.printnl ios.setcolor(0) ios.printnl ios.printnl ios.print(string("Test SETX/SETY (CURON/CUROFF):")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl ios.printcls ios.printnl ios.curoff repeat n from 1 to 50 repeat j from 1 to 5 repeat i from 1 to 8 ios.cursetx(i * 5) ios.cursety(j * 2) ios.printchar(":") ios.printdec(n) ios.cursetx(5) ios.cursety(16) ios.printchar(":") ios.printdec(j) ios.printchar(":") ios.printdec(i) ios.printchar(":") ios.printdec(n) ios.curon ios.printnl ios.printnl ios.print(string("Test Scrolling:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl repeat j from 0 to 20 charset ios.printnl ios.printnl ios.print(string("Test CLS:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl ios.printcls ios.printnl ios.printnl ios.print(string("Test Tastatureingabe/Backspace (bis Enter):")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl input ios.printnl ios.printnl ios.print(string("Eingabe :")) ios.print(@tib) ios.printnl ios.printnl ios.print(string("Test Home:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl ios.printcls repeat i from 0 to 1000 ios.curhome ios.printdec(i) ios.printnl ios.printnl ios.print(string("Test POS1:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl repeat i from 0 to 1000 ios.curpos1 ios.printdec(i) ios.printnl ios.printnl ios.print(string("Test CURCHAR:")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop repeat i from 1 to 100 ios.curchar(i) waitcnt(2_000_000 + cnt) ios.curchar($0E) ios.printnl ios.printnl ios.print(string("Test :")) ios.printnl ios.print(string("Weiter */uit : ")) tast := ios.keywait if tast == "q" OR tast == "Q" ios.stop ios.printnl ios.printnl ios.printnl ios.printnl PUB charset | i repeat i from 1 to 255 ios.printchar(i) PUB input | charc repeat if ios.keystat > 0 'taste gedrückt? charc := ios.key 'tastencode holen if (tibpos + 1) < OS_TIBLEN 'tastaturpuffer voll? case charc ios#CHAR_BS: 'backspace if tibpos > 0 tibpos-- tib[tibpos] := $0 'letztes zeichen im puffer löschen ios.printctrl(ios#CHAR_TER_BS) 'steuerzeichen anterminal senden other: ios.bus_putchar2(charc) 'sonstige zeichen if (charc <> ios#CHAR_NL) & (charc <> ios#CHAR_BS) 'ausser sonderzeichen alles in tib if (tibpos + 1) < OS_TIBLEN 'tastaturpuffer voll? tib[tibpos++] := charc tib[tibpos] := $0 until charc == $0D 'schleife bis RETURN DAT {{ ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ TERMS OF USE: MIT License │ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation │ │files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, │ │modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software│ │is furnished to do so, subject to the following conditions: │ │ │ │The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.│ │ │ │THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE │ │WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR │ │COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, │ │ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ }}