Ved at fortsætte her på siden accepterer du brugen af teknik, som anvendes til at indsamle statistik om besøg på websites sider.
Privacy


Der kommer snart mere på siderne - kig snart ind igen. Tak.

Forsiden

TALLUX Økonomistyring er et komplet økonomiprogram med integreret fakturerings-, bogholderi- og sagsstyringsmodul (time- sagsregnskab). Et letforståeligt program på dansk, der gør det sikkert og nemt at få overblik over virksomhedens økonomi, moms og fakturering. Programmet er internetbaseret og kræver ingen programinstallation. Der er indbygget supportfunktion, der gør det epokegørende nemt at få hjælp undervejs.
Du har altid den seneste programversion til rådighed og TALLUX er trods alle fordelene et billigt og godt alternativ til de dyre og indviklede prgrammer med dyre opdateringsabonnementer.
Prøv en gratis og uforpligtende prøveperiode før du beslutter dig - på www.tallux.dk.
Kontakt ANP-Data & WEB-Design for nærmere oplysninger på tlf. 98 31 53 41.

VIP-Messenger er et nemt og smart internetbaseret meddelelsesprogram med indbygget aftalekalender og påmindelsesfunktion, SMS-gateway, stempelur og fraværsregistrering (feriekalender). Et letforståeligt program på dansk, der gør det nemt at få afleveret vigtige beskeder uden at skulle bruge tid ved telefon, mail eller forstyrrende samtaler. Via internetbrowseren har du kontakt til hele din omverden, og du kan modtage og sende beskeder på få sekunder. Samtidigt er VIP-Messenger optimalt for chefen, når han skal have hurtig kontakt til medarbejderne, og for telefondamen, der lynhurtigt og nemt kan få afleveret telefonbeskeder til alle i virksomheden. En billig løsning på alle virksomheders interne kommunikationsproblemer. Programmet kan tillige betjenes fra mobiltelefoner (GPRS) - meget billigere end SMS-beskeder.
Kontakt ANP-Data & WEB-Design for nærmere oplysninger og demonstration på tlf. 98 31 53 41.
Prøv DEMO på www.beskedcenter.dk/demo

Spar mange penge ved at holde dit møde på internettet. Et letforståeligt program på dansk giver dig og dine kolleger, samarbejdspartnere, kunder over hele verden en mulighed for at skrive sammen på internettet, samtidig med at I kan dele og udveksle dokumenter, tegninger mv. VIP-DirectMeeting er en prisbillig løsning i forhold til TDC's og andres lignende programmer. Møderum kan oprettes med kort varsel. Programmet er forresten også særdeles velegnet til fjernundervisning.
Kontakt ANP-Data & WEB-Design for nærmere oplysninger og demonstration tlf. 98 31 53 41.

Mangler du respons fra din kunder? Med VIP-Query kan du spare mange gode danske kroner til markedsanalyser, idet dette program arbejder helt for sig selv. Du opretter selv dine spørgsmål og/eller afstemninger, og lader så dine kunder besvare spørgsmålene over en periode. Du får en utrolig værdifuld viden om hvordan DIN virksomhed kan gøre det bedre. Oprettelsen varer højst 15 min. og du er klar til evalueringen.
Kontakt ANP-Data & WEB-Design for nærmere oplysninger og demonstration tlf. 98 31 53 41.

Til toppen

BASIC Programmering - Nodeprogram

Engang i 1980'er så jeg et indslag i TV-avisen, om at nogen på en avanceret computer havde lavet et program, der kunne udskrive noder - hvilket var en stor sensation. Jeg fik den tanke, at det måtte kunne laves på en hjemme-PC også. Folk der kendte lidt til DOS og BASIC rystede på hovedet. Men jeg havde lært lidt BASIC på min Commodore64, så det skulle da forsøges.

Og det lykkedes faktisk - og koden ser sådan ud:

