1 REM (C) 1983 Diomidis Spinellis 2 DIM P$(999) 10 CALL CLEAR 20 DATA 67,0054543810101010 30 DATA 68,001028282844447C 40 DATA 70,0038545438101010 50 DATA 71,007C404040404040 60 DATA 74,007C00003800007C 70 DATA 76,0010282828444444 80 DATA 80,007E242424242424 90 DATA 82,003C22223C202020 100 DATA 83,007C20100810207C 110 DATA 85,003844447C444438 120 DATA 86,003844444438007C 130 DATA 64,3C4299A1A199423C,999,A 140 DATA 0054FE7C7C7C7C7C 150 DATA 003E767C70607CFE 160 DATA 0030183838387C7E 170 DATA 000010383838387C 180 DATA 103810387C7C7CFE 190 DATA 00AAAAAA7C7CFEFE 195 DATA 0000000000000000 200 READ A,A$ 210 IF A=999 THEN 240 220 CALL CHAR(A,A$) 230 GOTO 200 240 Q(1)=96 250 Q(2)=104 260 Q(3)=112 270 Q(4)=120 280 FOR I=1 TO 4 290 FOR J=1 TO 7 300 READ A$ 310 CALL CHAR(Q(I)+J,A$) 320 NEXT J 330 RESTORE 140 340 NEXT I 350 CALL COLOR(9,2,5) 360 CALL COLOR(10,16,5) 370 CALL COLOR(11,2,10) 380 CALL COLOR(12,16,10) 390 DEF CTR$(A$)=SEG$(" ",1,(28-LEN(A$))/2)&A$ 400 FOR I=1 TO 8 410 CALL COLOR(I,2,8) 420 NEXT I 430 CALL VCHAR(1,31,31,24*4) 440 CALL SCREEN(5) 450 PRINT CTR$("SKAKI"): : : : :CTR$("a b c d e f"): : : : :CTR$("@ 1983 DIOMHDHS SPINELLHS"): : : : : : : : : : : 460 PRINT CTR$("PATA ENA KOYMPI"):CTR$("GIA NA ARXISEI") 470 CALL KEY(5,RET,STA) 480 IF STA=0 THEN 470 490 CALL VCHAR(1,3,32,28*24) 495 RESTORE 560 500 FOR I=1 TO 8 510 FOR J=1 TO 8 520 READ A 530 CALL HCHAR(I+5,J+5,A+96-16*((I+J)/2=INT((I+J)/2))-8*(I>4)) 540 NEXT J 550 NEXT I 560 DATA 1,2,3,6,5,3,2,1,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 570 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,1,2,3,6,5,3,2,1 572 FOR I=1 TO 8 574 READ Q(I) 576 NEXT I 578 DATA 65,66,71,68,69,90,72,85 580 FOR I=1 TO 8 590 CALL HCHAR(5,I+5,Q(I)) 600 CALL HCHAR(14,I+5,Q(I)) 610 CALL HCHAR(I+5,5,ASC(STR$(I))) 620 CALL HCHAR(I+5,14,ASC(STR$(I))) 630 NEXT I 640 RC=1.15 650 MSG$="SKAKI" 660 GOSUB 10010 670 RC=20.03 680 MSG$="LEYKA:" 690 GOSUB 10010 692 RC=21.03 694 MSG$="MAYRA:" 696 GOSUB 10010 700 RC=20.09 710 CKNUM=0 720 FLEN=10 730 GOSUB 10120 732 RC=16.05 734 MSG$=RTN$ 736 GOSUB 10010 740 RC=21.09 750 CKNUM=0 760 FLEN=10 770 GOSUB 10120 772 RC=03.05 774 MSG$=RTN$ 776 GOSUB 10010 778 CALL HCHAR(20,3,32,28) 779 CALL HCHAR(21,3,32,28) 780 U=0 790 U=U+1 792 RC=1.28 794 MSG$=SEG$("000"&STR$(U),LEN(STR$(U))+1,3) 796 GOSUB 10020 798 W=1 800 IF U/2=INT(U/2)THEN 830 805 IF W<>0 THEN 810 807 CALL SOUND(200,110,0) 810 MSG$="PAIZOYN TA LEYKA" 820 GOTO 840 830 MSG$="PAIZOYN TA MAYRA" 840 RC=18.03 850 GOSUB 10010 860 RC=20.05 870 MSG$="KINHSH:" 880 GOSUB 10010 890 RC=20.12 900 FLEN=4 910 GOSUB 10140 920 P$(U)=RTN$ 930 FOR I=1 TO 4 940 W=POS("ABGDEZHU12345678",SEG$(RTN$,I,1),1) 950 IF W=0 THEN 800 960 NEXT I 970 GOSUB 20000 980 GOTO 790 9998 CALL SOUND(100,1000,0) 9999 GOTO 9999 10000 REM 10010 DISPLAY @ 10120 ACCEPT @ go to those lines for details 10010 REM DISPLAY AT(RC,MSG$) 10020 R=INT(RC) 10030 C=(RC-INT(RC))*100 10040 FOR Z1=C TO LEN(MSG$)+C-1 10090 CALL HCHAR(R,Z1,ASC(SEG$(MSG$,Z1-C+1,1))) 10100 NEXT Z1 10110 RETURN 10120 REM ACCEPT AT (RC,CKNUM{1 FOR NUMBERS ONLY},FLEN{POSITIVE TO BLANK}) 10130 REM CNTR 1 CR,2,REDO,3 BACK,4 PROC'D,5 BEGIN 10140 ROW=INT(RC) 10150 COL=(RC-INT(RC))*100 10160 DIM Z0(32) 10170 Z0$=CHR$(13)&CHR$(6)&CHR$(15)&CHR$(12)&CHR$(14)&CHR$(8)&CHR$(9)&CHR$(3)&CHR$(7) 10175 CALL SOUND(100,1000,0) 10180 IF FLEN<0 THEN 10200 10190 CALL HCHAR(ROW,COL,ASC("_"),ABS(FLEN)) 10200 FOR Z1=1 TO ABS(FLEN)+1 10210 CALL GCHAR(ROW,COL+Z1-1,Z0(Z1)) 10220 NEXT Z1 10230 Z7=0 10240 Z1=1 10250 CALL HCHAR(ROW,COL+Z1-1,30) 10260 CALL KEY(0,Z3,Z4) 10270 IF Z4=0 THEN 10260 10280 CNTR=POS(Z0$,CHR$(Z3),1) 10290 ON CNTR+1 GOTO 10370,10520,10520,10520,10520,10520,10300,10300,10350,10350 10300 CALL HCHAR(ROW,COL+Z1-1,Z0(Z1)) 10310 IF Z3=9 THEN 10480 10320 IF Z1=1 THEN 10250 10330 Z1=Z1-1 10340 GOTO 10250 10350 CALL HCHAR(ROW,COL+Z1-1,Z0(Z1)) 10360 GOTO 10190 10370 IF CKNUM<>1 THEN 10430 10380 IF (Z3=45)+(Z1=1)=-2 THEN 10430 10390 IF (Z7=0)+(Z3=46)+(ABS(FLEN)>1)<>-3 THEN 10420 10400 Z7=1 10410 GOTO 10430 10420 IF (Z3<48)+(Z3>57)<=-1 THEN 10260 10430 IF Z0(Z1)<>46 THEN 10450 10440 Z7=0 10450 IF Z1=ABS(FLEN)+1 THEN 10480 10460 Z0(Z1)=Z3 10470 CALL HCHAR(ROW,COL+Z1-1,Z3) 10480 Z1=Z1+1 10490 IF Z1<=ABS(FLEN)+1 THEN 10250 10500 Z1=Z1-1 10510 GOTO 10250 10520 CALL HCHAR(ROW,COL+Z1-1,Z0(Z1)) 10530 RTN$="" 10540 RTN=0 10550 FOR Z2=1 TO ABS(FLEN) 10560 IF Z0(Z2)<>95 THEN 10590 10570 NEXT Z2 10580 RTN$="0" 10590 FOR Z3=Z2 TO ABS(FLEN) 10600 IF Z0(Z3)=95 THEN 10630 10610 RTN$=RTN$&CHR$(Z0(Z3)) 10620 NEXT Z3 10630 RTNL=LEN(RTN$) 10640 IF (RTN$="")+(CKNUM=1)=-2 THEN 10190 10650 IF CKNUM<>1 THEN 10680 10660 IF (RTN$=".")+(RTN$="-.")<=-1 THEN 10250 10670 RTN=VAL(RTN$) 10680 RETURN 20000 PR=VAL(SEG$(RTN$,2,1))+5 20010 PC=POS("ABGDEZHU",SEG$(RTN$,1,1),1)+5 20020 FR=VAL(SEG$(RTN$,4,1))+5 20030 FC=POS("ABGDEZHU",SEG$(RTN$,3,1),1)+5 20040 CALL GCHAR(PR,PC,PH) 20050 CALL GCHAR(FR,FC,FH) 20055 RH=PH 20060 FOR I=1 TO 5 20070 RH=RH-8 20080 IF RH<95 THEN 20100 20090 NEXT I 20100 RH=RH+8 20105 CALL HCHAR(PR,PC,103-16*((PR+PC)/2=INT((PR+PC)/2))) 20110 RH=RH-16*((FR+FC)/2=INT((FR+FC)/2))+8*ABS((PH>103)*(PH<112)+(PH>119)*(PH<128)) 20120 CALL HCHAR(FR,FC,RH) 20130 RETURN