0010 rem //----------------------------------// 0020 rem // Valgsystems modul // 0030 rem // ------------------- // 0040 rem // Program : Indtast // 0050 rem // Daks d. 14/11 1981 // 0060 rem //----------------------------------// 0070 dim RESULTAT(15),BUF$(128),PARTILISTE$(16) 0080 dim LISTE$(2),PARTI$(40),SVAR$(1),STEDNAVN$(30) 0090 dim RETLIST$(2) 0100 let IND1=105; IND2=73; RET1=114; RET2=82; SKRIV1=115; SKRIV2=83 0110 let HENT1=104; HENT2=72; STATUS=0; TRUE=0; FALSE=1; CHECKSUM=0; TALSUM=0 0120 let PARTILISTE$="ABCEFGHIKMQVYZÅS" 0130 rem //----------------------->> 0140 proc CURSOR(XADR,YADR) 0150 print chr(6); chr(95+XADR-((XADR-1) div 32)*64); chr(95+YADR); 0160 endproc 0170 rem 0180 rem //------------------------>> Bigtext Procedure 0190 proc BIGTEXT(PARAMIN) 0200 for POINTER=1 to len(PARAMIN$) 0210 if PARAMIN$(POINTER : 1)=>"a" and PARAMIN$(POINTER : 1)<="å" then 0220 let PARAMIN$(POINTER : 1)=chr(ord(PARAMIN$(POINTER : 1))-32) 0230 endif 0240 next POINTER 0250 endproc 0260 rem 0270 rem //----------------------->> Monitor 0280 print chr(12) 0290 loop 0300 exec CURSOR(3,23) 0310 print chr(160) 0320 print chr(128); " I)ndskrivning R)et S)ave H)entS)top "; 0330 print " Z)ero" 0340 FUNKTION=key(0) 0350 if FUNKTION=IND1 or FUNKTION=IND2 then exec INDSKRIV 0360 if FUNKTION=RET1 or FUNKTION=RET2 then exec RETRES 0370 if FUNKTION=SKRIV1 or FUNKTION=SKRIV2 then exec SKRIVRES 0380 if FUNKTION=HENT1 or FUNKTION=HENT2 then exec HENTRES 0390 if FUNKTION=19 then stop 0400 if FUNKTION=26 then exec NULSTIL 0410 endif 0420 endloop 0430 rem //------------------------>> Indskrivning 0440 proc INDSKRIV 0450 SKREVET=FALSE 0460 print chr(12); " Indskrivning" 0470 print chr(160) 0480 print chr(128) 0490 print 0500 print " Valgstednr :"; chr(144); " "; chr(128) 0510 repeat 0520 exec CURSOR(17,5) 0530 input STEDNR 0540 until STEDNR=>1 and STEDNR<=40 and STEDNR=int(STEDNR) 0550 repeat 0560 exec CURSOR(1,5) 0570 print chr(31) 0580 exec CURSOR(2,23) 0590 print " Indsæt diskette nr :"; STEDNR; " og tast 'RETURN'"; 0600 input SVAR$ 0610 if SVAR$="Q" then stop 0620 open "VLGST"+chr(STEDNR/10+48)+chr(STEDNR mod 10+48),FIL,BUF$,70 0630 get FIL,2 : STEDNR1,STEDNAVN$ 0640 close FIL 0650 if STEDNR1<>STEDNR then 0660 exec CURSOR(4,23) 0670 print "fejl : Disketten her ikke nr.:"; STEDNR; " men nr.:"; STEDNR1; 0680 print chr(7) 0690 for VENT=1 to 200 0700 next VENT 0710 endif 0720 until STEDNR=STEDNR1 0730 print chr(12); 0740 print " Liste Parti Antal stemmer" 0750 print " "; chr(160) 0760 print chr(128) 0770 restore 0780 for RESNR=1 to 15 0790 read LISTE$,PARTI$ 0800 print tab(3); LISTE$; tab(13); PARTI$; tab(50); LISTE$; tab(53); ":" 0810 next RESNR 0820 print tab(3); "S)um"; tab(13); "Samlet Antal Stemmer"; tab(50); "S >" 0830 exec CURSOR(4,21) 0840 print STEDNAVN$; " Valgsted nr : "; STEDNR1 0850 let CHECKSUM=0 0860 for RESUL=1 to 15 0870 repeat 0880 exec CURSOR(56,RESUL+3) 0890 print chr(30); 0900 input RESULTAT(RESUL) 0910 until RESULTAT(RESUL)=>0 and RESULTAT(RESUL)=int(RESULTAT(RESUL)) 0920 let CHECKSUM=CHECKSUM+RESULTAT(RESUL) 0930 next RESUL 0940 exec CURSOR(56,RESUL+3) 0950 input TALSUM 0960 if TALSUM<>CHECKSUM then 0970 exec CURSOR(2,22) 0980 print " Checksum afviger"; chr(146); CHECKSUM-TALSUM; chr(128); 0990 print "fra antal indtastede"; chr(7) 1000 print chr(128) 1010 endif 1020 STATUS=1 1030 SKREVET=TRUE 1040 endproc 1050 rem 1060 rem //-------------------------->> Rettelse 1070 proc RETRES 1080 if STATUS<>0 and SKREVET=TRUE then 1090 repeat 1100 repeat 1110 exec CURSOR(1,22) 1120 print chr(31) 1130 exec CURSOR(2,20) 1140 print " Hvilken liste ønskes rettet " 1150 TALRET=key(0) 1160 let RETLIST$=chr(TALRET) 1170 exec BIGTEXT(RETLIST$) 1180 FOUND=FALSE 1190 for LISTENR=1 to 16 1200 if RETLIST$=PARTILISTE$(LISTENR : 1) then 1210 let RETNR=LISTENR; LISTENR=16; FOUND=TRUE 1220 endif 1230 next LISTENR 1240 until FOUND=TRUE 1250 exec CURSOR(2,23) 1260 print chr(31) 1270 exec CURSOR(55,RETNR+3) 1280 print chr(128); chr(30) 1290 exec CURSOR(1,RETNR+3) 1300 print chr(130); 1310 exec CURSOR(56,RETNR+3) 1320 if RETNR=16 then 1330 input TALSUM 1340 else 1350 input RESULTAT(RETNR) 1360 endif 1370 exec CURSOR(1,RETNR+3) 1380 print chr(128) 1390 exec CURSOR(2,23) 1400 print " Ønskes flere rettelser (J/N)" 1410 FUNKTION=key(0) 1420 if FUNKTION=74 or FUNKTION=106 then let SVAR$="j" 1430 if FUNKTION=11 or FUNKTION=110 then let SVAR$="n" 1440 until SVAR$="n" or SVAR$="N" 1450 endif 1460 exec CURSOR(2,22) 1470 print chr(31); 1480 CHECKSUM=0 1490 for RESNR=1 to 15 1500 let CHECKSUM=CHECKSUM+RESULTAT(RESNR) 1510 next RESNR 1520 if CHECKSUM<>TALSUM then 1530 print " Checksum afviger"; chr(146); CHECKSUM-TALSUM; chr(128); 1540 print "fra antal indtastede"; chr(7) 1550 endif 1560 endproc 1570 rem 1580 rem //-------------------------->> Skrivning i filen 1590 proc SKRIVRES 1600 if STATUS<>0 then 1610 exec CURSOR(1,22) 1620 print chr(31) 1630 open "VLGST"+chr(STEDNR1/10+48)+chr(STEDNR1 mod 10+48),FIL,BUF$,70 1640 exec CURSOR(1,23) 1650 print chr(31); 1660 print " Der skrives i filen på disc nr :"; chr(130); STEDNR1; chr(128) 1670 for VENT=1 to 200 1680 next VENT 1690 put FIL,1 : RESULTAT 1700 CHECK=CHECKSUM-TALSUM 1710 put FIL,2 : STEDNR1,STEDNAVN$,TRUE,CHECK 1720 close FIL 1730 exec CURSOR(4,21) 1740 print chr(30); "Den 'Lagrede Afvigelse' :"; CHECKSUM-TALSUM 1750 else 1760 exec CURSOR(1,23) 1770 print chr(31); " Der er ingen resultater at skrive." 1780 for VENT=1 to 300 1790 next VENT 1800 endif 1810 exec CURSOR(1,23) 1820 print chr(31) 1830 endproc 1840 rem 1850 rem //--------------------------->> Hent de lagrede tal op 1860 proc HENTRES 1870 open "VLGST"+chr(STEDNR/10+48)+chr(STEDNR mod 10+48),FIL,BUF$,70 1880 get FIL,2 : STEDNR1,STEDNAVN$,SKREVET,CHECK 1890 if SKREVET=FALSE then 1900 print chr(12) 1910 exec CURSOR(3,14) 1920 print " "; STEDNAVN$ 1930 print " Valgsted nr : "; STEDNR1 1940 print " Der er"; chr(130); "ikke"; chr(128); "skrevet i filen"; chr(7) 1950 for VENT=1 to 300 1960 next VENT 1970 exec CURSOR(1,14) 1980 print chr(31) 1990 else 2000 print chr(12); 2010 print " Liste Parti Antal stemmer" 2020 print " "; chr(160) 2030 print chr(128) 2040 get FIL,1 : RESULTAT 2050 get FIL,2 : STEDNR,STEDNAVN$,SKREVET,CHECK 2060 restore 2070 let CHECKSUM=0 2080 for RESNR=1 to 15 2090 let CHECKSUM=CHECKSUM+RESULTAT(RESNR) 2100 read LISTE$,PARTI$ 2110 print tab(3); LISTE$; tab(13); PARTI$; tab(53); ":"; RESULTAT(RESN) 2120 next RESNR 2130 DIFF=-1 2140 let TALSUM=CHECKSUM+CHECK*DIFF 2150 print tab(3); "S)um"; tab(13); "Samlet Antal Stemmer"; tab(50); "S >"; 2160 print TALSUM 2170 exec CURSOR(4,20) 2180 print STEDNAVN$; " Valgsted nr : "; STEDNR1 2190 exec CURSOR(4,21) 2200 print "Den 'Lagrede Afvigelse' :"; CHECK 2210 endif 2220 close FIL 2230 STATUS=1 2240 endproc 2250 rem 2260 rem //----------------------------->> Nulstiling 2270 proc NULSTIL 2280 exec CURSOR(3,23) 2290 print chr(31); 2300 input " Indsæt Diskette og Tast 'RETURN'",SVAR$ 2310 open "VLGST"+chr(STEDNR/10+48)+chr(STEDNR mod 10+48),FIL,BUF$,70 2320 get FIL,2 : STEDNR1,STEDNAVN$,SKREVET,CHECK 2330 exec CURSOR(2,20) 2340 print chr(31); 2350 exec CURSOR(3,20) 2360 print "valgsted nr :",STEDNR1 2370 print " "; STEDNAVN$ 2380 if SKREVET=TRUE then 2390 print " Status : True" 2400 else 2410 print " Status : False" 2420 endif 2430 print " Filen på"; chr(146); "Disc nr :"; STEDNR1; chr(128); 2440 print "er nulstillet" 2450 for RESNR=1 to 15 2460 let RESULTAT(RESNR)=0 2470 next RESNR 2480 put FIL,1 : RESULTAT 2490 put FIL,2 : STEDNR1,STEDNAVN$,FALSE,TRUE 2500 close FIL 2510 for VENT=1 to 350 2520 next VENT 2530 exec CURSOR(1,20) 2540 print chr(31) 2550 endproc 2560 data "A","Socialdemokratiet" 2570 data "B","Radikale Venstre" 2580 data "C","Konservative Folkeparti" 2590 data "E","Retsforbundet" 2600 data "F","Socialistisk Folkeparti" 2610 data "G","Listen For Medbestemmelse" 2620 data "H","Kvinder For Samarbejde" 2630 data "I","Socialistisk Arbejderparti" 2640 data "K","Det Kommunistiske Parti" 2650 data "M","Centrum-Demokraterne" 2660 data "Q","Kristeligt Folkeparti" 2670 data "V","Venstre" 2680 data "Y","Venstresocialisterne" 2690 data "Z","Fremskridtspartiet" 2700 data "Å","Ålborg Listen"