0 REM Wed,13 May 1992.21:22:34 10 DEFFNS:$(PAGE+6)=TIME$:="ECGSIM3" 20 A%=0:X%=255:T%=USR&FFF4:T%=(T%DIV&100)AND7:IF T%<3 PROCa:A$="*T.|MFORL%=0TOTOP-PAGE STEP4:L%!&E00=L%!PAGE:N.|MPAGE=&E00|M" ELSE A$="240V.23,7,0,1,0,0,0,0,0,0|M":PRINT"MASTER VERSION RUNNING ENSURE PAGE=&E00" 30 OSCLI"K.0DEL.0,30|MDEL.730,790|M"+A$+"O.|MV.6:RUN|M":OSCLI"FX138 0 128":END :REM Z%=DATA START B% IS NSR Q% IS NUMBER OF RHYTHMS 40 MODE0:VDU23;8202;0;0;0;0;:E%=0:F%=0:G%=0:H%=0:D%=0:R%=0:Z%=800:Q%=38:B%=860 50 ONERROR:MODE0:REPORT:PRINTERL:END 60 VDU19,1,2,0,0,0:FORL%=0TO1278STEP235:MOVEL%,370:DRAWL%,625:NEXT:VDU24,0;382;1278;608;:CLG:MOVE0,608:DRAW1278,608:MOVE0,382:DRAW1278,382 70 PROCc("ECG Simulation by C.J.Richardson.",1):PROCc("D - Dump. ",4):PROCc("W - Window.",5):PROCc("P - Prompt.",6):PROCc("G - Grid ",7) 80 REPEAT:PROCc("R - To run through rhythms.",15):PROCc("I - To interpret rhythms. ",16):b$=GET$:IFb$="R":PROCt 90 UNTILb$="I" 100 I%=1:b$="1":PRINTTAB(0,9)SPC160 110 PROCc("SPACE - interpret rhythm.",3) 120 REPEATPROCc("Attempts :"+STR$F%,9):PROCc("Correct :"+STR$G%,10):PRINTTAB(33,11);"Points :";E%;" ":PROCe:PROCd:VDU28,0,31,79,0:UNTILFALSE 130 DEFPROCe 140 IFI%>0:U%=0:C%=Z%+(RND(Q%)-1)*30:RESTOREC%:READ A$,A2$:C%=C%+10:R%=0:D%=0:IFA$="N"A$="COARSE VF":A2$="VF":R%=1 ELSE IFA$="O"PROCb 150 RESTOREC% 160 VDU28,0,19,79,13 170 Y%=0 180 REPEAT:IFD%IFRND(50)=1PROCb 190 MOVE1264,Y%+500 200 READY%:IFY%=-1:RESTOREC%:READY% 210 IFY%>-5ANDY%<0PROCf 220 DRAW1271,Y%+500:READY%:IFY%>-5ANDY%<0PROCf 230 DRAW1278,Y%+500 240 CALLA% 250 K%=INKEY0 260 IFR%=1IFD%=0IFRND(50)=1C%=B%+(RND(Q%-2)-1)*30:RESTOREC%:READA$,A2$:C%=C%+10 270 IFK%=71PROCg 280 IFK%=68:VDU2,1,27,1,69,32,32:FORL%=1TOLENA$:VDU1,ASCMID$(A$,L%,1)EORVALb$:NEXT:VDU3:PROCg:OSCLI"GDUMP" 290 IFK%=87:OSCLI"WIN." 300 IFK%=80:T%=Z%+60:VDU28,0,30,79,21,14:REPEAT:RESTORET%:READW$,X$:PRINTW$;" OR ";X$:T%=T%+30:UNTILT%>Z%+Q%*30-30:PRINT"Press a key":L%=GET:VDU12,28,0,19,79,13,15:RESTOREC% 310 UNTILK%=32 320 ENDPROC 330 DEFPROCc(c$,N%):PRINTTAB(39-(LENc$/2),N%);c$:ENDPROC 340 DEFPROCd:VDU28,0,30,79,21:F%=F%+1:I%=0 350 INPUT"What is this rhythm? "a$:FORL%=1TOLENa$ 360 IFASCMID$(a$,L%,1)>90a$=MID$(a$,1,L%-1)+CHR$(ASCMID$(a$,L%,1)-32)+MID$(a$,L%+1,LENa$) 370 NEXT 380 IFLENa$>LENA$/2IFINSTR(A$,a$):I%=1 390 IFA2$=a$:I%=2 400 IFA$=a$:I%=2 410 IFI%=0PROCc("WRONG!",3):U%=U%+1 420 IFI%>0G%=G%+1 430 IFI%=1PROCc("Partially correct. 1 point",4) 440 IFI%=2PROCc("Fully correct. 2 points",4) 450 E%=E%+I% 460 IFU%=4:IF I%=0PROCc("THATS ENOUGH! score reduced by 1!",4):E%=E%-1:I%=1:PROCc("It was "+A$+"/"+A2$,5) 470 PROCc("Press any key to continue",6):L%=GET:VDU12 480 ENDPROC 490 DEFPROCf 500 IFY%=-2:READO%,V%:Y%=RND(O%)+V%:RESTOREC%:ENDPROC 510 IFY%=-3:READO%,V%:Y%=RND(O%)+V%:ENDPROC 520 IFY%=-4:READW%:IFRND(W%)<>1 RESTOREC%:READY%:ENDPROC ELSE IFY%=-4 READY%:ENDPROC 530 ENDPROC 540 DEFPROCt:PROCc("SPACE - next rhythm.",3) 550 I%=0:C%=Z%+60:FORM%=3TOQ%:VDU28,0,31,79,0:RESTOREC%:READA$,A2$:PRINTTAB(0,9)SPC160:PROCc(A$,9):PROCc(A2$,10):C%=C%+10:PROCe:C%=C%+20:NEXT:VDU28,0,31,79,0 560 ENDPROC 570 DEFPROCg:IF K%=71 H%=H%EOR1:VDU28,0,31,79,0:PRINTTAB(42,7);:IFH%=0:PRINT"off." ELSE IFK%=71PRINT"on. " 580 VDU28,0,19,79,13:IFH%=0:ENDPROC 590 FORL%=0TO1278STEP47:MOVEL%,384:DRAWL%,606:NEXT:FORL%=2TO1280STEP235:MOVEL%,370:DRAWL%,625:NEXT:FORL%=412TO588STEP28:FORX%=0TO1278STEP10:MOVEX%+5,L%:DRAWX%+5,L%:NEXT,:ENDPROC 600 DEFPROCb:D%=D%+1 610 IFD%=1:C%=0 620 IFD%=2:C%=30 630 IFD%=3:C%=60 640 IFD%=4:C%=720 650 IFD%=5:C%=750 660 IFD%=6:C%=780 670 IFD%=7:C%=120 680 IFD%=8:C%=150 690 IFD%>8:C%=180 700 C%=C%+B% 710 RESTOREC%:READA$,A2$:C%=C%+10 720 ENDPROC 730 DEFPROCa:VDU21:FORL%=0TO2STEP2:P%=&C00:[:OPTL% 740 .A% 750 LDA#0:LDX#0:.m1:STA&5080,X:INX:CPX#8:BNEm1:LDX#0:.m2:STA&5300,X:INX:CPX#8:BNEm2:LDX#0:.m3:STA&5580,X:INX:CPX#8:BNEm3:LDX#0:.m4:STA&5800,X:INX:CPX#8:BNEm4:LDX#0:.m5:STA&5A80,X:INX:CPX#8:BNEm5:LDX#0:.m6:STA&5D00,X:INX:CPX#8:BNEm6 760 LDX#0:.m7:STA&5F80,X:INX:CPX#8:BNEm7 770 .S%:LDA&5088:STA&5080:INCS%+1:BNEnup:INCS%+2:.nup:INCS%+4:BNEnup2:INCS%+5:.nup2 780 LDAS%+2:CMP#&62:BNES%:LDA#&50:STAS%+2:STAS%+5:LDA#&88:STAS%+1:LDA#&80:STAS%+4:LDX#0:LDA#0:.m8:STA&61F8,X:INX:CPX#8:BNEm8 790 RTS:]:NEXT:ENDPROC 800 DATAN,N 810 DATA-2,130,-60 820 DATA-1 830 DATAO,O 840 DATA-1,-1 850 DATA-1 860 DATANORMAL SINUS RHYTHM,NSR 870 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10 880 DATA-1 890 DATASINUS TACHYCARDIA,ST 900 DATA0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10 910 DATA-1 920 DATARAPID SINUS TACHYCARDIA,RAPID ST 930 DATA10,5,0,-10,50,-30,0,10,20,25 940 DATA-1 950 DATASINUS BRADYCARDIA,SINUS BRADY 960 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 970 DATA-1 980 DATACOARSE VENTRICULAR FIBRILLATION,COARSE VF 990 DATA-2,130,-60 1000 DATA-1 1010 DATAFINE VENTRICULAR FIBRILLATION,FINE VF 1020 DATA-2,20,-10 1030 DATA-1 1040 DATAASYSTOLE,ASYSTOLE 1050 DATA0,0 1060 DATA-1 1070 DATANORMAL SINUS RHYTHM ATRIAL EXTRASYSTOLE,NSR+PACS 1080 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,-4,5,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,0,0,0,0 1090 DATA-1 1100 DATANORMAL SINUS RHYTHM VENTRICULAR EXTRASYSTOLE,NSR+PVCS 1110 DATA0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,0,0,-4,5,40,-50,-60,-80,-75,0,10,15,10,0,-5,0,0,0,0,0,0,0,0,0 1120 DATA-1 1130 DATASUPRAVENTRICULAR TACHYCARDIA,SVT 1140 DATA10,-10,50,-30,0,10,20,25 1150 DATA-1 1160 DATAATRIAL FIBRILLATION,AF 1170 DATA-3,5,0,-3,5,0,-4,3,-5,0,-10,50,-30,0,0,10,20,25,20,10 1180 DATA-1 1190 DATAATRIAL FLUTTER 3:1,AFLUTT 1200 DATA12,10,0,12,10,0,12,10,0,-10,50,-30,0,0,10,20,25,20,10,0 1210 DATA-1 1220 DATAATRIAL FLUTTER 2:1,AFLUTT 1230 DATA12,10,0,12,10,0,-10,50,-30,0,0,10,20,25,20,0 1240 DATA-1 1250 DATAATRIAL FLUTTER 1:1,AFLUTT 1260 DATA12,10,0,-10,50,-30,0,0,10,20,25,20,10,0 1270 DATA-1 1280 DATAHIGH JUNCTIONAL,HIGH NODAL 1290 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5,-10,-5,50,-30,0,0,10,20,25,20,10 1300 DATA-1 1310 DATAMID JUNCTIONAL,MID NODAL 1320 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5,50,-30,0,0,10,20,25,20,10 1330 DATA-1 1340 DATALOW JUNCTIONAL,LOW NODAL 1350 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5,50,-20,0,-10,5,10,15,10,0 1360 DATA-1 1370 DATA1ST DEGREE ATRIO VENTRICULAR BLOCK,1ST DEGREE 1380 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,-10,50,-30,0,0,10,20,25,20,10 1390 DATA-1 1400 DATA2ND DEGREE TYPE 1 BLOCK WENKEBACH,2ND DEGREE TYPE 1 1410 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,-10,50,-30,0,0,10,20,25,20,10 1420 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,-1 1430 DATA2ND DEGREE TYPE 2 BLOCK,2ND DEGREE TYPE 2 1440 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,-4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5 1450 DATA-1 1460 DATABUNDLE BRANCH BLOCK,BBB 1470 DATA0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,40,-30,0,0,10,20,25,20,10,0 1480 DATA-1 1490 DATAMULTIFOCAL PREMATURE VENTRICULAR CONTRACTIONS,MULTIFOCAL PVCS 1500 DATA0,0,0,0,0,0,-4,2,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,-4,3 1510 DATA0,0,0,0,0,0,-3,50,0,-3,50,0,-3,50,-100,-50,-3,50,-50,-3,0,20,0,0,0,0,0,0,0,0,-1 1520 DATAR ON T ECTOPICS,R ON T 1530 DATA0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,-4,4,0,0,0,0,0,0,-10,50,-30,0,0,10,20,25,20,10,40,-50,-60,-80,-75,0,10,15,10,0,-5,0,0,0,0,0 1540 DATA-1 1550 DATAVENTRICULAR BIGEMINY,BIGEMINY 1560 DATA0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,0,40,-50,-60,-80,-75,0,10,15,10,0,-5,0,0,0,0,0,0,0,0,0 1570 DATA-1 1580 DATASLOW VENTRICULAR TACHYCARDIA,SLOW VT 1590 DATA40,-50,-60,-80,-75,0,10,15,10,0,-5,0,0,0,0,0 1600 DATA-1 1610 DATAFAST VENTRICULAR TACHYCARDIA,FAST VT 1620 DATA40,-50,-60,-80,-75,0,10,15,10,-5 1630 DATA-1 1640 DATARAPID VENTRICULAR TACHYCARDIA,RAPID VT 1650 DATA40,-50,-60,-80,-75,15,10,-5 1660 DATA-1 1670 DATAAGONAL,AGONAL 1680 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,15,20,22,20,15,10,0 1690 DATA-10,-15,-20,-15,-10,0,10,12,10,0,-1 1700 DATAVENTRICULAR STANDSTILL,VENTRICULAR STANDSTILL 1710 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0 1720 DATA-1 1730 DATAIDIO VENTRICULAR,IDIOVENTRICULAR 1740 DATA0,0,0,0,-4,10,25,35,45,0,-50,-60,-80,-75,0,10,15,10,0,-5 1750 DATA-1 1760 DATANORMAL SINUS RHYTHM ST ELEVATION,NSR+ST ELEVATION 1770 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,20,15,15,15,20,25,20,10 1780 DATA-1 1790 DATANORMAL SINUS RHYTHM ST DEPRESSION,NSR+ST DEPRESSION 1800 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,-10,50,-25,-23,-21,-19,-5,10,20,25,20,10 1810 DATA-1 1820 DATASINUS ARRHYTHMIA,NSR 1830 DATA0,0,-4,2,0,0,0,0,0,0,0,0,5,10,5,0,-10,50,-30,0,0,10,20,25,20,10 1840 DATA-1 1850 DATANSR+SINUS ARREST,NSR+SINUS ARREST 1860 DATA0,0,5,10,5,0,-10,50,-30,0,0,10,20,25,20,10,0,0,0,0,0,0,0,0,0,0,-4,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1870 DATA-1 1880 DATAWANDERING ATRIAL PACEMAKER,WAP 1890 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,5,-3,5,10,5,0,0,-10,50,-30,0,0,10,20,25,20,10 1900 DATA-1 1910 DATA3RD DEGREE ATRIO VENTRICULAR BLOCK,3RD DEGREE 1920 DATA0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,50,-30,0,0,10,20,25,20,10 1930 DATA0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,50,-30,0,0,10,20,25,20,10 1940 DATA0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,50,-30,0,0,10,20,25,20,10 1950 DATA10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,5,50,-30,0,0,10,20,25,20,10 1960 DATA5,10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,-30,0,0,10,20,25,20,10 1970 DATA0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,50,-30,0,0,10,20,25,20,10 1980 DATA0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,0,5,50,-30,0,0,10,20,25,20,10 1990 DATA0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,50,-30,5,0,10,20,25,20,10 2000 DATA0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,0,5,10,5,0,0,0,0,0,0,0,0,0,0,50,-30,0,5,10,20,25,20,10 2010 DATA0,-1