1 REM Ins{nd av Kristoffer Eriksson <5357> 1988-04-25 20.34.07 (KERMIT) 10 ! save PSSINIT, 1988-04-17 02.25 15 ! PSSINIT. Av Kristoffer Eriksson <5357>. F|r ABC80X. Se PSSEKR.INF. 20 ! 30 ! Ver / Sign/ Datum / Kommentar 40 ! X.00 / SKE / 85-04-02 / 50 ! X.01 / SKE / 85-05-08 / Oanv{nda funktioner bortrensade 60 ! X.02 / SKE / 85-11-29 / Nollst{ll tiden 65 ! 1.03 / SKE / 88-04-17 / WINDOW 2.00, Frisl{ppt 70 ! 80 INTEGER : EXTEND : DOUBLE : ! NO RESUME 90 ! 100 ! Typ: 1=alfanumeriskt, 2=numeriskt 110 DEF FNGet$(Nr,Max,Deflt$,Typ) LOCAL X,P,X$=161,Gt$=1,D 120 X$=Deflt$ : X=0 : P=LEN(X$) 130 ; #Nr C1$ X$; ! STRING$(LEN(X$),8); 140 WHILE X=0 150 Gt$=FNInkey$(Nr) : X=INSTR(1,CHR$(13,196,198,192,8,9,9,9,24,199),Gt$) 160 ON X+1 GOTO 240,300,300,300,300,170,180,300,300,190,210 170 IF Max>1 THEN ; #Nr LEFT$(CHR$(8),SGN(P)); : P=P+(P>0) : GOTO 290 ELSE 300 180 ; #Nr MID$(X$,P+1,-(P=LEN(X$) THEN P=P-1 : ; #Nr CHR$(8); 220 X$=LEFT$(X$,P)+RIGHT$(X$,P+2) 230 ; #Nr RIGHT$(X$,P+1) " " STRING$(LEN(X$)-P+1,8); : GOTO 290 240 IF Gt$>CHR$(127) OR Gt$<" " OR (Typ=2 AND (Gt$<"0" OR Gt$>"9")) THEN ; CHR$(7); : GOTO 290 250 IF D=0 AND P=0 THEN X$="" 260 IF LEN(X$)>=Max THEN ; #Nr CHR$(7); : GOTO 290 270 X$=LEFT$(X$,P)+Gt$+RIGHT$(X$,P+1) : P=P+1 280 ; #Nr RIGHT$(X$,P) STRING$(LEN(X$)-P,8); 290 X=0 : D=ASCII(Gt$) 300 WEND 310 IF X=1 THEN 350 320 IF LEN(Deflt$)

P THEN ; #Nr SPACE$(LEN(X$)-P); : P=LEN(X$) 340 Op=(INSTR(1,"7 254 368",NUM$(X))-5)/2 : X$=Deflt$ : GOTO 360 350 Op=1 : IF LEN(X$)>Max THEN X$=LEFT$(X$,Max) 360 ; #Nr STRING$(P,8) C2$ X$; : RETURN X$ 370 FNEND 380 ! 390 DEF FNInkey$(Nr) LOCAL Gt$=1,A,C,B 400 GET #Nr,Gt$ 410 IF ASCII(Gt$)<192 THEN Op=INSTR(2,CHR$(0,8,8,9),Gt$)-3 : GOTO 430 420 Op=INSTR(1,CHR$(212,196,192,198,214),Gt$)-3 430 Cr=ASCII(Gt$)=13 : IF Cr THEN Op=1 440 RETURN Gt$ 450 FNEND 460 ! 470 DEF FNBratid LOCAL A 480 ON ERROR GOTO 560 490 A=VAL(LEFT$(TIME$,4)) 500 IF A<1985 OR A>2050 THEN RETURN 0 510 A=VAL(MID$(TIME$,6,2)) 520 IF A<1 OR A>12 THEN RETURN 0 530 A=VAL(MID$(TIME$,9,2)) 540 IF A<1 OR A>31 THEN RETURN 0 550 RETURN -1 560 RETURN 0 570 FNEND 580 ! 590 DEF FNTolkatid(T$) LOCAL P,A,V 600 ON ERROR GOTO 700 610 A=-17 : P=1 620 WHILE P<=LEN(T$) AND A<-14 630 IF MID$(T$,P,1)>="0" AND MID$(T$,P,1)<="9" THEN V=V*10+VAL(MID$(T$,P,1)) : GOTO 670 640 POKE A,V 650 V=0 660 A=A+1 670 P=P+1 680 WEND 690 POKE -14,0,0,0 700 RETURN P<=LEN(T$) 710 FNEND 720 ! 730 DEF FNTimeinit LOCAL I$=8 740 IF FNBratid THEN RETURN 0 750 Z=FNSettime 760 WHILE NOT FNBratid 770 ; #1 CUR(3,7) C2$ "Datum: ]]-MM-DD" STRING$(8,8); 780 I$=FNGet$(1,8,I$,1) 790 IF Op=0 THEN RETURN -1 800 IF LEN(I$)<6 OR NOT Cr THEN ; CHR$(7); : GOTO 770 810 IF FNTolkatid(I$+"-") THEN ; CHR$(7); : GOTO 770 820 WEND 830 RETURN 0 840 FNEND 850 ! 860 DEF FNInit 870 Abc=800 : IF PEEK(39)=4 THEN Abc=806 ELSE IF PEEK(39)=3 THEN Abc=802 880 IF Abc=806 THEN POKE PEEK2(116)+6,1 ! ATTRIBUTE 890 DIM Crt$=0,C1$=1,C2$=1,C3$=1,C4$=3 900 POKE VAROOT(Crt$),208,7,0,120,208,7 910 MID$(Crt$,1921,80)=SPACE$(80) 920 OUT 56,6,57,25 930 IF Abc<>806 THEN 980 940 C1$=CYA ! Inmatn 950 C2$=YEL ! Allm{nt 960 C3$=RED ! Ramar 970 C4$=BLU+NWBG+WHT ! Tid 980 RETURN 0 990 FNEND 1000 ! 1010 ! __Copy CMOS clock into TIME$ 1020 DEF FNSettime LOCAL Cod$=67,Tbuf$=7 1030 Cod$=CHR$(235,62,134,211,54,62,133,211,54,227,227,1,240,4,121,230) 1040 Cod$=Cod$+CHR$(128,246,7,211,54,62,6,211,54,227,227,203,17,62,134,211) 1050 Cod$=Cod$+CHR$(54,227,227,16,233,14,7,6,8,62,6,211,54,227,227,62) 1060 Cod$=Cod$+CHR$(134,211,54,219,55,135,203,30,16,239,35,13,32,233,62,5) 1070 Cod$=Cod$+CHR$(211,54,201) 1080 Tbuf$=STRING$(7,0) 1090 Q7=CALL(VARPTR(Cod$),VARPTR(Tbuf$)) 1100 IF Tbuf$=STRING$(7,0) THEN RETURN 0 1110 ! * 1120 POKE -11,0 1130 POKE -17,FNBd(5,Tbuf$),FNBd(4,Tbuf$),FNBd(3,Tbuf$) 1140 POKE -14,FNBd(1,Tbuf$),FNBd(2,Tbuf$),FNBd(7,Tbuf$) 1150 RETURN 0 1160 FNEND 1170 ! __Convert BCD --> Decimal 1180 DEF FNBd(Ptr,T$) LOCAL Bcd 1190 Bcd=ASCII(RIGHT$(T$,Ptr)) 1200 RETURN 10*(Bcd AND 240)/16+(Bcd AND 15) 1210 FNEND 1220 ! 1230 ! _______________________________________________________________________. 1240 Z=FNInit 1250 ; CHR$(12) 1260 RESTORE 1450 1270 WHILE 1 1280 READ I$,F,T$ 1290 IF I$="" THEN 1380 1300 CLOSE 1 1310 ; CUR(0,0) CHR$(128+F); 1320 OPEN "WND:"+I$+".O" AS FILE 1 1330 ; #1 CHR$(12) YEL; 1350 ; #1 " " T$ 1360 WEND 1370 ! 1380 IF FNTimeinit THEN 1420 1390 CLOSE 1 1400 ; CUR(0,0); 1410 ON ERROR GOTO 1420 : CHAIN "PSSEKR" 1420 ON ERROR GOTO 1430 : CHAIN "XS0" 1430 CHAIN "NUL:" 1440 ! 1450 DATA 03011878,3,"" 1460 DATA 02371138,4,"" 1470 DATA 03291138,5,"" 1480 DATA 04221138,6,Privat-sekreteraren 1490 DATA 06161138,3,"Version 1.11, 1988" 1500 DATA 08111138,2,Av Kristoffer Eriksson / ABC <5357> 1510 DATA 11061138,1,F}r kopieras i ickekommersiellt syfte 1520 DATA "",0,""