100 GOTO 170
110 T = TI
120 GET I$ : IF I$="" AND TI-T < 300 THEN GOTO 120
130 IF I$="Q" THEN END
140 PRINT CHR$(147);
150 FOR I=1 TO 15:PRINTCHR$(13);:NEXT
160 RETURN
170 V=$CDF0: I$=""
180 S = $0400: C = $D800
190 GOSUB 140
200 REM GOTO 2870
210 PRINT"TEST SAVE ORIG: ";
220 SYS49152
230 E = 0 : A = DEEK(V)
240 FOR I=0 TO 35
250 E = E + PEEK(A+I) - PEEK($D1+I)
260 NEXT : IF E = 0 THEN PRINT"TAB OK; ";
270 A = DEEK(V+2)
280 IF DEEK(A) = DEEK($0326) THEN PRINT"PTR OK; ";
290 A = DEEK(V+4)
300 IF PEEK(A) = PEEK($0286) THEN PRINT"COLOR OK; ";
305 A = DEEK(V+6)
306 IF PEEK(A) = PEEK($C7) THEN PRINT"INV OK"
310 GOSUB 110
320 PRINT"TEST SET START OF LINE: ";
330 SYS49158
340 P = 7 * 40
350 IF DEEK(V) = S+P THEN PRINT "WLNP OK"
360 GOSUB 110
370 PRINT"TEST CLEAR SCR LINE: ";
380 SYS49161
390 P1 = 3 * 40: P2 = P + 39
400 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 32 THEN PRINT"SCR OK; ";
410 F = PEEK(V)
420 F1 = PEEK(C+P1) AND $0F
430 F2 = PEEK(C+P2) AND $0F
440 IF F1 = F AND F2 = F THEN PRINT"COLOR OK; "
450 GOSUB 110
460 PRINT"TEST CLEAR SCR 1: ";
470 SYS49164
480 P1 = 0 : P2 = 4 * 40 + 39
490 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 32 THEN PRINT"CLR OK"
500 GOSUB 110
510 PRINT"TEST CLEAR SCR 2: ";
520 SYS49167
530 P1 = 2 * 40: P2 = P1 + 39
540 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 32 THEN PRINT"CLR OK"
550 GOSUB 110
560 PRINT"TEST HOME CURSOR: ";
570 SYS49170
580 IF DEEK(V) = S THEN PRINT "WLNP OK; ";
590 IF PEEK(V+2) = 0 AND PEEK(V+3) = 0 THEN PRINT"WX/WY OK"
600 GOSUB 110
610 PRINT"TEST MOVE SCR LINE: ";
620 SYS49173
630 P1 = 2 * 40 : P2 = P1 + 39
640 P3 = 4 * 40 : P4 = P3 + 39
650 OK = 0
660 IF PEEK(S+P1) = PEEK(S+P3) THEN OK = 1
670 IF PEEK(S+P2) = PEEK(S+P4) AND OK THEN PRINT"SCR OK; ";
680 OK = 0
690 IF PEEK(C+P1) = PEEK(C+P3) THEN OK = 1
700 IF PEEK(C+P2) = PEEK(C+P4) AND OK THEN PRINT"COLOR OK"
710 GOSUB 110
720 PRINT"TEST SCROLL 1: ";
730 SYS49176
740 P1 = 0 : P2 = P1 + 39 : E = 0
750 FOR I=0 TO 3
760 E = E + PEEK(S+P1) - 48
770 E = E + PEEK(S+P2) - 48
780 P1 = P1 + 40 : P2 = P2 + 40
790 NEXT
800 IF E = 2 * (1+2+3+4) THEN PRINT"SCR OK; ";
810 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 32 THEN PRINT"SPC OK"
820 GOSUB 110
830 PRINT"TEST SCROLL 2: ";
840 SYS49179
850 P1 = 0 : P2 = P1 + 39
860 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 32 THEN PRINT"SPC OK"
870 GOSUB 110
880 PRINT"TEST BACKSCROLL 1: ";
890 SYS49182
900 P1 = 40 : P2 = P1 + 39 : E = 0
910 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 32 THEN PRINT"SPC OK; ";
920 FOR I=0 TO 3
930 P1 = P1 + 40 : P2 = P2 + 40
940 E = E + PEEK(S+P1) - 48
950 E = E + PEEK(S+P2) - 48
960 NEXT
970 IF E = 2 * (0+1+2+3) THEN PRINT"SCR OK"
980 GOSUB 110
990 PRINT"TEST BACKSCROLL 2: ";
1000 SYS49185
1010 P1 = 5*40 : P2 = P1 + 39
1020 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 32 THEN PRINT"SPC OK"
1030 GOSUB 110
1040 PRINT"TEST GOTO NEXT LINE 1: ";
1050 SYS49188
1060 P = 3*40
1070 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1080 IF PEEK(V+2) = 3 THEN PRINT"WY OK"
1090 GOSUB 110
1100 PRINT"TEST GOTO NEXT LINE 2: ";
1110 SYS49191
1120 P = 5*40
1130 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1140 IF PEEK(V+2) = 5 THEN PRINT"WY OK"
1150 GOSUB 110
1160 PRINT"TEST PERFORM RETURN: ";
1170 SYS49194
1180 P = 3*40
1190 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1200 IF PEEK(V+2) = 0 AND PEEK(V+3) = 3 THEN PRINT"WX/WY OK"
1210 GOSUB 110
1220 PRINT"TEST GOTO PREV LINE 1: ";
1230 SYS49197
1240 P = 2*40
1250 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1260 IF PEEK(V+2) = 2 THEN PRINT"WY OK"
1270 GOSUB 110
1280 PRINT"TEST GOTO PREV LINE 2: ";
1290 SYS49200
1300 P = 0*40
1310 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1320 IF PEEK(V+2) = 0 THEN PRINT"WY OK"
1330 GOSUB 110
1340 PRINT"TEST PERFORM BACKRETURN: ";
1350 SYS49203
1360 P = 1*40
1370 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1380 IF PEEK(V+2) = 0 AND PEEK(V+3) = 1 THEN PRINT"WX/WY OK"
1390 GOSUB 110
1400 PRINT"TEST ADVANCE CRSR 1: ";
1410 SYS49206
1420 P = 2*40
1430 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1440 IF PEEK(V+2) = 21 AND PEEK(V+3) = 2 THEN PRINT"WX/WY OK"
1450 GOSUB 110
1460 PRINT"TEST ADVANCE CRSR 2: ";
1470 SYS49209
1480 P = 3*40
1490 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1500 IF PEEK(V+2) = 0 AND PEEK(V+3) = 3 THEN PRINT"WX/WY OK"
1510 GOSUB 110
1520 PRINT"TEST BACK CRSR 1: ";
1530 SYS49212
1540 P = 2*40
1550 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1560 IF PEEK(V+2) = 19 AND PEEK(V+3) = 2 THEN PRINT"WX/WY OK"
1570 GOSUB 110
1580 PRINT"TEST BACK CRSR 2: ";
1590 SYS49215
1600 P = 1*40
1610 IF DEEK(V) = S+P THEN PRINT "WLNP OK; ";
1620 IF PEEK(V+2) = 39 AND PEEK(V+3) = 1 THEN PRINT"WX/WY OK"
1630 GOSUB 110
1640 PRINT"TEST DELETE CHAR 1: ";
1650 COLOUR9,0,13
1660 SYS49218
1670 P = 2*40 : P1 = P + 9 : P2 = P + 39
1680 IF PEEK(V) = 9 THEN PRINT"WX OK; ";
1690 IF PEEK(S+P1) = 10 AND PEEK(S+P2) = 32 THEN PRINT"SCR OK; ";
1700 F1 = PEEK(C+P1) AND $0F
1710 F2 = PEEK(C+P2) AND $0F
1720 IF F1 = 10 AND F2 = PEEK(V+1) THEN PRINT"COLOR OK";
1730 GOSUB 110
1740 PRINT"TEST DELETE CHAR 2: ";
1750 SYS49221
1760 P = 2*40 : P1 = P : P2 = P + 39
1770 IF PEEK(V) = 0 THEN PRINT"WX OK; ";
1780 IF PEEK(S+P1) = 0 AND PEEK(S+P2) = 39 THEN PRINT"SPC OK; ";
1790 F1 = PEEK(C+P1) AND $0F
1800 F2 = PEEK(C+P2) AND $0F
1810 IF F1 = 0 AND F2 = 7 THEN PRINT"COLOR OK";
1820 GOSUB 110
1830 PRINT"TEST INSERT CHAR 1: ";
1840 COLOUR9,11,13
1850 SYS49224
1860 P = 2*40 : P1 = P + 1 : P2 = P + 39
1870 IF PEEK(V) = 0 THEN PRINT"WX OK; ";
1880 OK=0
1890 IF PEEK(S+P1) = 0 AND PEEK(S+P2) = 38 THEN OK = 1
1900 IF PEEK(S+P) = 32 AND OK THEN PRINT"SCR OK; ";
1910 F = PEEK(C+P) AND $0F
1920 F1 = PEEK(C+P1) AND $0F
1930 F2 = PEEK(C+P2) AND $0F
1940 OK=0
1950 IF F1 = 0 AND F2 = 6 THEN OK=1
1960 IF F = PEEK(V+1) AND OK THEN PRINT"COLOR OK";
1970 GOSUB 110
1980 PRINT"TEST INSERT CHAR 2: ";
1990 SYS49227
2000 P = 2*40 + 39
2010 IF PEEK(V) = 39 THEN PRINT"WX OK; ";
2020 IF PEEK(S+P) = 32 THEN PRINT"SCR OK; ";
2030 F = PEEK(C+P) AND $0F
2040 IF F = PEEK(V+1) THEN PRINT"COLOR OK";
2050 GOSUB 110
2060 PRINT"TEST SETUP SCR PRINT: ";
2070 SYS49230
2075 COLOUR0,0,13
2080 P = 2*40 : P1 = P + 20 : P2 = P1 + 1
2090 OK = 0
2100 IF PEEK(S+P1) = 2 THEN OK = 1
2110 IF PEEK(S+P2) = 3+128 AND OK THEN PRINT"SCR OK; ";
2120 F1 = PEEK(C+P1) AND $0F
2130 F2 = PEEK(C+P2) AND $0F
2140 IF F1 = PEEK(V) AND F2 = PEEK(V) THEN PRINT"COLOR OK";
2150 GOSUB 110
2151 PRINT"TEST OUTPUT REGISTERS: ";
2152 SYS49233
2153 OK = 0
2154 IF PEEK(V) = 65 AND PEEK(V+1) = 100 THEN OK=1
2155 IF PEEK(V+2) = 200 AND OK THEN PRINT"A/X/Y OK"
2156 GOSUB 110
2160 PRINT"TEST UNSHIFTED CHARS: ";
2170 SYS49236
2180 P1 = 0 : P2 = P1 + 32 : P3 = P2 + 32
2190 OK = 0
2200 IF PEEK(S+P1) = 32 AND PEEK(S+P2) = 0 THEN OK=1
2210 IF PEEK(S+P3) = 64 AND OK THEN PRINT"SCR OK"
2220 GOSUB 110
2230 PRINT"TEST SHIFTED CHARS: ";
2240 SYS49239
2250 P1 = 0 : P2 = P1 + 32 : P3 = P2 + 32
2260 OK = 0
2270 IF PEEK(S+P1) = 96 AND PEEK(S+P2) = 64 THEN OK=1
2280 IF PEEK(S+P3) = 96 AND OK THEN PRINT"SCR OK"
2290 GOSUB 110
2300 PRINT"TEST RETURN: ";
2310 SYS49242
2320 IF PEEK(V) = 0 AND PEEK(V+1) = 3 THEN PRINT"WX/WY OK"
2330 GOSUB 110
2340 PRINT"TEST SHIFT RETURN: ";
2350 SYS49245
2360 IF PEEK(V) = 0 AND PEEK(V+1) = 1 THEN PRINT"WX/WY OK"
2370 GOSUB 110
2380 PRINT"TEST MOVE CRSR: ";
2390 SYS49248
2400 IF PEEK(V) = 21 AND PEEK(V+1) = 2 THEN PRINT"RIGHT OK; ";
2410 IF PEEK(V+2) = 21 AND PEEK(V+3) = 3 THEN PRINT"DOWN OK; ";
2420 IF PEEK(V+4) = 20 AND PEEK(V+5) = 3 THEN PRINT"LEFT OK; ";
2430 IF PEEK(V+6) = 20 AND PEEK(V+7) = 2 THEN PRINT"UP OK; ";
2440 IF PEEK(V+8) = 0 AND PEEK(V+9) = 0 THEN PRINT"HOME OK"
2450 GOSUB 110
2460 PRINT"TEST CLR: ";
2470 SYS49251
2480 P1 = 0 : P2 = P1 + 4*40 + 39
2490 IF PEEK(P1+S) = 32 AND PEEK(P2+S) = 32 THEN PRINT"SCR OK"
2500 GOSUB 110
2510 PRINT"TEST RVS: ";
2520 SYS49254
2530 P1 = 0 : P2 = 1 : P3 = 2
2540 OK = 0
2550 IF PEEK(P1+S) = 1 AND PEEK(P2+S) = 2+128 THEN OK = 1
2560 IF PEEK(P3+S) = 3 AND OK THEN PRINT"SCR OK"
2570 GOSUB 110
2580 PRINT"TEST COLORS: ";
2590 SYS49257
2600 OK = 0 : J = 15
2610 FOR I=0 TO 15
2615 F = PEEK(C+I) AND $0F
2620 IF F = J THEN OK = OK + 1
2630 J = J - 1
2640 NEXT
2650 IF OK = 16 THEN PRINT"OK"
2660 GOSUB 110
2670 PRINT"TEST DEL: ";
2680 COLOUR9,0,13
2690 SYS49260
2700 P = 2*40 + 39
2710 IF PEEK(P+S) = 32 THEN PRINT"SCR OK; ";
2720 IF PEEK(V) = 19 THEN PRINT"WX OK"
2730 GOSUB 110
2740 PRINT"TEST INS: ";
2750 COLOUR9,0,13
2760 SYS49263
2770 P = 2*40 + 20
2780 IF PEEK(P+S) = 32 THEN PRINT"SCR OK; ";
2790 IF PEEK(V) = 20 THEN PRINT"WX OK"
2800 GOSUB 110
2810 PRINT"TEST UNKNOWN: ";
2815 COLOUR0,0,13
2820 SYS49266
2830 IF DEEK(V) = S + 40 THEN PRINT"WLNP OK; ";
2840 IF PEEK(V+2) = 1 AND PEEK(V+3) = 1 THEN PRINT"WX/WY OK"
2850 IF PEEK(V+4) = 0 THEN PRINT"RVS OK"
2860 GOSUB 110
2870 PRINT"TEST PUT ROW COL: ";
2880 SYS49269
2890 IF DEEK(V) = S + 2*40 THEN PRINT"WLNP OK; ";
2900 IF PEEK(V+2) = 20 AND PEEK(V+3) = 2 THEN PRINT"WX/WY OK"
2910 GOSUB 110
2920 PRINT"TEST SET WPTRS: ";
2930 SYS49272
2940 A1 = DEEK(V) : A2 = DEEK(V+2)
2950 IF DEEK(A1) = 0 THEN PRINT"WPTRS 1 OK; ";
2960 IF DEEK(A2) = 24*40 THEN PRINT"WPTRS 2 OK"
2970 GOSUB 110
2980 PRINT"TEST SET DEFAULT: ";
2990 SYS49275
3000 A1 = DEEK(V) : A2 = DEEK(V+2)
3010 IF DEEK(A1) = 0 THEN PRINT"WPTRS OK; ";
3020 IF DEEK(A2) = 0 THEN PRINT"SPTRS OK; ";
3030 IF PEEK(V+4) = 24 THEN PRINT"WROWS OK; ";
3040 IF PEEK(V+5) = 24 THEN PRINT"SROWS OK; ";
3050 IF PEEK(V+6) = 0 AND PEEK(V+7) = 0 THEN PRINT"SX/SY OK"
3060 GOSUB 110
3070 REM TEST WINIT/WQUIT
3080 SYS49278
3090 PRINT"TEST WINIT/WQUIT: ";
3100 IF DEEK(V) = S THEN PRINT"WLNP OK; ";
3110 IF PEEK(V+2) = 1 AND PEEK(V+3) = 0 THEN PRINT"WX/WY OK; ";
3120 IF PEEK(S) = 1 THEN PRINT"SCR OK"
3130 GOSUB 110
3140 REM TEST WSPLIT 1
3150 SYS49281
3160 PRINT"TEST WSPLIT 1: ";
3170 IF DEEK(V) = S THEN PRINT"WLNP OK; ";
3180 IF PEEK(V+2) = 0 AND PEEK(V+3) = 0 THEN PRINT"WX/WY OK; ";
3190 IF PEEK(V+4) = 7 THEN PRINT"WROWS OK; ";
3200 A = DEEK(V+5)
3210 IF DEEK(A) = 9*40 THEN PRINT"SPTRS OK; ";
3220 IF DEEK(V+7) = 25-8-1-1 THEN PRINT"SROWS OK; ";
3230 IF PEEK(V+8) = 0 AND PEEK(V+9) = 0 THEN PRINT"SX/SY OK; ";
3240 P1 = 8*40 : P2 = P1 + 39
3250 IF PEEK(S+P1) = 64 AND PEEK(S+P2) = 64 THEN PRINT"SCR OK"
3260 GOSUB 110
3270 REM TEST WSPLIT 2
3280 SYS49284
3285 PRINT"TEST WSPLIT 2: ";
3290 IF PEEK(V) = 24 AND PEEK(V+2) THEN PRINT"WROWS OK; ";
3300 IF PEEK(V+1) = 24 AND PEEK(V+3) THEN PRINT"SROWS OK; ";
3310 IF PEEK(S) = 1 THEN PRINT"SCR OK"
3320 GOSUB 110
3330 REM TEST WSWITCH
3340 SYS49287
3350 PRINT"TEST WSWITCH: ";
3360 A = DEEK(V)
3370 IF DEEK(A) = 0 THEN PRINT"SPTRS OK; ";
3380 IF PEEK(V+2) = 5 THEN PRINT"SROWS OK; ";
3390 IF PEEK(V+3) = 1 THEN PRINT"SX OK; ";
3400 IF PEEK(V+4) = 2 THEN PRINT"SY OK; ";
3410 P1 = 0 : P2 = 1*40 : P3 = 2*40 : P4 = 7*40
3420 OK = 0
3430 IF PEEK(S+P1) = 1 AND PEEK(S+P2) = 2 AND PEEK(S+P3) = 3 THEN OK = 1
3440 IF PEEK(S+P4) = 4 AND OK THEN PRINT"SCR OK"
3450 GOSUB 110
3460 REM TEST WSPLIT 3
3470 SYS49290
3480 PRINT"TEST WSPLIT 3: ";
3490 IF DEEK(V) = S THEN PRINT"WLNP OK; ";
3500 IF PEEK(V+2) = 0 AND PEEK(V+3) = 0 THEN PRINT"WX/WY OK; ";
3510 IF PEEK(V+4) = 0 THEN PRINT"WROWS OK; ";
3520 A = DEEK(V+5)
3530 IF DEEK(A) = 2*40 THEN PRINT"SPTRS OK; ";
3540 IF DEEK(V+7) = 25-1-1-1 THEN PRINT"SROWS OK; ";
3550 IF PEEK(V+8) = 0 AND PEEK(V+9) = 0 THEN PRINT"SX/SY OK"
3560 GOSUB 110
3570 REM TEST WSPLIT 4
3580 SYS49293
3590 PRINT"TEST WSPLIT 4: ";
3600 IF DEEK(V) = S THEN PRINT"WLNP OK; ";
3610 IF PEEK(V+2) = 0 AND PEEK(V+3) = 0 THEN PRINT"WX/WY OK; ";
3620 IF PEEK(V+4) = 25-1-1-1 THEN PRINT"WROWS OK; ";
3630 A = DEEK(V+5)
3640 IF DEEK(A) = 24*40 THEN PRINT"SPTRS OK; ";
3650 IF DEEK(V+7) = 0 THEN PRINT"SROWS OK; ";
3660 IF PEEK(V+8) = 0 AND PEEK(V+9) = 0 THEN PRINT"SX/SY OK"
3670 GOSUB 110
3680 REM TEST WUNSPLIT
3690 SYS49296
3700 PRINT"TEST WUNSPLIT: ";
3710 IF DEEK(V) = S THEN PRINT"WLNP OK; ";
3720 IF PEEK(V+2) = 0 AND PEEK(V+3) = 0 THEN PRINT"WX/WY OK; ";
3730 IF PEEK(V+4) = 24 THEN PRINT"WROWS OK; ";
3740 IF PEEK(V+5) = 24 THEN PRINT"SROWS OK"
3750 GOSUB 110
3760 REM TEST HCOPY 1
3770 SYS49299
3780 PRINT"TEST HCOPY 1: ERGEBNIS IM DRUCKER";
3790 GOSUB 110
3800 REM TEST HCOPY 2
3810 SYS49302
3820 PRINT"TEST HCOPY 2: ERGEBNIS IM DRUCKER";
4000 GOSUB 110
4010 COLOUR0,0,13
4020 PRINT"FERTIG"