;********************************›;** **›;** Phoenix SoftCrew ACTION! **›;** Programme und Tips f. 8Bit **›;** **›;** Carsten Strotmann **›;** An der Kreutzbrede 20 **›;** **›;** D- 4410 Warendorf 1 **›;** (02581) 8920 **›;** **›;********************************››; Programmname : TOOLBOX 1 Sammlung ›; Programmierer: Carsten Strotmann›; Filename : TOOLBOX1.ACT›; erste Version: 24.04.91›; l. Aenderung : 24.04.91›; Zweck : Toolbox fuer ›; ACTION! Mag 1›; Bemerkung :›;›;››MODULE ››BYTE err, iostat = $23, hplflg = $2DC››;######################################›;#›;# Prozedur: CLS›;# Aufruf : CLS ()›;# Zweck : Lscht Textbildschirm›;#›;#›;######################################››PROC Cls ()›› Put (125)››RETURN››;######################################›;#›;# Prozedur: C_On›;# Aufruf : C_On ()›;# Zweck : Schaltet Cursor im Text-›;# bildschirm an›;#›;######################################››PROC C_On ()››BYTE crsin = 752›› crsin=0››RETURN››;######################################›;#›;# Prozedur: C_Off›;# Aufruf : C_Off ()›;# Zweck : Schaltet Cursor im Text-›;# bildschirm aus›;#›;######################################››PROC C_Off ()››BYTE crsin = 752›› crsin=1››RETURN››;######################################›;#›;# Prozedur: PAUSE›;# Aufruf : Pause (zeitdauer)›;# Zweck : Programmablauf wird›;# angehalten›;#›;######################################››PROC Pause (CARD times)››BYTE q, wsync = $14›CARD u›› FOR u = 1 TO times› DO› FOR q = 1 TO 200› DO› wsync = q› OD› OD››RETURN››;######################################›;#›;# Prozedur: BEEP›;# Aufruf : Beep (anzahl)›;# Zweck : Gibt Warnbeep aus›;# (ATASCII 253)›;#›;######################################››PROC Beep (BYTE times)››BYTE u›› FOR u = 1 TO times› DO› PutD (0,253)› Pause (10)› OD››RETURN››;######################################›;#›;# Prozedur: SCR ()›;# Aufruf : Scr ()›;# Zweck : Schaltet Bildschirm an/aus›;# (ANTIC DMA)›;#›;######################################››PROC Scr ()›› BYTE sdmctl = $22F› › sdmctl == ! $20››RETURN››;######################################›;#›;# Prozedur: SWAP›;# Aufruf : SWAP (wert1, wert2)›;# Zweck : Vertauscht zwei Zahlen-›;# werte›;#›;######################################››PROC Swap (CARD a, b)›› CARD x›› a=x› a=b› b=x››RETURN››;######################################›;#›;# Prozedur: MINI›;# Aufruf : zahl = Mini (zahl1, zahl2)›;# Zweck : Gibt die kleinere Zahl›;# zurueck›;#›;######################################› ›CARD FUNC Mini (CARD a, b)›› CARD result›› IF a < b THEN › result = a› ELSE› result = b› FI››RETURN (result)››;######################################›;#›;# Prozedur: MAXI›;# Aufruf : zahl = Maxi (zahl1, zahl2)›;# Zweck : Gibt die groessere Zahl›;# zurueck›;#›;######################################››CARD FUNC Maxi (CARD a, b)›› CARD result›› IF a > b THEN › result = a› ELSE› result = b› FI››RETURN (result)››;######################################›;#›;# Prozedur: SETBIT›;# Aufruf : wert = SetBit (wert, n)›;# Zweck : Setzt Bit n in Wert›;#›;#›;######################################››BYTE FUNC SetBit (BYTE value, bit)›› BYTE dumm›› dumm = 1› dumm == LSH bit› value == % dumm››RETURN (value)››;######################################›;#›;# Prozedur: CLEARBIT›;# Aufruf : wert = ClearBit (wert, n)›;# Zweck : Loescht Bit n in Wert›;#›;#›;######################################››BYTE FUNC ClearBit (BYTE value, bit)›› BYTE dumm›› dumm = 1› dumm == LSH bit› dumm == ! $FF› value == & dumm››RETURN (value)››;######################################›;#›;# Prozedur: ASKBIT›;# Aufruf : wert = AskBit (wert, n)›;# Zweck : Ergibt 1, wenn Bit n in›;# Wert gesezt ist, sonst 0›;#›;######################################››BYTE FUNC AskBit (BYTE value, bit)›› BYTE dumm› › dumm = 1› dumm == LSH bit› value == & dumm›› IF value > 0 THEN› value = 1 › FI››RETURN (value)››;######################################›;#›;# Prozedur: DOS›;# Aufruf : DOS ()›;# Zweck : Springt ins DOS›;#›;#›;######################################››PROC Dos ()›› [ $6C $0C $00 ]››;######################################›;#›;# Prozedur: BREAKOFF›;# Aufruf : BreakOff ()›;# Zweck : Schaltet BREAK-Taste aus›;# Achtung, nur einmal im ›;# Programm aufrufen›;######################################››PROC BreakOff ()›› CARD brkky = $236›› brkky == + $C››RETURN››;#####################################›;#›;# Prozedur: INTER›;# Aufruf : wert = Inter (ascii)›;# Zweck : Wandelt ASCII-Code in›;# Internen (Bildschirm-)›;# Code um›;######################################››BYTE FUNC Inter (BYTE b)›› IF b >= 0 AND b < 32 THEN› b == + 64› ELSEIF b > 31 AND b < 96 THEN› b == - 32› ELSEIF b > 127 AND b < 160 THEN› b == + 64› ELSEIF b > 159 AND b < 224 THEN› b == - 32› FI››RETURN (b)››;######################################›;#›;# Prozedur: ASCII›;# Aufruf : wert = ASCII (intern)›;# Zweck : Wandelt Internen Code in›;# ASCII-Code um›;#›;######################################››BYTE FUNC Ascii (BYTE b)›› IF b >= 0 AND b < 64 THEN› b == + 32› ELSEIF b > 63 AND b < 96 THEN› b == - 64› ELSEIF b > 127 AND b < 192 THEN› b == + 32› ELSEIF b > 191 AND b < 224 THEN› b == - 64› FI››RETURN (b)› ›;######################################›;#›;# Prozedur: HIGH›;# Aufruf : wert = High (wert)›;# Zweck : Liefert das hoeherwertige-›;# byte eines Words›;#›;######################################››BYTE FUNC High (CARD value)›› BYTE ret›› ret = value / $100››RETURN (ret)››;######################################›;#›;# Prozedur: LOW›;# Aufruf : wert = Low (wert)›;# Zweck : Liefert das niederwertige›;# Byte eines Words›;#›;######################################››BYTE FUNC Low (CARD value)››RETURN (value)››;######################################›;#›;# Prozedur: SCAN›;# Aufruf : wert = Scan (x, y)›;# Zweck : Liefert das Bildschirm-›;# zeichen Pos. x,y im in-›;# ternen Code›;######################################››BYTE FUNC Scan (BYTE x, y)›› BYTE chr› BYTE POINTER msc› CARD savmsc = $58›› msc = savmsc + y * 40 + x› chr = msc^››RETURN (chr)›› ›