10 CLEAR:REM 23/10 1991 KL 22:00
20 FOR X=2 TO 10:KEY X," ":NEXT
30 OK=1:KEY OFF:DEF SEG=0:ON KEY(1) GOSUB 4530:KEY(1) ON
40 DIM A$(1000),P$(500),B$(20):KEY 5,"LOAD"+CHR$(13):KEY 8,"SAVE"+CHR$(13):KEY 2,"TEMPO"+CHR$(13):KEY 3,"SPIL"+CHR$(13):REM KEY 11,"TRANS"+CHR$(13)
50 KEY 3,"SPIL"+CHR$(13):KEY 9,"TITEL"+CHR$(13):KEY 7,"VISK"+CHR$(13):KEY 4,"SLET"+CHR$(13):KEY 6,"KOPI"+CHR$(13):KEY 10,"OKTAV"+CHR$(13)
60 ON ERROR GOTO 70:PP=1:GOTO 90
70 IF ERL=5280 THEN RESUME 5270
80 IF ERR THEN CLOSE 1:RESUME 160
90 GOSUB 100:GOTO 160
100 Y=55:X=62:S=1:GOSUB 110:RETURN
110 GOSUB 1700:GG=1:FOR V=PP*92-91 TO PP*92:IN$=A$(V)
120 GOSUB 590
130 NEXT
140 FOR V=1 TO 5:IF V=PP THEN IN$=B$(V):GOSUB 590
150 NEXT:GG=0:Y=55:X=62:S=1:M=PP*92-91:RETURN
160 LOCATE 25,2:PRINT PP" INDTAST : ";SPACE$(63-LEN(IN$));
170 CC=8:P=0:LOCATE 1,1:IF PP=1 THEN PRINT SPACE$((77-LEN(T$))/2);T$;SPACE$((77-LEN(T$))/2);
180 LOCATE 1,1:IN$="":C=0:LOCATE ((55+(S*45-45))/8),(X+17)/8:PRINT CHR$(94);
190 Y$=INKEY$:IF Y$="" THEN 190
200 IF ASC(LEFT$(Y$,1))=0 THEN 320
210 IF (ASC(Y$)=27 AND (X>62 OR S>1)) THEN M=M-1:GOTO 3720
220 IF ASC(Y$)=27 THEN GOSUB 1590:GOTO 180
230 IF ASC(Y$)=13 AND C=0 THEN GOSUB 1550:GOTO 160
240 IF ASC(Y$)=13 THEN 450
250 IF ASC(Y$)=8 AND IN$>"" THEN IN$=LEFT$(IN$,LEN(IN$)-1):C=C-1:GOTO 300
260 IF ASC(Y$)=8 THEN LOCATE 25,1:PRINT SPACE$(78-LEN(IN$));:GOSUB 1590:GOTO 190
270 IF ASC(Y$)=9 THEN 190
280 C=C+1:IF C>CC THEN 190
290 IN$=IN$+Y$
300 LOCATE 25,17:PRINT IN$;SPACE$(62-LEN(IN$));
310 GOTO 190
320 IF ASC(RIGHT$(Y$,1))=77 THEN GOSUB 1610:GOTO 160
330 IF ASC(RIGHT$(Y$,1))=75 AND (S>1 OR X>38) THEN GOSUB 1670:GOTO 160
340 IF ASC(RIGHT$(Y$,1))=72 AND S>1 THEN GOSUB 1590:S=S-1:M=M-23:GOTO 440
350 IF ASC(RIGHT$(Y$,1))=80 AND S<4 THEN GOSUB 1590:S=S+1:M=M+23:GOTO 440
360 IF ASC(RIGHT$(Y$,1))=80 AND S=4 THEN GOSUB 1590:S=1:M=M-69:GOTO 440
370 IF ASC(RIGHT$(Y$,1))=72 AND S=1 THEN GOSUB 1590:S=4:M=M+69:GOTO 440
380 IF ASC(RIGHT$(Y$,1))=71 THEN GOSUB 1590:S=1:X=62:M=PP*92-91:GOTO 160
390 IF ASC(RIGHT$(Y$,1))=79 THEN GOSUB 1590:S=4:X=614:M=PP*92+1:GOTO 160
400 IF ASC(RIGHT$(Y$,1))=81 AND PP+1<6 THEN PP=PP+1:GOSUB 100:M=PP*92-91:GOTO 160
401 IF ASC(RIGHT$(Y$,1))=81 AND PP+1=6 THEN PP=1:GOSUB 100:M=PP*92-91:GOTO 160
410 IF ASC(RIGHT$(Y$,1))=73 AND PP-1>0 THEN PP=PP-1:GOSUB 100:M=PP*92-91:GOTO 160
411 IF ASC(RIGHT$(Y$,1))=73 AND PP-1=0 THEN PP=5:GOSUB 100:M=PP*92-91:GOTO 160
420 IF ASC(RIGHT$(Y$,1))=83 THEN FOR CW=M TO 479:A$(CW)=A$(CW+1):NEXT:A$(480)="":GG=1:GOSUB 100:GG=0:GOTO 160
430 IF ASC(RIGHT$(Y$,1))=82 THEN FOR CW=480 TO M+1 STEP-1:A$(CW)=A$(CW-1):NEXT:A$(M)="":GG=1:GOSUB 100:GG=0
440 GOTO 160
450 IF NN=1 THEN NN=0:N$=IN$:RETURN
460 IF IN$="SAVE" THEN CC=40:GOSUB 3830:GOTO 3840
470 IF IN$="VISK" THEN GOSUB 4630:GOTO 160
480 IF IN$="SLET" THEN GOSUB 4670:GOTO 160
490 IF IN$="KOPI" THEN GOSUB 4720:GOTO 160
500 IF IN$="TEMPO" THEN GOSUB 5320:GOTO 160
510 IF IN$="OKTAV" THEN GOSUB 5360:GOTO 160
512 IF IN$="TRANS" THEN GOSUB 6000:GOSUB 100:GOTO 160
513 IF IN$="SLUT" THEN SAVE"SAVE":SYSTEM
520 IF IN$="SPIL" THEN GOSUB 4770:GOTO 160
530 IF IN$="LOAD" THEN CC=40:GOSUB 3830:GOTO 3890
540 IF IN$="TITEL" THEN CC=40:GOSUB 3830:T$=IN$:GOTO 160
550 IF LEFT$(IN$,1)><"+" AND LEFT$(IN$,1)><"-" AND RIGHT$(IN$,3)="DUR" THEN 590
560 IF MID$(IN$,2,1)="H" THEN IN$=LEFT$(IN$,1)+"B"+MID$(IN$,3,LEN(IN$)-2)
570 IF MID$(IN$,3,1)="H" THEN IN$=LEFT$(IN$,2)+"B"+MID$(IN$,4,LEN(IN$)-3)
580 A$(M)=IN$
590 R=0:IF LEN(IN$)<4 THEN 680
600 FOR R=1 TO 6:GOSUB 610:NEXT:GOTO 680
610 IF RIGHT$(IN$,1)="." THEN IN$=LEFT$(IN$,LEN(IN$)-1):H=1
620 IF RIGHT$(IN$,1)="+" THEN IN$=LEFT$(IN$,LEN(IN$)-1):K=1
630 IF RIGHT$(IN$,1)="-" THEN IN$=LEFT$(IN$,LEN(IN$)-1):B=1
640 IF RIGHT$(IN$,1)="Q" THEN IN$=LEFT$(IN$,LEN(IN$)-1):Q=1
650 IF RIGHT$(IN$,1)="K" THEN IN$=LEFT$(IN$,LEN(IN$)-1):KB=1
660 IF RIGHT$(IN$,1)="L" THEN IN$=LEFT$(IN$,LEN(IN$)-1):LB=1
670 RETURN
680 IF LEFT$(IN$,1)="P" THEN GOSUB 3940
690 IF MID$(IN$,2,1)="/" OR MID$(IN$,3,1)="/" THEN GOSUB 4330:RETURN
700 R=3:IF RIGHT$(IN$,3)="DUR" THEN 710 ELSE 1080
710 REM IF IN$="GESDUR" THEN GOSUB 2910
720 REM IF IN$="+GESDUR" THEN L=45*S-23:O=X+24:TS=1:GOSUB 2920:TS=0
730 REM IF IN$="-GESDUR" THEN L=45*S-17:O=X+36:TS=1:GOSUB 4290:TS=0
740 IF IN$="DESDUR" THEN GOSUB 2960
750 IF IN$="+DESDUR" THEN L=45*S-17:O=X+24:TS=1:GOSUB 2970:TS=0
760 IF IN$="-DESDUR" THEN L=45*S-11:O=X+36:TS=1:GOSUB 4290:TS=0
770 IF IN$="ASDUR" THEN GOSUB 3010
780 IF IN$="+ASDUR" THEN L=45*S-25:O=X+24:TS=1:GOSUB 3020:TS=0
790 IF IN$="-ASDUR" THEN L=45*S-20:O=X+36:TS=1:GOSUB 4290:TS=0
800 IF IN$="ESDUR" THEN GOSUB 3060
810 IF IN$="+ESDUR" THEN L=45*S-20:O=X+24:TS=1:GOSUB 3070:TS=0
820 IF IN$="-ESDUR" THEN L=45*S-14:O=X+36:TS=1:GOSUB 4290:TS=0
830 IF IN$="BDUR" THEN GOSUB 3110
840 IF IN$="+BDUR" THEN L=45*S-20:O=X+24:TS=1:GOSUB 3120:TS=0
850 IF IN$="-BDUR" THEN L=45*S-22:O=X+36:TS=1:GOSUB 4290:TS=0
860 IF IN$="FDUR" THEN GOSUB 3160
870 IF IN$="+FDUR" THEN L=45*S-20:O=X+24:TS=1:GOSUB 3170:TS=0
880 IF IN$="-FDUR" THEN L=45*S-15:O=X+36:TS=1:GOSUB 4290:TS=0
890 IF IN$="CDUR" THEN GOSUB 3280
900 IF IN$="GDUR" THEN GOSUB 3210
910 IF IN$="+GDUR" THEN L=45*S-28:O=X+24:TS=1:GOSUB 3220:TS=0
920 IF IN$="-GDUR" THEN L=45*S-24:O=X+36:TS=1:GOSUB 4290:TS=0
930 IF IN$="DDUR" THEN GOSUB 3350 940 IF IN$="+DDUR" THEN L=45*S-21:O=X+24:TS=1:GOSUB 3360:TS=0
950 IF IN$="-DDUR" THEN L=45*S-17:O=X+36:TS=1:GOSUB 4290:TS=0
960 IF IN$="ADUR" THEN GOSUB 3420
970 IF IN$="+ADUR" THEN L=45*S-29:O=X+24:TS=1:GOSUB 3430:TS=0
980 IF IN$="-ADUR" THEN L=45*S-25:O=X+36:TS=1:GOSUB 4290:TS=0
990 IF IN$="EDUR" THEN GOSUB 3490
1000 IF IN$="+EDUR" THEN L=45*S-23:O=X+24:TS=1:GOSUB 3500:TS=0
1010 IF IN$="-EDUR" THEN L=45*S-20:O=X+36:TS=1:GOSUB 4290:TS=0
1020 IF IN$="HDUR" THEN GOSUB 3560
1030 IF IN$="+HDUR" THEN L=45*S-17:O=X+24:TS=1:GOSUB 3500:TS=0
1040 IF IN$="-HDUR" THEN L=45*S-13:O=X+36:TS=1:GOSUB 4290:TS=0
1050 REM IF IN$="FISDUR" THEN GOSUB 3630
1060 REM IF IN$="+FISDUR" THEN L=45*S-25:O=X+24:TS=1:GOSUB 3640:TS=0
1070 REM IF IN$="-FISDUR" THEN L=45*S-21:O=X+36:TS=1:GOSUB 4290:TS=0
1080 IF GG=0 THEN IF IN$="" THEN 160
1090 IF GG=1 THEN IF IN$="" THEN GOSUB 1560:RETURN
1100 IF (IN$)="T" THEN N=9:GOTO 1380
1110 IF (IN$)="TT" THEN N=10:GOSUB 1380
1120 IF (IN$)="TY" THEN N=5:GOSUB 1380
1122 IF (IN$)="TR" THEN N=13:GOSUB 1380
1130 IF (IN$)=":TT" THEN N=12:GOSUB 1380
1140 IF (IN$)="TT:" THEN N=11:GOSUB 1380
1150 IF VAL(LEFT$(IN$,1))<1 THEN RETURN
1160 IF RIGHT$(IN$,2)="G1" THEN P=48
1170 IF RIGHT$(IN$,2)="A1" THEN P=46
1180 IF RIGHT$(IN$,2)="B1" THEN P=44
1190 IF RIGHT$(IN$,2)="C2" THEN P=42
1200 IF RIGHT$(IN$,2)="D2" THEN P=40
1210 IF RIGHT$(IN$,2)="E2" THEN P=38
1220 IF RIGHT$(IN$,2)="F2" THEN P=36
1230 IF RIGHT$(IN$,2)="G2" THEN P=34
1240 IF RIGHT$(IN$,2)="A2" THEN P=32
1250 IF RIGHT$(IN$,2)="B2" THEN P=30
1260 IF RIGHT$(IN$,2)="C3" THEN P=28
1270 IF RIGHT$(IN$,2)="D3" THEN P=26
1280 IF RIGHT$(IN$,2)="E3" THEN P=24
1290 IF RIGHT$(IN$,2)="F3" THEN P=22
1300 IF RIGHT$(IN$,2)="G3" THEN P=20
1310 IF RIGHT$(IN$,2)="A3" THEN P=18
1320 IF RIGHT$(IN$,2)="B3" THEN P=16
1330 IF RIGHT$(IN$,2)="C4" THEN P=14
1340 IF RIGHT$(IN$,2)="D4" THEN P=12
1350 IF RIGHT$(IN$,2)="E4" THEN P=10
1360 IF P=0 THEN 160
1370 GOTO 1390
1380 P=0:GOTO 1400
1390 N=VAL(LEFT$(IN$,2)):IF N><1 AND N><2 AND N><4 AND N><8 AND N><16 THEN 160
1400 IF X=614 AND S=4 THEN 160:ELSE GOSUB 1550
1410 Y=S*45+P-45
1420 IF P<31 AND N>1 THEN N=N+1
1430 ON N GOSUB 2340,2240,2290,2090,2170,2740,2680,1860,1970,2710,2760,2790,2850,2901,190,2400,2530
1440 IF P=10 OR P=14 OR P=18 OR P=42 OR P=46 THEN LINE (X-7,Y)-(X+7,Y)
1450 IF P=4 THEN LINE (X-7,Y+2)-(X+7,Y+2):LINE (X-7,Y+6)-(X+7,Y+6):LINE (X-7,Y+10)-(X+7,Y+10)
1460 IF P=10 THEN LINE (X-7,Y+4)-(X+7,Y+4):LINE (X-7,Y+8)-(X+7,Y+8)
1470 IF P=12 THEN LINE (X-7,Y+2)-(X+7,Y+2):LINE (X-7,Y+6)-(X+7,Y+6)
1480 IF P=14 THEN LINE (X-7,Y+4)-(X+7,Y+4)
1490 IF P=16 THEN LINE (X-7,Y+2)-(X+7,Y+2)
1500 IF P=44 THEN LINE (X-7,Y-2)-(X+7,Y-2)
1510 IF P=46 THEN LINE (X-7,Y-4)-(X+7,Y-4)
1520 IF P=48 THEN LINE (X-7,Y-2)-(X+7,Y-2):LINE (X-7,Y-6)-(X+7,Y-6)
1530 IF GG=1 THEN RETURN
1540 GOTO 160
1550 REM FLYT FR TEGN ***************
1560 GOSUB 1590:M=M+1
1570 IF X=614 AND S<4 THEN S=S+1:X=62:IF GG=1 THEN M=M+1
1580 X=X+24:RETURN
1590 IF GG=1 THEN RETURN
1600 LOCATE ((55+(S*45-45))/8),(X+16)/8:PRINT CHR$(32);:LOCATE 25,2:RETURN
1610 REM TIL HJRE ***** CURSOR
1620 GOSUB 1590
1630 IF X>61 AND X<614 THEN X=X+24:M=M+1:RETURN
1640 IF S=4 AND X=614 THEN RETURN
1650 IF S<4 AND X=614 THEN S=S+1:X=62:RETURN
1660 IF S<5 THEN S=S+1:X=62:M=M+1:RETURN ELSE M=M+1:RETURN
1670 REM TIL VENSTRE ***** CURSOR
1680 GOSUB 1590:IF X>85 THEN X=X-24:M=M-1:RETURN
1690 IF S>1 AND X=62 THEN X=614:S=S-1:RETURN ELSE RETURN
1700 SCREEN 2,,0,0:CLS:R=3:WIDTH 80
1710 REM NODESYSTEM ****
1720 CLS:FOR L=22 TO 165 STEP 45
1730 LINE (2,L)-(638,L)
1740 LINE (2,L+4)-(638,L+4)
1750 LINE (2,L+8)-(638,L+8)
1760 LINE (2,L+12)-(638,L+12)
1770 LINE (2,L+16)-(638,L+16)
1780 LINE (2,L)-(2,L+16)
1790 LINE (638,L)-(638,L+16)
1800 DRAW "BL623 BU6 U1 R2 U1 R4 D1 R4 D1 R3 D1 R2 D1 R2 D1
1810 DRAW "L4 D1 L3 D1 L3 D1 L4 U1 L4 U1 L4 U2 L2
1820 DRAW "U2 L1 U2 R2 U1 R2 U2 R2 U2 R3 U2 R4 U2"
1830 DRAW "R4 U2 R2 U1 R2 U1 L3 U1 L3 U1 L3 D27"
1840 DRAW "L1 D1 L1 D1 L2 U2 L1 U2 R2 "
1850 NEXT:RETURN
1860 REM NODE 1/8 OP ****
1870 R=3:GOSUB 4390
1880 GOSUB 2650
1890 IF H=1 THEN GOSUB 4470
1900 PAINT (X,Y+1),R,2
1910 PAINT (X,Y-1),R,2
1920 LINE (X+1+R,Y)-(X+1+R,Y-12)
1930 LINE (X+R,Y-12)-(X+10,Y-9)
1940 LINE (X+10,Y-9)-(X+11,Y-5)
1950 LINE (X+11,Y-5)-(X+8,Y-3)
1960 LINE (X+8,Y-3)-(X+7,Y-3):RETURN
1970 REM NODE 1/8 NED ****
1980 R=3
1990 GOSUB 4390
2000 GOSUB 2650
2010 IF H=1 THEN GOSUB 4500
2020 PAINT (X,Y+1),R,2
2030 PAINT (X,Y-1),R,2
2040 LINE (X-R-1,Y)-(X-R-1,Y+12)
2050 LINE (X-R,Y+12)-(X+3,Y+6)
2060 LINE (X+3,Y+6)-(X+5,Y+5)
2070 LINE (X+5,Y+5)-(X+2,Y+4)
2080 LINE (X+2,Y+4)-(X+2,Y+3):RETURN
2090 REM NODE 1/4 OP ****
2100 R=3
2110 GOSUB 4390
2120 GOSUB 2650
2130 IF H=1 THEN GOSUB 4470
2140 PAINT (X,Y+1),R,2
2150 PAINT (X,Y-1),R,2
2160 LINE (X+R+1,Y)-(X+R+1,Y-12):RETURN
2170 REM NODE 1/4 NED ****
2180 R=3:GOSUB 4390
2190 GOSUB 2650
2200 IF H=1 THEN GOSUB 4500
2210 PAINT (X,Y+1),R,2
2220 PAINT (X,Y-1),R,2
2230 LINE (X-R-1,Y)-(X-R-1,Y+12) :RETURN
2240 REM NODE 1/2 OP ****
2250 R=3:GOSUB 4390
2260 GOSUB 2650
2270 IF H=1 THEN GOSUB 4470
2280 LINE (X+R+1,Y)-(X+R+1,Y-12):RETURN
2290 REM NODE 1/2 NED ****
2300 R=3:GOSUB 4390
2310 GOSUB 2650
2320 IF H=1 THEN GOSUB 4500
2330 LINE (X-R-1,Y)-(X-R-1,Y+12):RETURN
2340 REM NODE 1/1 ****
2350 R=3:GOSUB 4390
2360 IF H=1 AND P<33 THEN GOSUB 4500
2370 IF H=1 AND P>32 THEN GOSUB 4470
2380 GOSUB 2650
2390 RETURN
2400 REM NODE 1/16 OP ****
2410 R=3:GOSUB 4390
2420 GOSUB 2650
2430 IF H=1 THEN GOSUB 4470
2440 PAINT (X,Y+1),R,2
2450 PAINT (X,Y-1),R,2
2460 LINE (X+R+1,Y)-(X+R+1,Y-12)
2470 LINE (X+R,Y-12)-(X+10,Y-9)
2480 LINE (X+10,Y-9)-(X+11,Y-5)
2490 LINE (X+11,Y-5)-(X+8,Y-3)
2500 LINE (X+8,Y-3)-(X+7,Y-3)
2510 LINE (X+R,Y-7)-(X+9,Y-5)
2520 LINE (X+9,Y-5)-(X+6,Y-3):RETURN
2530 REM NODE 1/16 NED ****
2540 R=3:GOSUB 4390
2550 GOSUB 2650
2560 IF H=1 THEN GOSUB 4500
2570 PAINT (X,Y+1),R,2
2580 PAINT (X,Y-1),R,2
2590 LINE (X-R-1,Y)-(X-R-1,Y+12)
2600 LINE (X-R,Y+12)-(X+6,Y+7)
2610 LINE (X+6,Y+7)-(X+5,Y+5)
2620 LINE (X+5,Y+5)-(X+3,Y+3)
2630 LINE (X-R,Y+7)-(X+4,Y+4)
2640 LINE (X+4,Y+4)-(X+1,Y+3):RETURN
2650 CIRCLE (X,Y),R,2,,,5/8:DRAW "BL3 L1 BR7 R1":RETURN
2660 PI=3.141593:IF Y=0 THEN RETURN :REM OVER BUE
2670 CIRCLE (X+F,Y-6),F-1,,2*PI,PI,5/18:RETURN
2680 PI=3.141593:IF Y=0 THEN RETURN :REM UNDER BUE
2690 CIRCLE (X+F,Y+6),F-1,,PI,2*PI,5/18:RETURN
2700 REM **** BAR
2710 L=22+(S*45)-45
2720 LINE (X+1,L)-(X+1,L+16)
2730 LINE (X,L)-(X,L+16):RETURN
2740 L=22+(S*45)-45
2750 LINE (X+5,L)-(X+5,L+16)
2760 L=22+(S*45)-45
2770 LINE (X,L)-(X,L+16)
2780 LINE (X+4,L)-(X+4,L+16):RETURN
2790 L=22+(S*45)-45
2800 LINE (X,L)-(X,L+16)
2810 LINE (X-1,L)-(X-1,L+16)
2820 LINE (X+4,L)-(X+4,L+16)
2830 LINE (X+8,L+6)-(X+9,L+6)
2840 LINE (X+8,L+10)-(X+9,L+10):RETURN
2850 L=22+(S*45)-45
2860 LINE (X,L)-(X,L+16)
2870 LINE (X+4,L)-(X+4,L+16)
2880 LINE (X+5,L)-(X+5,L+16)
2890 LINE (X-4,L+6)-(X-3,L+6)
2900 LINE (X-4,L+10)-(X-3,L+10):RETURN
2901 L=22+(S*45)-45
2902 LINE (X,L)-(X,L+16)
2903 LINE (X+1,L)-(X+1,L+16)
2904 LINE (X+5,L)-(X+5,L+16)
2905 RETURN
2910 R=3:O=65:FOR L=22 TO 180 STEP 45 :REM GES-DUR
2920 LINE (O,L)-(O-2,L+8)
2930 CIRCLE (O+2,L+6),R,2,,,1/2
2940 IF TS=1 THEN GOSUB 1560:RETURN
2950 NEXT
2960 O=60:FOR L=28 TO 180 STEP 45 :REM DES-DUR
2970 LINE (O,L)-(O-2,L+8)
2980 CIRCLE (O+2,L+6),R,2,,,1/2
2990 IF TS=1 THEN GOSUB 1560:RETURN
3000 NEXT
3010 O=54:FOR L=20 TO 180 STEP 45 :REM AS-DUR
3020 LINE (O,L)-(O-2,L+8)
3030 CIRCLE (O+2,L+6),R,2,,,1/2
3040 IF TS=1 THEN GOSUB 1560:RETURN
3050 NEXT
3060 O=49:FOR L=25 TO 180 STEP 45 :REM ES-DUR
3070 LINE (O,L+1)-(O-2,L+9)
3080 CIRCLE (O+2,L+7),R,2,,,1/2
3090 IF TS=1 THEN GOSUB 1560:RETURN
3100 NEXT
3110 O=44:FOR L=25 TO 180 STEP 45 :REM B-DUR
3120 LINE (O,L-7)-(O-2,L+1)
3130 CIRCLE (O+2,L-1),R,2,,,1/2
3140 IF TS=1 THEN GOSUB 1560:RETURN
3150 NEXT
3160 O=39:FOR L=25 TO 180 STEP 45 : REM F-DUR
3170 LINE (O,L-1)-(O-2,L+7)
3180 CIRCLE (O+2,L+5),R,2,,,1/2
3190 IF TS=1 THEN GOSUB 1560:RETURN
3200 NEXT:GOTO 3700
3210 O=39:FOR L=18 TO 180 STEP 45 :REM G-DUR
3220 LINE (O,L)-(O-2,L+8)
3230 LINE (O+5,L)-(O+3,L+8)
3240 LINE (O-4,L+3)-(O+8,L+1)
3250 LINE (O-6,L+7)-(O+6,L+5)
3260 IF TS=1 THEN GOSUB 1560:RETURN
3270 NEXT:GOTO 3700
3280 FOR L=22 TO 165 STEP 45 :REM C-DUR
3290 FOR SS=L-14 TO L+34:LINE (33,SS)-(75,SS),0:NEXT
3300 LINE (17,L)-(85,L)
3310 LINE (17,L+4)-(85,L+4)
3320 LINE (17,L+8)-(85,L+8)
3330 LINE (17,L+12)-(85,L+12)
3340 LINE (17,L+16)-(85,L+16):NEXT:GOTO 3700
3350 O=46:FOR L=24 TO 180 STEP 45 :REM D-DUR
3360 LINE (O,L)-(O-2,L+8)
3370 LINE (O+5,L)-(O+3,L+8)
3380 LINE (O-4,L+3)-(O+8,L+1)
3390 LINE (O-6,L+7)-(O+6,L+5)
3400 IF TS=1 THEN GOSUB 1560:RETURN
3410 NEXT:GOTO 3210
3420 O=55:FOR L=16 TO 180 STEP 45 :REM A-DUR
3430 LINE (O,L)-(O-2,L+8)
3440 LINE (O+5,L)-(O+3,L+8)
3450 LINE (O-4,L+3)-(O+8,L+1)
3460 LINE (O-6,L+7)-(O+6,L+5)
3470 IF TS=1 THEN GOSUB 1560:RETURN
3480 NEXT:GOTO 3350
3490 O=61:FOR L=22 TO 180 STEP 45 :REM E-DUR
3500 LINE (O,L)-(O-2,L+8)
3510 LINE (O+5,L)-(O+3,L+8)
3520 LINE (O-4,L+3)-(O+8,L+1)
3530 LINE (O-6,L+7)-(O+6,L+5)
3540 IF TS=1 THEN GOSUB 1560:RETURN
3550 NEXT:GOTO 3420
3560 O=68:FOR L=28 TO 180 STEP 45 :REM H-DUR
3570 LINE (O,L)-(O-2,L+8)
3580 LINE (O+5,L)-(O+3,L+8)
3590 LINE (O-4,L+3)-(O+8,L+1)
3600 LINE (O-6,L+7)-(O+6,L+5)
3610 IF TS=1 THEN GOSUB 1560:RETURN
3620 NEXT:GOTO 3490
3630 O=75:FOR L=20 TO 180 STEP 45 :REM FIS-DUR
3640 LINE (O,L)-(O-2,L+8)
3650 LINE (O+5,L)-(O+3,L+8)
3660 LINE (O-4,L+3)-(O+8,L+1)
3670 LINE (O-6,L+7)-(O+6,L+5)
3680 IF TS=1 THEN GOSUB 1560:RETURN
3690 NEXT:GOTO 3560
3700 B$(PP)=IN$:RETURN
3710 REM SLET ****** SLET GUFFE 3720 GOSUB 1590:IF S>1 AND X=62 THEN S=S-1:X=590:M=M-1:GOTO 3740
3730 X=X-24
3740 L=S*45+22-45
3750 FOR SS=L-14 TO L+34:LINE (X+9 ,SS)-(X+37,SS),0:NEXT
3760 LINE (X,L)-(X+37,L)
3770 LINE (X,L+4)-(X+37,L+4)
3780 LINE (X,L+8)-(X+37,L+8)
3790 LINE (X,L+12)-(X+37,L+12)
3800 LINE (X,L+16)-(X+38,L+16)
3810 A$(M)="":GOTO 180
3820 REM DISK OPERATIONER
3830 LOCATE 25,2 :PRINT"NAVN : ";" ";:NN=1:GOSUB 180:RETURN
3840 REM IF M<2 THEN 100
3850 OPEN N$ FOR OUTPUT AS #1
3860 FOR V=1 TO 480:PRINT #1,A$(V):NEXT:PRINT #1,T$
3870 FOR V=1 TO 5:PRINT #1,B$(V):NEXT
3880 GOTO 3930
3890 OPEN N$ FOR INPUT AS #1
3900 FOR V=1 TO 480:INPUT #1,A$(V):NEXT:INPUT #1,T$
3910 FOR V=1 TO 5:INPUT #1,B$(V):NEXT
3920 GOSUB 100
3930 CLOSE 1:GOTO 160
3940 REM * **** **** PAUSER
3950 GOSUB 1550
3960 Y=S*45-45
3970 IF VAL(MID$(IN$,2,2))=1 THEN GOSUB 4030:RETURN
3980 IF VAL(MID$(IN$,2,2))=2 THEN GOSUB 4060:RETURN
3990 IF VAL(MID$(IN$,2,2))=4 THEN GOSUB 4090:RETURN
4000 IF VAL(MID$(IN$,2,2))=8 THEN GOSUB 4130:RETURN
4010 IF VAL(MID$(IN$,2,2))=16 THEN GOSUB 4180:RETURN
4020 X=X-24:M=M-1:RETURN
4030 FOR L=27 TO 28 :REM 1/1 PAUSE
4040 LINE (X,Y+L)-(X+6,Y+L)
4050 NEXT:RETURN
4060 FOR L=32 TO 33 :REM 1/2 PAUSE
4070 LINE (X,Y+L)-(X+6,Y+L)
4080 NEXT:RETURN
4090 L=Y+28 :REM 1/4 PAUSE
4100 LINE (X-4,L-4)-(X+5,L-2):LINE (X+5,L-2)-(X-5,L+2)
4110 LINE (X-5,L+2)-(X+4,L+4):DRAW "L2 U1 L3 U1 D2 L2 D2 R2 D1 R2 D1 R2"
4120 RETURN
4130 L=Y+28 :REM 1/8 PAUSE
4140 CIRCLE (X-2,L),2,2,,,5/18:PAINT (X-2,L)
4150 LINE (X+5,L-2)-(X-2,L+6)
4160 LINE (X+6,L-2)-(X-2,L+6)
4170 RETURN
4180 L=Y+28+4 :REM 1/16 PAUSE
4190 CIRCLE (X-5,L),2,2,,,5/18:PAINT (X-6,L)
4200 LINE (X+2,L-2)-(X-5,L+6)
4210 LINE (X+3,L-2)-(X-5,L+6)
4220 GOTO 4130
4230 LINE (X-14,Y-4)-(X-16,Y+4):LINE (X-9,Y-4)-(X-11,Y+4)
4240 LINE (X-18,Y-1)-(X-6,Y-3):LINE (X-20,Y+3)-(X-8,Y+1)
4250 K=0:RETURN
4260 LINE (X-11,Y-5)-(X-14,Y+2):CIRCLE (X-10,Y),3,2,,,1/2
4270 B=0:RETURN
4280 O=X:L=Y
4290 LINE (O-15,L-4)-(O-15,L+2):LINE (O-15,L+2)-(O-10,L+1)
4300 LINE (O-15,L)-(O-10,L-1):LINE (O-10,L-1)-(O-10,L+5)
4310 IF TS=1 THEN TS=0:GOSUB 1560:REM ************************************
4320 Q=0:RETURN
4330 REM **** 3/4 4/4 2/4 M.V.
4340 GOSUB 1550:XX=X:IF XX=62 AND S=1 THEN XX=86
4350 LOCATE ((30+(S*45-45))/8),(XX-2)/8
4360 PRINT LEFT$(IN$,1)
4370 LOCATE ((38+(S*45-45))/8),(XX-2)/8
4380 PRINT RIGHT$(IN$,1):RETURN
4390 IF K=1 THEN GOSUB 4230
4400 IF B=1 THEN GOSUB 4260
4410 IF Q=1 THEN GOSUB 4280
4420 IF KB=1 AND P<31 THEN F=12:GOSUB 2660:KB=0
4430 IF KB=1 AND P>31 THEN F=12:GOSUB 2680:KB=0
4440 IF LB=1 AND P<31 THEN F=22:GOSUB 2660:LB=0
4450 IF LB=1 AND P>31 THEN F=22:GOSUB 2680:LB=0
4460 RETURN
4470 IF P/4=INT(P/4) THEN LINE (X+7,Y)-(X+8,Y):LINE (X+8,Y)-(X+7,Y):GOTO 4490
4480 LINE (X+7,Y+2)-(X+8,Y+2):LINE (X+8,Y+2)-(X+7,Y+2)
4490 H=0:RETURN
4500 IF P/4=INT(P/4) THEN LINE (X+7,Y)-(X+8,Y):LINE (X+8,Y)-(X+7,Y):GOTO 4490
4510 LINE (X+7,Y-2)-(X+8,Y-2):LINE (X+8,Y-2)-(X+7,Y-2)
4520 GOTO 4490
4530 V=3
4540 SCREEN 0,1,0,0:DEF SEG=&HB900:BLOAD "HLP.NOD",0
4550 GOSUB 4590
4560 D$=INKEY$:IF D$="" THEN 4560
4570 IF ASC(D$)=27 THEN 4620
4580 GOSUB 4590:GOTO 4560
4590 IF V=1 THEN V=2:GOTO 4610
4600 IF V=3 THEN V=1:ELSE V=3
4610 SCREEN 0,1,V,V:LOCATE 25,30:PRINT"HJ’LPESIDE "V;:RETURN
4620 SCREEN 2,,0,0:GOSUB 100:RETURN
4630 IF RM 4640 FOR V=M TO RM-1:A$(V)="":NEXT:GOTO 4710
4650 IF RM THEN FOR V=RM TO M-1:A$(V)="":NEXT:GOTO 4710
4660 RM=M:RETURN
4670 IF RM 4680 FOR V=M TO 480:A$(V)=A$(V+(RM-M)):NEXT:GOTO 4710
4690 IF RM THEN FOR V=RM TO 480:A$(V)=A$(V+(M-RM)):NEXT:GOTO 4710
4700 RM=M:RETURN
4710 RM=0:GOSUB 100:RETURN
4720 IF RM=0 THEN RM=M:RETURN :REM KOPI ********
4730 IF RS THEN 4750
4740 IF RM THEN RS=M:RETURN
4750 FOR V=M TO M+(RS-RM-1):A$(V)=A$(V-(M-RM)):NEXT:RS=0:GOTO 4710
4760 RETURN
4770 REM ************* MUSIK ******************
4780 IF VAL(TE$)<1 OR VAL(TE$)>255 THEN GOSUB 5320
4790 FOR PL=M TO 460:PL$=A$(PL)
4800 IF LEFT$(PL$,1)="P" THEN P$(PL)="P"+STR$(VAL(MID$(PL$,2,2))*2):GOTO 5250
4810 IF LEFT$(PL$,1)="" THEN 5250
4820 IF RIGHT$(PL$,3)="DUR" THEN 5250
4830 IF MID$(PL$,2,1)="/" OR MID$(PL$,3,1)="/" THEN 5250
4850 IF LEFT$(PL$,1)="T" OR LEFT$(PL$,1)=":" THEN 5250
4860 IF LEFT$(PL$,1)="1" THEN PL$="L"+"2"+MID$(PL$,2,7):GOTO 4910
4870 IF LEFT$(PL$,1)="2" THEN PL$="L"+"4"+MID$(PL$,2,7):GOTO 4910
4880 IF LEFT$(PL$,1)="4" THEN PL$="L"+"8"+MID$(PL$,2,7):GOTO 4910
4890 IF LEFT$(PL$,1)="8" THEN PL$="L"+"16"+MID$(PL$,2,7):GOTO 4910
4900 IF LEFT$(PL$,1)="16" THEN PL$="L"+"32"+MID$(PL$,3,8)
4910 REM TONEARTER *****************
4920 GOTO 5050 *****************
4930 PA=INT(PL/93)+1
4940 IF B$(PA)="DESDUR" THEN GOSUB 5520
4950 IF B$(PA)="ASDUR" THEN GOSUB 5540
4960 IF B$(PA)="ESDUR" THEN GOSUB 5560
4970 IF B$(PA)="BDUR" THEN GOSUB 5580
4980 IF B$(PA)="FDUR" THEN GOSUB 5600
4990 IF B$(PA)="HDUR" THEN GOSUB 5400
5000 IF B$(PA)="EDUR" THEN GOSUB 5420
5010 IF B$(PA)="ADUR" THEN GOSUB 5440
5020 IF B$(PA)="DDUR" THEN GOSUB 5460
5030 IF B$(PA)="GDUR" THEN GOSUB 5480
5040 GOTO 5130 *****************
5050 FOR R=1 TO 6:GOSUB 5060:NEXT:GOTO 4930:REM GOTO 50700
5060 IF RIGHT$(PL$,1)="." THEN PL$=LEFT$(PL$,LEN(PL$)-1):H=1
5070 IF RIGHT$(PL$,1)="K" THEN PL$=LEFT$(PL$,LEN(PL$)-1):KB=1
5080 IF RIGHT$(PL$,1)="L" THEN PL$=LEFT$(PL$,LEN(PL$)-1):LB=1
5090 IF RIGHT$(PL$,1)="+" THEN PL$=LEFT$(PL$,LEN(PL$)-1):K=1
5100 IF RIGHT$(PL$,1)="-" THEN PL$=LEFT$(PL$,LEN(PL$)-1):B=1
5110 IF RIGHT$(PL$,1)="Q" THEN PL$=LEFT$(PL$,LEN(PL$)-1):Q=1
5120 RETURN
5130 IF Q=1 AND BB=1 THEN K=0:B=0:Q=0
5140 O=OK-1+VAL(RIGHT$(PL$,1)):PL$="O"+STR$(O)+PL$
5150 PL$=LEFT$(PL$,LEN(PL$)-1)
5160 IF KB=1 THEN PL$="ML"+PL$:L2=1
5170 IF LL=1 THEN PL$="ML"+PL$:LL=0:L2=1
5180 IF LB=1 THEN PL$="ML"+PL$:LL=1
5190 IF K=1 THEN PL$=PL$+"+"
5200 IF B=1 THEN PL$=PL$+"-"
5210 IF H=1 THEN PL$=PL$+"."
5220 IF L3=1 THEN L3=0:P$(PL)="MN"+PL$:GOTO 5240
5230 P$(PL)=PL$:IF L2=1 THEN L2=0:L3=1
5240 H=0:K=0:B=0:KB=0:LB=0:BB=0
5250 NEXT:TS=VAL(TE$):HZ=INT(TS*1.011111-TS+.5):TS$=STR$(TS+HZ)
5260 PLAY "T"+TS$:PL=M-1
5270 PL=PL+1:IF PL=461 THEN RETURN
5280 PLAY P$(PL):P$(PL)=""
5290 Y$=INKEY$:IF Y$="" THEN 5310
5300 IF ASC(Y$)=27 THEN RETURN
5310 GOTO 5270
5320 REM TEMPO ****************
5330 LOCATE 25,2:PRINT"ANGIV 32-255 : ";" ";:NN=1
5340 GOSUB 180:TE$=N$:RETURN
5350 STOP :IF RIGHT$(IN$,2)="H" THEN IN$=LEFT$(IN$,1)+"B"+MID$(IN$,3,LEN(IN$)-2)
5360 REM OKTAV ****************
5370 LOCATE 25,2:PRINT"ANGIV 0-5 : ";" ";:NN=1
5380 GOSUB 180:OK=VAL(N$):RETURN
5390 REM KRYDS
5400 IF MID$(PL$,3,1)="A" THEN K=1:BB=1
5410 IF MID$(PL$,4,1)="A" THEN K=1:BB=1
5420 IF MID$(PL$,3,1)="D" THEN K=1:BB=1
5430 IF MID$(PL$,4,1)="D" THEN K=1:BB=1
5440 IF MID$(PL$,3,1)="G" THEN K=1:BB=1
5450 IF MID$(PL$,4,1)="G" THEN K=1:BB=1
5460 IF MID$(PL$,3,1)="C" THEN K=1:BB=1
5470 IF MID$(PL$,4,1)="C" THEN K=1:BB=1
5480 IF MID$(PL$,3,1)="F" THEN K=1:BB=1
5490 IF MID$(PL$,4,1)="F" THEN K=1:BB=1
5500 RETURN
5510 REM B-TONER
5520 IF MID$(PL$,3,1)="G" THEN B=1:BB=1
5530 IF MID$(PL$,4,1)="G" THEN B=1:BB=1
5540 IF MID$(PL$,3,1)="D" THEN B=1:BB=1
5550 IF MID$(PL$,4,1)="D" THEN B=1:BB=1
5560 IF MID$(PL$,3,1)="A" THEN B=1:BB=1
5570 IF MID$(PL$,4,1)="A" THEN B=1:BB=1
5580 IF MID$(PL$,3,1)="E" THEN B=1:BB=1
5590 IF MID$(PL$,4,1)="E" THEN B=1:BB=1
5600 IF MID$(PL$,3,1)="B" THEN B=1:BB=1
5610 IF MID$(PL$,4,1)="B" THEN B=1:BB=1
5620 RETURN
6000 REM TRANS ****************
6001 LOCATE 25,2:PRINT"ANGIV +/- 7 : ";" ";:NN=1
6002 GOSUB 180:TA=VAL(N$):N$="":IF TA>0 AND TA<8 THEN 6005
6003 IF TA<0 AND TA>-8 THEN 6105 ELSE RETURN
6005 FOR V=1 TO 500
6006 IF MID$(A$(V),2,1)="/" OR MID$(A$(V),3,1)="/" THEN 6060
6007 IF LEFT$(A$(V),1)="T" OR LEFT$(A$(V),1)=":" THEN 6060
6008 IF LEFT$(A$(V),1)="P" THEN 6060
6009 IF RIGHT$(A$(V),3)="DUR" THEN 6060
6010 IF A$(V)<"!" THEN 6060
6011 TB=TA:V$=MID$(A$(V),2,1):IF ASC(V$)+TA>71 THEN TB=TA-7:IF ASC(V$)+TA>73 THEN YY=1 : REM ***************** IKKE 1/16 DELS NODER : NB NB NB NB NB
6012 IF ASC(V$)<67 AND ASC(V$)+TA>66 THEN YY=1
6014 A$(V)=LEFT$(A$(V),1)+CHR$(ASC(V$)+TB)+MID$(A$(V),3,7)
6015 V$=MID$(A$(V),3,1):IF YY THEN A$(V)=LEFT$(A$(V),2)+CHR$(ASC(V$)+1)+MID$(A$(V),4,7)
6060 YY=0:NEXT:RETURN
6105 FOR V=1 TO 500
6106 IF MID$(A$(V),2,1)="/" OR MID$(A$(V),3,1)="/" THEN 6160
6107 IF LEFT$(A$(V),1)="T" OR LEFT$(A$(V),1)=":" THEN 6160
6108 IF LEFT$(A$(V),1)="P" THEN 6160
6109 IF RIGHT$(A$(V),3)="DUR" THEN 6160
6110 IF A$(V)<"!" THEN 6160
6111 TB=TA:V$=MID$(A$(V),2,1):IF ASC(V$)+TA<65 THEN TB=TA+7:IF ASC(V$)+TA<60 THEN YY=1
6112 IF ASC(V$)>66 AND ASC(V$)+TA<67 THEN YY=1
6114 A$(V)=LEFT$(A$(V),1)+CHR$(ASC(V$)+TB)+MID$(A$(V),3,7)
6115 V$=MID$(A$(V),3,1):IF YY THEN A$(V)=LEFT$(A$(V),2)+CHR$(ASC(V$)-1)+MID$(A$(V),4,7)
6160 YY=0:NEXT:RETURN

Funktionerne i programmet omfattede "SAVE", "VISK", "SLET", "KOPI", "TEMPO", "OKTAV", "TRANSponere", "SPIL", "LOAD", "TITEL"

Det var faktisk ret fedt. Og så kunne mit program endda afspille tonerne korrekt i den spinkle computerhøjttaler