10 REM +++++++++++++++++++++++++++++++++ 11 REM ! Program .... PERSNR 12 REM ! Utg}va 1.1 1982-02-07 13 REM ! av (c) Carl K|vamees 14 REM ! Minne 16 Kbytes f|r flexskiva 15 REM ! Ins{nt av 767 16 REM +++++++++++++++++++++++++++++++++ 17 REM 18 REM Screened by +TCP+ 19 REM 20 REM +------------------------------- 21 REM ! Matain personnummer 22 REM ! ex. 320713-0216 (|ver 100 23 REM ! }r '+' ex.810921+0131) 24 REM +------------------------------- 25 REM ! Om kontrollsiffran (Dvs. 26 REM ! den sista siffran) ej 27 REM ! st{mmer talar datorn om 28 REM ! det, och skriver det 29 REM ! r{tta. 30 REM ! Man stoppar pgm genom att 31 REM ! g|ra 'END' vid inmatning. 32 REM ! P} rad 100 {r }rets }r 33 REM ! angivet i I8% och }r- 34 REM ! hundrade i I9%. 35 REM +------------------------------- 36 I9%=1900 : I8%=82 : REM ]r 37 ; CHR$(12%) 38 ; CUR(0%,8%)'P E R S O N N U M M E R' : ; TAB(7%);CHR$(23%);STRING$(23%,35%); 39 REM # Input 40 ; CUR(4%,2%);'Vargod mata in personnummer' : ; ' < >'; 41 ; CUR(5%,2%); : INPUTLINE A$ : A$=LEFT$(A$,LEN(A$)-2%) 42 IF A$='END' OR A$='end' THEN ; CHR$(12%) : ; 'Adj|' : END 43 IF LEN(A$)<>11% THEN 37 44 REM # Skriv data om nr 45 A1$=MID$(A$,7%,1%) : IF A1$='-' OR A1$='+' THEN 46 ELSE 37 46 ONERRORGOTO 37 47 A%=VAL(MID$(A$,10%,1%)) 48 ; CUR(8%,2%)'[garen {r av ';SPACE$(23%);CUR(8%,15%); 49 IF A%/2=INT(A%/2) THEN 51 50 ; 'manligt k|n' : GOTO 52 51 ; 'kvinnligt k|n' 52 IF A1$='+' THEN A%=100% ELSE A%=0% 53 A1%=VAL(LEFT$(A$,2%)) : A2%=VAL(MID$(A$,3%,2%)) : A3$=MID$(A$,5%,2%) 54 IF A2%<1% OR A2%>12% THEN 37 55 IF VAL(A3$)<1% OR VAL(A3$)>31% THEN 37 56 RESTORE 90 57 FOR I%=1% TO A2% : READ A1$ : NEXT I% 58 ; CUR(10%,2%)'F|dd den';SPACE$(30%);CUR(10%,10%);VAL(A3$); 59 IF VAL(RIGHT$(A3$,2%))<3% THEN ; ':a '; ELSE ; ':e '; 60 IF I9%+I8%-A1%9% THEN GOSUB 88 81 NEXT I% 82 B%=0% : FOR I%=0% TO 8% : B%=B%+B%(I%) : NEXT I% 83 B%=VAL(RIGHT$(NUM$(B%),LEN(NUM$(B%)))) 84 IF B%=0% THEN 86 85 B%=10%-B% 86 B$=RIGHT$(NUM$(B%),2%) 87 RETURN 88 B%(I%)=VAL(ADD$(LEFT$(NUM$(B%(I%)),2%),RIGHT$(NUM$(B%(I%)),3%),0%)) : RETURN 89 REM # DATA 90 DATA januari,februari,mars,april 91 DATA maj,juni,juli,agusti 92 DATA september,oktober,november,december 93 DATA 2,1,2,1,2,1,2,1,2