Als die Bilder laufen lernten …
Zaubern Sie Bewegung auf Ihren Bildschirm! Mit diesem Programm können Sie bequem Blockgrafik und Text in frei definierbaren Bildschirmbereichen scrollen. Und das in vier Richtungen.
Mit einem einzigen SYS-Befehl wird sowohl der Zeichen- als auch der Farbcode gescrollt. Dabei können Sie die Größe und Lage des Scrollbereiches frei wählen. Wenn Zeichen aus einem Bereich hinausgeschoben werden, tauchen Sie an der gegenüberliegenden Seite wieder auf.
Mit SYS 50550,r,za,ze,s,l wird das Maschinenprogramm aufgerufen. Dabei werden Parameter für Richtung (r), Zeilenanfang (za), Zeilenende (ze), Spalte (s) und Zeilenlänge (l) übergeben. Die Parameter müssen innerhalb der Grenzen von Bild 1 liegen. Angaben außerhalb dieser Grenzen fängt das Programm ab und gibt die entsprechende Fehlermeldung aus.
Listing 2 ist ein Demo-Programm, das Ihnen die verblüffende Wirkung des Scrollens in vier Richtungen zeigt.
(J. Effenberg/hm)Richtung | r | L,R,H,T |
Zeilenanfang | za | 1 ... 25 |
Zeilenende | ze | 1 ... 25, za<ze |
Spalte | s | 1 ... 40 |
Zeilenlänge | 1 | 1 ... 40s +l<41 |
Syntax | SYS50550,r,za,ze,s,l |
PROGRAMM : ROLL-ASS 50550 C576 C816 ----------------------------------- C576 : 20 FD AE B1 7A C9 4C D0 3F C57E : 07 E9 4C 8D A8 02 F0 22 E1 C586 : C9 52 D0 07 E9 51 8D A8 3E C58E : 02 D0 17 C9 48 D0 07 E9 F2 C596 : 46 8D A8 02 D0 0C C9 54 4A C59E : F0 03 4C 16 C7 E9 51 8D 12 C5A6 : A8 02 E6 7A D0 02 E6 7B 08 C5AE : 20 F1 B7 CA 30 09 E0 19 0F C5B6 : B0 05 8E A9 02 50 03 4C 09 C5BE : 20 C7 20 F1 B7 CA 30 F7 8B C5C6 : E0 19 B0 F3 8E AA 02 EC FD C5CE : A9 02 F0 05 B0 0D 4C 2A 4E C5D6 : C7 AD A8 02 C9 02 90 03 D3 C5DE : 4C 52 C7 20 F1 B7 CA 30 B2 C5E6 : 04 E0 28 90 03 4C 34 C7 69 C5EE : 8E AB 02 20 F1 B7 8A F0 BF C5F6 : 0D E0 29 B0 09 6D AB 02 82 C5FE : C9 29 B0 05 90 06 4C 3E 0F C606 : C7 4C 48 C7 CA 8E AC 02 D6 C60E : AD A8 02 F0 11 C9 01 F0 F3 C616 : 0A C9 02 F0 03 4C 83 C6 D2 C61E : 4C D4 C6 4C 56 C6 4C 27 2B C626 : C6 AE A9 02 A0 00 20 FE 76 C62E : C6 B1 D1 48 B1 F3 48 C8 B8 C636 : B1 D1 48 B1 F3 88 91 F3 CA C63E : 68 91 D1 C8 CC AC 02 D0 D8 C646 : EE 68 91 F3 68 91 D1 EC 7F C64E : AA 02 B0 03 E8 D0 D5 60 B3 C656 : AE A9 02 AC AC 02 20 FE 48 C65E : C6 B1 D1 48 B1 F3 48 88 67 C666 : B1 D1 48 B1 F3 C8 91 F3 FC C66E : 68 91 D1 88 D0 F1 68 91 86 C676 : F3 68 91 D1 EC AA 02 B0 C9 C67E : 03 E8 D0 D7 60 78 A0 00 71 C686 : 84 FB AE AA 02 20 FE C6 B3 C68E : B1 D1 48 B1 F3 48 CC AC 7E C696 : 02 F0 03 C8 D0 F2 A4 FB 19 C69E : CA 20 FE C6 B1 D1 48 B1 3F C6A6 : F3 48 E8 20 FE C6 68 91 E6 C6AE : F3 68 91 D1 CC AC 02 F0 90 C6B6 : 03 C8 D0 E4 CA EC A9 02 AD C6BE : D0 DC 20 FE C6 AC AC 02 6D C6C6 : 68 91 F3 68 91 D1 98 F0 ED C6CE : 03 88 50 F4 58 60 CE 89 9F C6D6 : C6 EE BC C6 A9 CA A2 E8 68 C6DE : 8D A8 C6 8E 9E C6 8E BA 12 C6E6 : C6 20 83 C6 A9 CA A2 E8 C3 C6EE : 8E A8 C6 8D 9E C6 8D BA FF C6F6 : C6 EE 89 C6 CE BC C6 60 1D C6FE : 20 F0 E9 AD AB 02 F0 0C 6D C706 : A5 D1 18 6D AB 02 85 D1 CC C70E : 90 02 E6 D2 20 24 EA 60 43 C716 : A9 7F A0 C7 85 FB 84 FC E4 C71E : 50 4D A9 95 A0 C7 85 FB 88 C726 : 84 FC 50 43 A9 A8 A0 C7 97 C72E : 85 FB 84 FC 50 39 A9 C2 6C C736 : A0 C7 85 FB 84 FC 50 2F 6A C73E : A9 D6 A0 C7 85 FB 84 FC B8 C746 : 50 25 A9 EA A0 C7 85 FB 47 C74E : 84 FC 50 1B A9 FF A0 C7 74 C756 : 85 FB 84 FC 50 11 20 D7 57 C75E : AA A5 39 A6 3A 85 14 86 2B C766 : 15 20 13 A6 4C C9 A6 20 13 C76E : D7 AA 20 D7 AA A0 00 B1 B0 C776 : FB 30 E3 20 D2 FF C8 D0 78 C77E : F6 52 49 43 48 54 55 4E 71 C786 : 47 53 57 45 52 54 20 49 D0 C78E : 4C 4C 45 47 41 4C FF 5A 66 C796 : 45 49 4C 45 4E 57 45 52 95 C79E : 54 20 49 4C 4C 45 47 41 6D C7A6 : 4C FF 5A 45 49 4C 45 20 7D C7AE : 31 20 49 53 54 20 3E 20 2C C7B6 : 41 4C 53 20 5A 45 49 4C 84 C7BE : 45 20 32 FF 53 50 41 4C F5 C7C6 : 54 45 4E 57 45 52 54 20 B4 C7CE : 49 4C 4C 45 47 41 4C FF A9 C7D6 : 4C 41 45 4E 47 45 4E 57 64 C7DE : 45 52 54 20 49 4C 4C 45 18 C7E6 : 47 41 4C FF 53 50 41 4C 36 C7EE : 54 45 20 2B 20 4C 41 45 46 C7F6 : 4E 47 45 20 3E 20 34 30 53 C7FE : FF 5A 45 49 4C 45 20 31 77 C806 : 20 49 53 54 20 3D 20 5A 4B C80E : 45 49 4C 45 20 32 FF FF 47
1 poke53281,0:poke53280,0:print"{grn}" 10 gosub1000 40 for i=1to100000 50 sys 50550,h,2,9,1,10 60 sys 50550,t,17,24,1,10 62 sys 50550,t,19,24,11,10 63 sys 50550,h,19,24,20,5 65 sys 50550,l,12,14,5,30 80 sys 50550,r,16,24,29,10 90 sys 50550,l,1,8,16,24 100 a=a+1:ifa/2=int(a/2)thenprint"{up}"tab(15)"attention" 110 ifa/3=int(a/3)thenprint"{up}"tab(15)"{rvon}attention" 999 next 1000 print"{clr}" 1001 print" NM " 1010 print" N M {red} {rvon}{SHIFT-POUND}{rvof}{CBM-H} {grn}" 1020 print" N M {red} {rvon}{SHIFT-POUND} {rvof}{CBM-H} {grn}" 1025 print" N M {red} {rvon}{SHIFT-POUND} {rvof}L{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{grn}" 1026 print" M N {red} {CBM-*}{rvon} {rvof}O{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{grn}" 1030 print" M N {red} {CBM-*}{rvon} {rvof}{CBM-H} {grn}" 1040 print" M N {red} {CBM-*}{CBM-H} {grn}" 1050 print" MN " 1060 print 1070 print"{rvon} " 1090 print" {rvon}...s y s t e m r u n n i n g" 1100 print"{rvon} " 1170 print 1180 print 2000 print"{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-F} QQ " 2005 print"{gry3}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-K} QQ " 2010 print"{gry2}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-K} QQ " 2015 print"{pur}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-K} QQ " 2020 print"{gry3}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-K} poke down QQ " 2025 print"{gry2}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-K} QQ " 2030 print"{yel}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-O}{CBM-K} QQ " 2035 print" {CBM-K} QQ " 2040 print" {CBM-K} QQ " 3000 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}" 10000 return