From bc7c109b0ca1eb618b9e2e3aa9dbd3362123eb37 Mon Sep 17 00:00:00 2001 From: Markus Birth Date: Fri, 30 Nov 2001 12:14:44 +0100 Subject: [PATCH] Initial commit --- 1046RTL.BAK | 199 ++ 1046RTL.PAS | 202 ++ 1046RTL.txt | 291 ++ 971211.PAS | 83 + 990914.PAS | 103 + 990915.PAS | 114 + 991011.PAS | 61 + 991129.PAS | 80 + ADDARRAY.PAS | 50 + ALK.PAS | 60 + BASICSTR.PAS | 26 + BASICTST.PAS | 13 + BGIPATH.PAS | 1 + BLINK.PAS | 42 + BLUES.PAS | 167 + BP-HILFE/BAR3D.PAS | 20 + BP-HILFE/ORD.PAS | 14 + CODER_T.OLD | 36 + CODER_T.PAS | 56 + COMPTON.PAS | 40 + CONTEST/AUFG1.PAS | 218 ++ CONTEST/AUFG4.PAS | 205 ++ DATABANK/DATABANK.DAT | 8 + DATABANK/DATABANK.PAS | 367 +++ DATECALC.PAS | 75 + DIGICLK.PAS | 109 + DIGUHR.PAS | 39 + DREIE3D.PAS | 84 + DREIECK.PAS | 68 + DRWBRD.PAS | 84 + FILLMEM.PAS | 23 + FUNCTION.PAS | 137 + Face.bmp | Bin 0 -> 13090 bytes GRAPHT.PAS | 190 ++ GRAV.OUT | 185 ++ GRAV.PAS | 175 ++ GRAV/GRAV.OUT | 97 + GRAV/GRAV.PAS | 175 ++ GZPRO.PAS | 23 + HACKING/CC.PAS | 130 + HACKING/DECODE.PAS | 124 + HACKING/EXECTEST.PAS | 13 + HACKING/HACKING.OVL | Bin 0 -> 21088 bytes HACKING/HACKING.PAS | 55 + HACKING/RC_DISK.PAS | 32 + HACKING/smsar.pas | 54 + HTMLVIEW.HTM | 12 + HTMLVIEW.PAS | 202 ++ INIFILET.PAS | 120 + ITG/AUGENZ.PAS | 53 + ITG/AUSFLUG.PAS | 76 + ITG/BINSRCH.PAS | 24 + ITG/CODING.PAS | 66 + ITG/DISTANCE.PAS | 402 +++ ITG/DREIECK.PAS | 64 + ITG/EXPLODER.PAS | 175 ++ ITG/FAKULT.PAS | 27 + ITG/FENSTER1.PAS | 20 + ITG/FIBONACC.PAS | 35 + ITG/FIBONA_F.PAS | 35 + ITG/FIBONA_R.PAS | 33 + ITG/GAUSS.PAS | 66 + ITG/GEWICHT.PAS | 39 + ITG/G_U_I.PAS | 335 ++ ITG/HANOI.INI | 21 + ITG/HANOI.PAS | 290 ++ ITG/HANOIT.PAS | 29 + ITG/HASHING.PAS | 66 + ITG/ISBN.PAS | 39 + ITG/KLAU1_02.PAS | 12 + ITG/LOTTO.PAS | 114 + ITG/MENGELOT.PAS | 46 + ITG/MIRROR.PAS | 95 + ITG/MITARB.PAS | 86 + ITG/NUMLOOSE.PAS | 19 + ITG/PACKEN.PAS | 36 + ITG/PUMPE.PAS | 201 ++ ITG/QUERSUM.PAS | 23 + ITG/QUICKSOR.PAS | 23 + ITG/RECORDS.PAS | 12 + ITG/REKGRAF1.PAS | 93 + ITG/REPSTRNG.PAS | 33 + ITG/ROBOCARD.PAS | 91 + ITG/SATZANAL.PAS | 87 + ITG/SEARCH.PAS | 75 + ITG/SECHSER.PAS | 50 + ITG/SORT.PAS | 202 ++ ITG/SORTCOMB.PAS | 149 + ITG/TEST1_02.PAS | 29 + ITG/TIERFELD.PAS | 260 ++ ITG/TIMECALC.PAS | 137 + ITG/VISUAL.PAS | 347 +++ ITG/VISUAL2.INI | 35 + ITG/VISUAL2.PAS | 926 ++++++ ITG/WAHLEN.PAS | 5 + ITG/WASSRTMP.PAS | 63 + ITG/WEEKDAY.PAS | 55 + ITG/WEIHNACH.PAS | 178 ++ ITG/rekGui.pas | 333 ++ KEY1.DAT | 4286 ++++++++++++++++++++++++++ LOGO.PAS | 74 + METEX.PAS | 60 + MORSE.DAT | 113 + MORSE.PAS | 104 + MUSIK.PAS | 43 + NOKIA_G/5SMILIES.NGG | Bin 0 -> 1151 bytes NOKIA_G/ADULTS.NGG | Bin 0 -> 1151 bytes NOKIA_G/BLABLA.NGG | Bin 0 -> 1100 bytes NOKIA_G/D2.NOL | Bin 0 -> 1155 bytes NOKIA_G/FRIEND.NGG | Bin 0 -> 1149 bytes NOKIA_G/GRAPHEDT.PAS | 973 ++++++ NOKIA_G/GRAPHICS.NGG | Bin 0 -> 1151 bytes NOKIA_G/GRAPHVW.PAS | 58 + NOKIA_G/LUX_GSM.NOL | Bin 0 -> 1154 bytes NOKIA_G/MUSIC.NGG | Bin 0 -> 1151 bytes NOKIA_G/MYLOVE.NGG | Bin 0 -> 1151 bytes NOKIA_G/N00B.NGG | Bin 0 -> 1149 bytes NOKIA_G/SINGTEL.NOL | Bin 0 -> 1155 bytes NOKIA_G/SONERA.NOL | Bin 0 -> 1155 bytes NOKIA_G/SONOFON.NOL | Bin 0 -> 1155 bytes NOKIA_G/SUNS.NGG | Bin 0 -> 1151 bytes NOKIA_G/SWISSCM.NOL | Bin 0 -> 1155 bytes NOKIA_G/TELENOR.NOL | Bin 0 -> 1155 bytes NOKIA_G/T_Mobil.nol | Bin 0 -> 1152 bytes NOKIA_G/VIAG.NOL | Bin 0 -> 1155 bytes NOKIA_G/VODAFONE.NOL | Bin 0 -> 1155 bytes NOKIA_G/W.nol | Bin 0 -> 1153 bytes NOKIA_G/WW.NOL | Bin 0 -> 1153 bytes NOKIA_G/ZA_MTN.NOL | Bin 0 -> 1155 bytes NOKIA_G/australia_optus.nol | Bin 0 -> 1150 bytes NOKIA_G/australia_optus_2.nol | Bin 0 -> 1144 bytes NOKIA_G/australia_optus_3.nol | Bin 0 -> 1151 bytes NOKIA_G/australia_optus_4.nol | Bin 0 -> 1155 bytes NOKIA_G/australia_telstra.nol | Bin 0 -> 1146 bytes NOKIA_G/australia_telstra_2.nol | Bin 0 -> 1155 bytes NOKIA_G/australia_telstra_3.nol | Bin 0 -> 1178 bytes NOKIA_G/austria_a1.nol | Bin 0 -> 1155 bytes NOKIA_G/austria_a1_2.nol | Bin 0 -> 1155 bytes NOKIA_G/austria_maxmobil.nol | Bin 0 -> 1160 bytes NOKIA_G/austria_maxmobil_2.nol | Bin 0 -> 1160 bytes NOKIA_G/austria_one.nol | Bin 0 -> 1155 bytes NOKIA_G/belgium_mobistar.nol | Bin 0 -> 1142 bytes NOKIA_G/belgium_proximus.nol | Bin 0 -> 1155 bytes NOKIA_G/croatia_cronet.nol | Bin 0 -> 1155 bytes NOKIA_G/croatia_cronet_2.nol | Bin 0 -> 1147 bytes NOKIA_G/czech_eurotel.nol | Bin 0 -> 1157 bytes NOKIA_G/czech_radiomobil.nol | Bin 0 -> 1149 bytes NOKIA_G/czech_radiomobil_2.nol | Bin 0 -> 1147 bytes NOKIA_G/czech_radiomobil_3.nol | Bin 0 -> 1155 bytes NOKIA_G/czech_radiomobil_4.nol | Bin 0 -> 1147 bytes NOKIA_G/czech_radiomobil_5.nol | Bin 0 -> 1146 bytes NOKIA_G/czech_telecom.nol | Bin 0 -> 1155 bytes NOKIA_G/denmark_sonofon.nol | Bin 0 -> 1155 bytes NOKIA_G/denmark_tele.nol | Bin 0 -> 1155 bytes NOKIA_G/denmark_telia.nol | Bin 0 -> 1155 bytes NOKIA_G/estonia_emt.nol | Bin 0 -> 1155 bytes NOKIA_G/finland_radiolinja.nol | Bin 0 -> 1155 bytes NOKIA_G/finland_sonera.nol | Bin 0 -> 1155 bytes NOKIA_G/finland_telia.nol | Bin 0 -> 1155 bytes NOKIA_G/france_bot.nol | Bin 0 -> 1149 bytes NOKIA_G/france_itineris.nol | Bin 0 -> 1157 bytes NOKIA_G/france_sfr.nol | Bin 0 -> 1149 bytes NOKIA_G/germany_d1telekom.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_d1telekom_2.nol | Bin 0 -> 1147 bytes NOKIA_G/germany_d1telekom_3.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_d1telekom_4.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_d1telekom_5.nol | Bin 0 -> 1152 bytes NOKIA_G/germany_d1telekom_6.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_d1telekom_7.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_d1telekom_8.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_d2privat.nol | Bin 0 -> 1145 bytes NOKIA_G/germany_eplus.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_eplus_tam.nol | Bin 0 -> 1146 bytes NOKIA_G/germany_viaginterkom.nol | Bin 0 -> 1155 bytes NOKIA_G/germany_viaginterkom_2.nol | Bin 0 -> 1154 bytes NOKIA_G/greece_cosmote.nol | Bin 0 -> 1155 bytes NOKIA_G/greece_cosmote_2.nol | Bin 0 -> 1166 bytes NOKIA_G/greece_panafon.nol | Bin 0 -> 1160 bytes NOKIA_G/greece_telestet.nol | Bin 0 -> 1148 bytes NOKIA_G/hongkong_hutchinson.nol | Bin 0 -> 1155 bytes NOKIA_G/hongkong_newworld.nol | Bin 0 -> 1155 bytes NOKIA_G/hongkong_smartone_extra.nol | Bin 0 -> 1155 bytes NOKIA_G/hongkong_telecom_1010.nol | Bin 0 -> 1151 bytes NOKIA_G/hungary_pannon.nol | Bin 0 -> 1155 bytes NOKIA_G/hungary_westel900.nol | Bin 0 -> 1155 bytes NOKIA_G/hungary_westel900_2.nol | Bin 0 -> 1155 bytes NOKIA_G/indonesia_excelcom.nol | Bin 0 -> 1146 bytes NOKIA_G/indonesia_satelindo.nol | Bin 0 -> 1146 bytes NOKIA_G/indonesia_satelindo_2.nol | Bin 0 -> 1149 bytes NOKIA_G/ireland_digifone.nol | Bin 0 -> 1147 bytes NOKIA_G/italy_omnitel.nol | Bin 0 -> 1155 bytes NOKIA_G/italy_tim.nol | Bin 0 -> 1153 bytes NOKIA_G/italy_tim_2.nol | Bin 0 -> 1148 bytes NOKIA_G/italy_tim_3.nol | Bin 0 -> 1158 bytes NOKIA_G/italy_tim_4.nol | Bin 0 -> 1154 bytes NOKIA_G/italy_tim_vita.nol | Bin 0 -> 1155 bytes NOKIA_G/italy_tim_vita_2.nol | Bin 0 -> 1155 bytes NOKIA_G/italy_wind.nol | Bin 0 -> 1155 bytes NOKIA_G/italy_wind_2.nol | Bin 0 -> 1146 bytes NOKIA_G/italy_wind_3.nol | Bin 0 -> 1142 bytes NOKIA_G/latvia_lmt.nol | Bin 0 -> 1154 bytes NOKIA_G/lebanon_cellis.nol | Bin 0 -> 1153 bytes NOKIA_G/lebanon_libancell.nol | Bin 0 -> 1153 bytes NOKIA_G/lux_tango.nol | Bin 0 -> 1154 bytes NOKIA_G/more_logos.url | 4 + NOKIA_G/netherlands_ben.nol | Bin 0 -> 1155 bytes NOKIA_G/netherlands_ben_2.nol | Bin 0 -> 1154 bytes NOKIA_G/netherlands_dutchtone.nol | Bin 0 -> 1153 bytes NOKIA_G/netherlands_dutchtone_2.nol | Bin 0 -> 1146 bytes NOKIA_G/netherlands_kpn.nol | Bin 0 -> 1143 bytes NOKIA_G/netherlands_kpn_2.nol | Bin 0 -> 1147 bytes NOKIA_G/netherlands_kpn_3.nol | Bin 0 -> 1145 bytes NOKIA_G/netherlands_kpn_4.nol | Bin 0 -> 1145 bytes NOKIA_G/netherlands_kpn_5.nol | Bin 0 -> 1145 bytes NOKIA_G/netherlands_libertel.nol | Bin 0 -> 1142 bytes NOKIA_G/netherlands_libertel_2.nol | Bin 0 -> 1155 bytes NOKIA_G/netherlands_libertel_izi.nol | Bin 0 -> 1142 bytes NOKIA_G/netherlands_telfort.nol | Bin 0 -> 1155 bytes NOKIA_G/norway_netcom.nol | Bin 0 -> 1142 bytes NOKIA_G/norway_netcom_2.nol | Bin 0 -> 1155 bytes NOKIA_G/norway_telenor.nol | Bin 0 -> 1155 bytes NOKIA_G/philippines_globetel.nol | Bin 0 -> 1154 bytes NOKIA_G/philippines_smart.nol | Bin 0 -> 1155 bytes NOKIA_G/philippines_smart_2.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_eragsm.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_eragsm_2.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_eragsm_3.nol | Bin 0 -> 1146 bytes NOKIA_G/poland_eragsm_4.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_eragsm_taktak.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_idea.nol | Bin 0 -> 1154 bytes NOKIA_G/poland_idea_2.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_plusgsm.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_plusgsm_2.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_plusgsm_3.nol | Bin 0 -> 1146 bytes NOKIA_G/poland_plusgsm_4.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_plusgsm_5.nol | Bin 0 -> 1146 bytes NOKIA_G/poland_plusgsm_6.nol | Bin 0 -> 1155 bytes NOKIA_G/poland_plusgsm_simplus.nol | Bin 0 -> 1155 bytes NOKIA_G/portugal_optimus.nol | Bin 0 -> 1155 bytes NOKIA_G/portugal_telecel.nol | Bin 0 -> 1155 bytes NOKIA_G/portugal_tmn.nol | Bin 0 -> 1143 bytes NOKIA_G/portugal_tmn_2.nol | Bin 0 -> 1150 bytes NOKIA_G/romania_connex.nol | Bin 0 -> 1155 bytes NOKIA_G/romania_connex_2.nol | Bin 0 -> 1151 bytes NOKIA_G/romania_connex_3.nol | Bin 0 -> 1151 bytes NOKIA_G/russia_mts.nol | Bin 0 -> 1155 bytes NOKIA_G/russia_mts_2.nol | Bin 0 -> 1155 bytes NOKIA_G/singapore_m1.nol | Bin 0 -> 1155 bytes NOKIA_G/singapore_singtel1800.nol | Bin 0 -> 1155 bytes NOKIA_G/singapore_singtel900.nol | Bin 0 -> 1155 bytes NOKIA_G/slovak_eurotel.nol | Bin 0 -> 1144 bytes NOKIA_G/slovak_eurotel_2.nol | Bin 0 -> 1155 bytes NOKIA_G/slovak_globtel.nol | Bin 0 -> 1155 bytes NOKIA_G/slovak_globtel_2.nol | Bin 0 -> 1172 bytes NOKIA_G/slovak_globtel_3.nol | Bin 0 -> 1231 bytes NOKIA_G/slovak_globtel_4.nol | Bin 0 -> 1144 bytes NOKIA_G/slovenia_mobitel.nol | Bin 0 -> 1155 bytes NOKIA_G/slovenia_simobil.nol | Bin 0 -> 1155 bytes NOKIA_G/spain_airtel.nol | Bin 0 -> 1155 bytes NOKIA_G/spain_airtel_2.nol | Bin 0 -> 1148 bytes NOKIA_G/spain_airtel_3.nol | Bin 0 -> 1155 bytes NOKIA_G/spain_amena.nol | Bin 0 -> 1155 bytes NOKIA_G/spain_movistar.nol | Bin 0 -> 1155 bytes NOKIA_G/sweden_dof.nol | Bin 0 -> 1156 bytes NOKIA_G/sweden_europolitan.nol | Bin 0 -> 1146 bytes NOKIA_G/sweden_europolitan_2.nol | Bin 0 -> 1155 bytes NOKIA_G/sweden_europolitan_3.nol | Bin 0 -> 1149 bytes NOKIA_G/sweden_europolitan_4.nol | Bin 0 -> 1146 bytes NOKIA_G/sweden_telia.nol | Bin 0 -> 1147 bytes NOKIA_G/sweden_telia_2.nol | Bin 0 -> 1146 bytes NOKIA_G/sweden_telia_3.nol | Bin 0 -> 1144 bytes NOKIA_G/sweden_telia_4.nol | Bin 0 -> 1146 bytes NOKIA_G/sweden_telia_5.nol | Bin 0 -> 1155 bytes NOKIA_G/switzerland_diax.nol | Bin 0 -> 1155 bytes NOKIA_G/switzerland_diax_2.nol | Bin 0 -> 1155 bytes NOKIA_G/switzerland_swisscom.nol | Bin 0 -> 1155 bytes NOKIA_G/turkey_telsim.nol | Bin 0 -> 1155 bytes NOKIA_G/turkey_telsim_2.nol | Bin 0 -> 1157 bytes NOKIA_G/turkey_turkcell.nol | Bin 0 -> 1149 bytes NOKIA_G/turkey_turkcell_2.nol | Bin 0 -> 1155 bytes NOKIA_G/turkey_turkcell_3.nol | Bin 0 -> 1172 bytes NOKIA_G/turkey_turkcell_4.nol | Bin 0 -> 1155 bytes NOKIA_G/uk_cellnet.nol | Bin 0 -> 1155 bytes NOKIA_G/uk_cellnet_2.nol | Bin 0 -> 1155 bytes NOKIA_G/uk_one2one.nol | Bin 0 -> 1153 bytes NOKIA_G/uk_orange.nol | Bin 0 -> 1154 bytes NOKIA_G/uk_vodafone.nol | Bin 0 -> 1155 bytes NUM2TXT.PAS | 273 ++ NUMB2TST.PAS | 25 + NUMB3TST.PAS | 16 + NUMBERS_.PAS | 35 + NUMB_TST.PAS | 13 + PACMAN.PAS | 99 + PKURS/DREIEC01.PAS | 68 + PKURS/DREIEC02.PAS | 73 + PKURS/DREIEC03.PAS | 98 + PKURS/TEST01.PAS | 5 + PKURS/TEST02.PAS | 9 + PPDIR/PPDIR.PAS | 236 ++ PPDIR/PPDIR.TXT | 31 + PZIP.PAS | 45 + RANDTEST.PAS | 72 + RANGEBOT.OLD | 204 ++ RANGEBOT.PAS | 210 ++ REKURSIV.PAS | 16 + ReverZ/INSTALL2.PAS | 99 + ReverZ/autorun.inf | 3 + ReverZ/install.pas | 100 + ReverZ/readme.txt | 8 + SCHED.DAT | 14 + SCHED.PAS | 254 ++ SCHWINGN.PAS | 293 ++ SEARCH.PAS | 174 ++ SETYEAR.PAS | 15 + SETYEAR.TXT | 27 + SINGLCHR.PAS | 36 + SIREN.PAS | 28 + SOUNDS_T.PAS | 38 + SS_WIND.PAS | 77 + TAN-1.PAS | 13 + TEST.BMP | Bin 0 -> 4038 bytes TEST.DAT | Bin 0 -> 25 bytes TEST.INI | 453 +++ TEST.PAS | 3 + TESTBAK.INI | 453 +++ TEXTSTAT.PAS | 38 + TMPCLEAR.PAS | 209 ++ TRIPLSND.PAS | 16 + TYPEFILE.PAS | 21 + Terranet/AUSWERT.HTM | 156 + Terranet/NAMES.DAT | 152 + Terranet/ORIGINAL.STA | 115 + Terranet/OUT.TXT | 11 + Terranet/SIU2.PAS | 347 +++ Terranet/SMILEYS.DAT | 9 + Terranet/STRIPHT2.PAS | 171 + Terranet/STRIPHTM.PAS | 178 ++ Terranet/SUMITUP.PAS | 207 ++ Terranet/SUMITUP2.PAS | 364 +++ Terranet/TEST.PAS | 6 + UNITS/BASICSTR.PAS | 26 + UNITS/BGI.PAS | 8 + UNITS/BGIP.PAS | 8 + UNITS/CODER.OLD | 99 + UNITS/CODER.PAS | 145 + UNITS/COLWRITE.PAS | 53 + UNITS/CURSORON.PAS | 26 + UNITS/GUI.PAS | 368 +++ UNITS/HTML.PAS | 180 ++ UNITS/HTMLV_UN.PAS | 130 + UNITS/INIFILE.PAS | 202 ++ UNITS/INLINE.TXT | 31 + UNITS/LINSTAT.PAS | 36 + UNITS/LOGO.PAS | 77 + UNITS/MISC.PAS | 44 + UNITS/NUMBERS.OLD | 109 + UNITS/NUMBERS.PAS | 203 ++ UNITS/RCSTRING.PAS | 35 + UNITS/REKGRAPH.PAS | 88 + UNITS/SCRN.BUF | 1 + UNITS/SOUNDS.PAS | 211 ++ UNITS/STATUSBA.PAS | 30 + UNITS/TIMECALC.PAS | 51 + UNITS/TIMESTAT.PAS | 57 + UNITS/VFX.OLD | 399 +++ UNITS/VFX.PAS | 601 ++++ UNITS/VFXTEST.PAS | 72 + UNITS/VISUAL2.INI | 35 + U_LOGO.PAS | 71 + VERBRAUC.PAS | 19 + VFX_ST.PAS | 18 + VIERNEU.PAS | 356 +++ VISUAL2.INI | 35 + Virus_RC.pas | 147 + WAVES.PAS | 75 + WORMS.PAS | 167 + WRITEFLT.PAS | 16 + WRITEFX.PAS | 47 + YINYAN.PAS | 89 + ZAHLEN.PAS | 179 ++ 380 files changed, 26247 insertions(+) create mode 100644 1046RTL.BAK create mode 100644 1046RTL.PAS create mode 100644 1046RTL.txt create mode 100644 971211.PAS create mode 100644 990914.PAS create mode 100644 990915.PAS create mode 100644 991011.PAS create mode 100644 991129.PAS create mode 100644 ADDARRAY.PAS create mode 100644 ALK.PAS create mode 100644 BASICSTR.PAS create mode 100644 BASICTST.PAS create mode 100644 BGIPATH.PAS create mode 100644 BLINK.PAS create mode 100644 BLUES.PAS create mode 100644 BP-HILFE/BAR3D.PAS create mode 100644 BP-HILFE/ORD.PAS create mode 100644 CODER_T.OLD create mode 100644 CODER_T.PAS create mode 100644 COMPTON.PAS create mode 100644 CONTEST/AUFG1.PAS create mode 100644 CONTEST/AUFG4.PAS create mode 100644 DATABANK/DATABANK.DAT create mode 100644 DATABANK/DATABANK.PAS create mode 100644 DATECALC.PAS create mode 100644 DIGICLK.PAS create mode 100644 DIGUHR.PAS create mode 100644 DREIE3D.PAS create mode 100644 DREIECK.PAS create mode 100644 DRWBRD.PAS create mode 100644 FILLMEM.PAS create mode 100644 FUNCTION.PAS create mode 100644 Face.bmp create mode 100644 GRAPHT.PAS create mode 100644 GRAV.OUT create mode 100644 GRAV.PAS create mode 100644 GRAV/GRAV.OUT create mode 100644 GRAV/GRAV.PAS create mode 100644 GZPRO.PAS create mode 100644 HACKING/CC.PAS create mode 100644 HACKING/DECODE.PAS create mode 100644 HACKING/EXECTEST.PAS create mode 100644 HACKING/HACKING.OVL create mode 100644 HACKING/HACKING.PAS create mode 100644 HACKING/RC_DISK.PAS create mode 100644 HACKING/smsar.pas create mode 100644 HTMLVIEW.HTM create mode 100644 HTMLVIEW.PAS create mode 100644 INIFILET.PAS create mode 100644 ITG/AUGENZ.PAS create mode 100644 ITG/AUSFLUG.PAS create mode 100644 ITG/BINSRCH.PAS create mode 100644 ITG/CODING.PAS create mode 100644 ITG/DISTANCE.PAS create mode 100644 ITG/DREIECK.PAS create mode 100644 ITG/EXPLODER.PAS create mode 100644 ITG/FAKULT.PAS create mode 100644 ITG/FENSTER1.PAS create mode 100644 ITG/FIBONACC.PAS create mode 100644 ITG/FIBONA_F.PAS create mode 100644 ITG/FIBONA_R.PAS create mode 100644 ITG/GAUSS.PAS create mode 100644 ITG/GEWICHT.PAS create mode 100644 ITG/G_U_I.PAS create mode 100644 ITG/HANOI.INI create mode 100644 ITG/HANOI.PAS create mode 100644 ITG/HANOIT.PAS create mode 100644 ITG/HASHING.PAS create mode 100644 ITG/ISBN.PAS create mode 100644 ITG/KLAU1_02.PAS create mode 100644 ITG/LOTTO.PAS create mode 100644 ITG/MENGELOT.PAS create mode 100644 ITG/MIRROR.PAS create mode 100644 ITG/MITARB.PAS create mode 100644 ITG/NUMLOOSE.PAS create mode 100644 ITG/PACKEN.PAS create mode 100644 ITG/PUMPE.PAS create mode 100644 ITG/QUERSUM.PAS create mode 100644 ITG/QUICKSOR.PAS create mode 100644 ITG/RECORDS.PAS create mode 100644 ITG/REKGRAF1.PAS create mode 100644 ITG/REPSTRNG.PAS create mode 100644 ITG/ROBOCARD.PAS create mode 100644 ITG/SATZANAL.PAS create mode 100644 ITG/SEARCH.PAS create mode 100644 ITG/SECHSER.PAS create mode 100644 ITG/SORT.PAS create mode 100644 ITG/SORTCOMB.PAS create mode 100644 ITG/TEST1_02.PAS create mode 100644 ITG/TIERFELD.PAS create mode 100644 ITG/TIMECALC.PAS create mode 100644 ITG/VISUAL.PAS create mode 100644 ITG/VISUAL2.INI create mode 100644 ITG/VISUAL2.PAS create mode 100644 ITG/WAHLEN.PAS create mode 100644 ITG/WASSRTMP.PAS create mode 100644 ITG/WEEKDAY.PAS create mode 100644 ITG/WEIHNACH.PAS create mode 100644 ITG/rekGui.pas create mode 100644 KEY1.DAT create mode 100644 LOGO.PAS create mode 100644 METEX.PAS create mode 100644 MORSE.DAT create mode 100644 MORSE.PAS create mode 100644 MUSIK.PAS create mode 100644 NOKIA_G/5SMILIES.NGG create mode 100644 NOKIA_G/ADULTS.NGG create mode 100644 NOKIA_G/BLABLA.NGG create mode 100644 NOKIA_G/D2.NOL create mode 100644 NOKIA_G/FRIEND.NGG create mode 100644 NOKIA_G/GRAPHEDT.PAS create mode 100644 NOKIA_G/GRAPHICS.NGG create mode 100644 NOKIA_G/GRAPHVW.PAS create mode 100644 NOKIA_G/LUX_GSM.NOL create mode 100644 NOKIA_G/MUSIC.NGG create mode 100644 NOKIA_G/MYLOVE.NGG create mode 100644 NOKIA_G/N00B.NGG create mode 100644 NOKIA_G/SINGTEL.NOL create mode 100644 NOKIA_G/SONERA.NOL create mode 100644 NOKIA_G/SONOFON.NOL create mode 100644 NOKIA_G/SUNS.NGG create mode 100644 NOKIA_G/SWISSCM.NOL create mode 100644 NOKIA_G/TELENOR.NOL create mode 100644 NOKIA_G/T_Mobil.nol create mode 100644 NOKIA_G/VIAG.NOL create mode 100644 NOKIA_G/VODAFONE.NOL create mode 100644 NOKIA_G/W.nol create mode 100644 NOKIA_G/WW.NOL create mode 100644 NOKIA_G/ZA_MTN.NOL create mode 100644 NOKIA_G/australia_optus.nol create mode 100644 NOKIA_G/australia_optus_2.nol create mode 100644 NOKIA_G/australia_optus_3.nol create mode 100644 NOKIA_G/australia_optus_4.nol create mode 100644 NOKIA_G/australia_telstra.nol create mode 100644 NOKIA_G/australia_telstra_2.nol create mode 100644 NOKIA_G/australia_telstra_3.nol create mode 100644 NOKIA_G/austria_a1.nol create mode 100644 NOKIA_G/austria_a1_2.nol create mode 100644 NOKIA_G/austria_maxmobil.nol create mode 100644 NOKIA_G/austria_maxmobil_2.nol create mode 100644 NOKIA_G/austria_one.nol create mode 100644 NOKIA_G/belgium_mobistar.nol create mode 100644 NOKIA_G/belgium_proximus.nol create mode 100644 NOKIA_G/croatia_cronet.nol create mode 100644 NOKIA_G/croatia_cronet_2.nol create mode 100644 NOKIA_G/czech_eurotel.nol create mode 100644 NOKIA_G/czech_radiomobil.nol create mode 100644 NOKIA_G/czech_radiomobil_2.nol create mode 100644 NOKIA_G/czech_radiomobil_3.nol create mode 100644 NOKIA_G/czech_radiomobil_4.nol create mode 100644 NOKIA_G/czech_radiomobil_5.nol create mode 100644 NOKIA_G/czech_telecom.nol create mode 100644 NOKIA_G/denmark_sonofon.nol create mode 100644 NOKIA_G/denmark_tele.nol create mode 100644 NOKIA_G/denmark_telia.nol create mode 100644 NOKIA_G/estonia_emt.nol create mode 100644 NOKIA_G/finland_radiolinja.nol create mode 100644 NOKIA_G/finland_sonera.nol create mode 100644 NOKIA_G/finland_telia.nol create mode 100644 NOKIA_G/france_bot.nol create mode 100644 NOKIA_G/france_itineris.nol create mode 100644 NOKIA_G/france_sfr.nol create mode 100644 NOKIA_G/germany_d1telekom.nol create mode 100644 NOKIA_G/germany_d1telekom_2.nol create mode 100644 NOKIA_G/germany_d1telekom_3.nol create mode 100644 NOKIA_G/germany_d1telekom_4.nol create mode 100644 NOKIA_G/germany_d1telekom_5.nol create mode 100644 NOKIA_G/germany_d1telekom_6.nol create mode 100644 NOKIA_G/germany_d1telekom_7.nol create mode 100644 NOKIA_G/germany_d1telekom_8.nol create mode 100644 NOKIA_G/germany_d2privat.nol create mode 100644 NOKIA_G/germany_eplus.nol create mode 100644 NOKIA_G/germany_eplus_tam.nol create mode 100644 NOKIA_G/germany_viaginterkom.nol create mode 100644 NOKIA_G/germany_viaginterkom_2.nol create mode 100644 NOKIA_G/greece_cosmote.nol create mode 100644 NOKIA_G/greece_cosmote_2.nol create mode 100644 NOKIA_G/greece_panafon.nol create mode 100644 NOKIA_G/greece_telestet.nol create mode 100644 NOKIA_G/hongkong_hutchinson.nol create mode 100644 NOKIA_G/hongkong_newworld.nol create mode 100644 NOKIA_G/hongkong_smartone_extra.nol create mode 100644 NOKIA_G/hongkong_telecom_1010.nol create mode 100644 NOKIA_G/hungary_pannon.nol create mode 100644 NOKIA_G/hungary_westel900.nol create mode 100644 NOKIA_G/hungary_westel900_2.nol create mode 100644 NOKIA_G/indonesia_excelcom.nol create mode 100644 NOKIA_G/indonesia_satelindo.nol create mode 100644 NOKIA_G/indonesia_satelindo_2.nol create mode 100644 NOKIA_G/ireland_digifone.nol create mode 100644 NOKIA_G/italy_omnitel.nol create mode 100644 NOKIA_G/italy_tim.nol create mode 100644 NOKIA_G/italy_tim_2.nol create mode 100644 NOKIA_G/italy_tim_3.nol create mode 100644 NOKIA_G/italy_tim_4.nol create mode 100644 NOKIA_G/italy_tim_vita.nol create mode 100644 NOKIA_G/italy_tim_vita_2.nol create mode 100644 NOKIA_G/italy_wind.nol create mode 100644 NOKIA_G/italy_wind_2.nol create mode 100644 NOKIA_G/italy_wind_3.nol create mode 100644 NOKIA_G/latvia_lmt.nol create mode 100644 NOKIA_G/lebanon_cellis.nol create mode 100644 NOKIA_G/lebanon_libancell.nol create mode 100644 NOKIA_G/lux_tango.nol create mode 100644 NOKIA_G/more_logos.url create mode 100644 NOKIA_G/netherlands_ben.nol create mode 100644 NOKIA_G/netherlands_ben_2.nol create mode 100644 NOKIA_G/netherlands_dutchtone.nol create mode 100644 NOKIA_G/netherlands_dutchtone_2.nol create mode 100644 NOKIA_G/netherlands_kpn.nol create mode 100644 NOKIA_G/netherlands_kpn_2.nol create mode 100644 NOKIA_G/netherlands_kpn_3.nol create mode 100644 NOKIA_G/netherlands_kpn_4.nol create mode 100644 NOKIA_G/netherlands_kpn_5.nol create mode 100644 NOKIA_G/netherlands_libertel.nol create mode 100644 NOKIA_G/netherlands_libertel_2.nol create mode 100644 NOKIA_G/netherlands_libertel_izi.nol create mode 100644 NOKIA_G/netherlands_telfort.nol create mode 100644 NOKIA_G/norway_netcom.nol create mode 100644 NOKIA_G/norway_netcom_2.nol create mode 100644 NOKIA_G/norway_telenor.nol create mode 100644 NOKIA_G/philippines_globetel.nol create mode 100644 NOKIA_G/philippines_smart.nol create mode 100644 NOKIA_G/philippines_smart_2.nol create mode 100644 NOKIA_G/poland_eragsm.nol create mode 100644 NOKIA_G/poland_eragsm_2.nol create mode 100644 NOKIA_G/poland_eragsm_3.nol create mode 100644 NOKIA_G/poland_eragsm_4.nol create mode 100644 NOKIA_G/poland_eragsm_taktak.nol create mode 100644 NOKIA_G/poland_idea.nol create mode 100644 NOKIA_G/poland_idea_2.nol create mode 100644 NOKIA_G/poland_plusgsm.nol create mode 100644 NOKIA_G/poland_plusgsm_2.nol create mode 100644 NOKIA_G/poland_plusgsm_3.nol create mode 100644 NOKIA_G/poland_plusgsm_4.nol create mode 100644 NOKIA_G/poland_plusgsm_5.nol create mode 100644 NOKIA_G/poland_plusgsm_6.nol create mode 100644 NOKIA_G/poland_plusgsm_simplus.nol create mode 100644 NOKIA_G/portugal_optimus.nol create mode 100644 NOKIA_G/portugal_telecel.nol create mode 100644 NOKIA_G/portugal_tmn.nol create mode 100644 NOKIA_G/portugal_tmn_2.nol create mode 100644 NOKIA_G/romania_connex.nol create mode 100644 NOKIA_G/romania_connex_2.nol create mode 100644 NOKIA_G/romania_connex_3.nol create mode 100644 NOKIA_G/russia_mts.nol create mode 100644 NOKIA_G/russia_mts_2.nol create mode 100644 NOKIA_G/singapore_m1.nol create mode 100644 NOKIA_G/singapore_singtel1800.nol create mode 100644 NOKIA_G/singapore_singtel900.nol create mode 100644 NOKIA_G/slovak_eurotel.nol create mode 100644 NOKIA_G/slovak_eurotel_2.nol create mode 100644 NOKIA_G/slovak_globtel.nol create mode 100644 NOKIA_G/slovak_globtel_2.nol create mode 100644 NOKIA_G/slovak_globtel_3.nol create mode 100644 NOKIA_G/slovak_globtel_4.nol create mode 100644 NOKIA_G/slovenia_mobitel.nol create mode 100644 NOKIA_G/slovenia_simobil.nol create mode 100644 NOKIA_G/spain_airtel.nol create mode 100644 NOKIA_G/spain_airtel_2.nol create mode 100644 NOKIA_G/spain_airtel_3.nol create mode 100644 NOKIA_G/spain_amena.nol create mode 100644 NOKIA_G/spain_movistar.nol create mode 100644 NOKIA_G/sweden_dof.nol create mode 100644 NOKIA_G/sweden_europolitan.nol create mode 100644 NOKIA_G/sweden_europolitan_2.nol create mode 100644 NOKIA_G/sweden_europolitan_3.nol create mode 100644 NOKIA_G/sweden_europolitan_4.nol create mode 100644 NOKIA_G/sweden_telia.nol create mode 100644 NOKIA_G/sweden_telia_2.nol create mode 100644 NOKIA_G/sweden_telia_3.nol create mode 100644 NOKIA_G/sweden_telia_4.nol create mode 100644 NOKIA_G/sweden_telia_5.nol create mode 100644 NOKIA_G/switzerland_diax.nol create mode 100644 NOKIA_G/switzerland_diax_2.nol create mode 100644 NOKIA_G/switzerland_swisscom.nol create mode 100644 NOKIA_G/turkey_telsim.nol create mode 100644 NOKIA_G/turkey_telsim_2.nol create mode 100644 NOKIA_G/turkey_turkcell.nol create mode 100644 NOKIA_G/turkey_turkcell_2.nol create mode 100644 NOKIA_G/turkey_turkcell_3.nol create mode 100644 NOKIA_G/turkey_turkcell_4.nol create mode 100644 NOKIA_G/uk_cellnet.nol create mode 100644 NOKIA_G/uk_cellnet_2.nol create mode 100644 NOKIA_G/uk_one2one.nol create mode 100644 NOKIA_G/uk_orange.nol create mode 100644 NOKIA_G/uk_vodafone.nol create mode 100644 NUM2TXT.PAS create mode 100644 NUMB2TST.PAS create mode 100644 NUMB3TST.PAS create mode 100644 NUMBERS_.PAS create mode 100644 NUMB_TST.PAS create mode 100644 PACMAN.PAS create mode 100644 PKURS/DREIEC01.PAS create mode 100644 PKURS/DREIEC02.PAS create mode 100644 PKURS/DREIEC03.PAS create mode 100644 PKURS/TEST01.PAS create mode 100644 PKURS/TEST02.PAS create mode 100644 PPDIR/PPDIR.PAS create mode 100644 PPDIR/PPDIR.TXT create mode 100644 PZIP.PAS create mode 100644 RANDTEST.PAS create mode 100644 RANGEBOT.OLD create mode 100644 RANGEBOT.PAS create mode 100644 REKURSIV.PAS create mode 100644 ReverZ/INSTALL2.PAS create mode 100644 ReverZ/autorun.inf create mode 100644 ReverZ/install.pas create mode 100644 ReverZ/readme.txt create mode 100644 SCHED.DAT create mode 100644 SCHED.PAS create mode 100644 SCHWINGN.PAS create mode 100644 SEARCH.PAS create mode 100644 SETYEAR.PAS create mode 100644 SETYEAR.TXT create mode 100644 SINGLCHR.PAS create mode 100644 SIREN.PAS create mode 100644 SOUNDS_T.PAS create mode 100644 SS_WIND.PAS create mode 100644 TAN-1.PAS create mode 100644 TEST.BMP create mode 100644 TEST.DAT create mode 100644 TEST.INI create mode 100644 TEST.PAS create mode 100644 TESTBAK.INI create mode 100644 TEXTSTAT.PAS create mode 100644 TMPCLEAR.PAS create mode 100644 TRIPLSND.PAS create mode 100644 TYPEFILE.PAS create mode 100644 Terranet/AUSWERT.HTM create mode 100644 Terranet/NAMES.DAT create mode 100644 Terranet/ORIGINAL.STA create mode 100644 Terranet/OUT.TXT create mode 100644 Terranet/SIU2.PAS create mode 100644 Terranet/SMILEYS.DAT create mode 100644 Terranet/STRIPHT2.PAS create mode 100644 Terranet/STRIPHTM.PAS create mode 100644 Terranet/SUMITUP.PAS create mode 100644 Terranet/SUMITUP2.PAS create mode 100644 Terranet/TEST.PAS create mode 100644 UNITS/BASICSTR.PAS create mode 100644 UNITS/BGI.PAS create mode 100644 UNITS/BGIP.PAS create mode 100644 UNITS/CODER.OLD create mode 100644 UNITS/CODER.PAS create mode 100644 UNITS/COLWRITE.PAS create mode 100644 UNITS/CURSORON.PAS create mode 100644 UNITS/GUI.PAS create mode 100644 UNITS/HTML.PAS create mode 100644 UNITS/HTMLV_UN.PAS create mode 100644 UNITS/INIFILE.PAS create mode 100644 UNITS/INLINE.TXT create mode 100644 UNITS/LINSTAT.PAS create mode 100644 UNITS/LOGO.PAS create mode 100644 UNITS/MISC.PAS create mode 100644 UNITS/NUMBERS.OLD create mode 100644 UNITS/NUMBERS.PAS create mode 100644 UNITS/RCSTRING.PAS create mode 100644 UNITS/REKGRAPH.PAS create mode 100644 UNITS/SCRN.BUF create mode 100644 UNITS/SOUNDS.PAS create mode 100644 UNITS/STATUSBA.PAS create mode 100644 UNITS/TIMECALC.PAS create mode 100644 UNITS/TIMESTAT.PAS create mode 100644 UNITS/VFX.OLD create mode 100644 UNITS/VFX.PAS create mode 100644 UNITS/VFXTEST.PAS create mode 100644 UNITS/VISUAL2.INI create mode 100644 U_LOGO.PAS create mode 100644 VERBRAUC.PAS create mode 100644 VFX_ST.PAS create mode 100644 VIERNEU.PAS create mode 100644 VISUAL2.INI create mode 100644 Virus_RC.pas create mode 100644 WAVES.PAS create mode 100644 WORMS.PAS create mode 100644 WRITEFLT.PAS create mode 100644 WRITEFX.PAS create mode 100644 YINYAN.PAS create mode 100644 ZAHLEN.PAS diff --git a/1046RTL.BAK b/1046RTL.BAK new file mode 100644 index 0000000..4a949c3 --- /dev/null +++ b/1046RTL.BAK @@ -0,0 +1,199 @@ +program RTL; + +uses Crt, VFx; + +var d: array[0..9999] of boolean; +var cd,cn: integer; + +function Form(i: integer): string; +var t: string; +begin + Str(i,t); + while (Length(t)<4) do t := '0'+t; + Form := t; +end; + +procedure SetDone; +var f: text; + x: string; + t,ec: integer; +begin + for t:=0 to 9999 do d[t] := false; + assign(f,'1046rtl.txt'); + reset(f); + ReadLn(f,x); + WriteLn(x); + while Not Eof(f) do begin + ReadLn(f,x); + Val(x,t,ec); + if NOT d[t] then d[t] := true else Alert(Form(t)+' doppelt getippt!'); + end; + close(f); + WriteLn('Datenbank mit Tipps geladen und verarbeitet.'); +end; + +procedure DoStats; +var i: integer; +begin + cd := 0; + cn := 0; + for i:=0 to 9999 do begin + if d[i] then Inc(cd) else Inc(cn); + end; +end; + +procedure ShowStats; +var mon: real; +begin + mon := cd; + mon := mon*500; + WriteLn('Getippt: ',cd:5,' = ',cd/100:6:2,'% = ',mon:10:2,' DM in ',cd DIV 10:3,' Tagen bei 5.000,- DM pro Tag'); + mon := cn; + mon := mon*500; + WriteLn('brig : ',cn:5,' = ',cn/100:6:2,'% = ',mon:10:2,' DM in ',cn DIV 10:3,' Tagen'); + WriteLn('Gesamt : ',cd+cn:5); +end; + +procedure ShowNotDone; +var i: integer; +begin + for i:=0 to 9999 do begin + if not d[i] then Write(Form(i),' '); + end; +end; + +function Ten(i,e: integer): longint; +var x: integer; + t: longint; +begin + if (e>0) then begin + for x:=1 to e do i := i * 10; + end; + Ten := i; +end; + +procedure WriteNum(x: integer); +begin + GotoXY(16,12); + Write(x DIV 1000); + GotoXY(18,12); + Write((x MOD 1000) DIV 100); + GotoXY(20,12); + Write((x MOD 100) DIV 10); + GotoXY(22,12); + Write(x MOD 10); +end; + +procedure WriteNumFX(x: integer); +begin + GotoXY(16,12); + FXWriteC(Num2Str(x DIV 1000)+' '+Num2Str((x MOD 1000) DIV 100)+' '+Num2Str((x MOD 100) DIV 10)+' '+Num2Str(x MOD 10),15); +end; + +procedure GetRandomNumber; +var i,x: integer; +begin + i := 0; + Randomize; + repeat + repeat + x := Random(10000); + until NOT d[x]; + WriteNum(x); + Sound(1950); + Delay(25); + NoSound; + Delay(i); + i := i + 1 + (i DIV 5); + until (i>=750); + WriteNumFX(x); + CursorOff; +end; + +procedure DoAsking; +var k: char; + kc: byte; + c: byte; + co: integer; + i: integer; +begin + DrawBorder2(20,5,60,20,11,1); + Window(21,6,59,19); + GotoXY(1,2); + FXWriteC('* * * 104.6 RTL * * *',14); WriteLn; + FXWriteC('* EURO - MILLIONAER *',15); WriteLn; + FXWriteC('* * * * * * * * * * *',14); WriteLn; + TextColor(11); + WriteLn; + WriteFlt(' Knacken Sie den vierstelligen'); + WriteFlt(' Zahlencode und gewinnen Sie '); + WriteLn; + TextColor(12); + WriteImp(' EINE MILLION EURO'); + TextColor(11); + GotoXY(1,14); FXWriteC('Beenden mit ESC',7); + GotoXY(1,12); FXWriteC('_ _ _ _',7); + CursorOff; + WaitBeep; + c := 0; + co := 0; + repeat + k := ReadKey; + if k<>#27 then begin + if k IN [#48..#57] then begin + if (c=0) then begin + GotoXY(18,12); TextColor(7); Write('_ _ _'); + end; + GotoXY(16+2*c,12); FXChar(k,15); CursorOff; + Inc(c); + kc := Ord(k)-48; + co := co + Ten(kc,4-c); + AckBeep; + end; + if (k=#8) AND (c>0) then begin + Dec(c); + GotoXY(16+2*c,12); FXChar('_',7); CursorOff; + co := (co DIV Ten(1,4-c)) * Ten(1,4-c); + ErrorBeep; + end; + if (k='r') OR (k='R') then begin + TextColor(8); + GotoXY(10,13); + Write(Space(20)); + GetRandomNumber; + WaitBeep; + end; + end; + if (c=4) then begin + GotoXY(10,13); + if d[co] then begin + TextColor(12); + ErrorBeep; + WriteFlt('*** CODE FALSCH ***'); + end else begin + TextColor(10); + ReadyBeep; + WriteFlt('*** PRUEFE CODE ***'); + end; + co := 0; + c := 0; + CursorOff; + end; + until k=#27; + Window(1,1,80,25); + CursorOn; +end; + +begin + SaveScreen; + TextMode(co80); + TextColor(7); + TextBackground(0); + ClrScr; + SetDone; + DoStats; + { ShowNotDone; } + ShowStats; + DoAsking; + RestoreScreen; +end. diff --git a/1046RTL.PAS b/1046RTL.PAS new file mode 100644 index 0000000..ee79bac --- /dev/null +++ b/1046RTL.PAS @@ -0,0 +1,202 @@ +program RTL; + +uses Crt, VFx; + +var d: array[0..9999] of boolean; +var cd,cn: integer; + +function Form(i: integer): string; +var t: string; +begin + Str(i,t); + while (Length(t)<4) do t := '0'+t; + Form := t; +end; + +procedure SetDone; +var f: text; + x: string; + t,ec: integer; + msg: string; +begin + for t:=0 to 9999 do d[t] := false; + assign(f,'1046rtl.txt'); + reset(f); + ReadLn(f,x); + WriteLn(x); + msg := ''; + while Not Eof(f) do begin + ReadLn(f,x); + Val(x,t,ec); + if NOT d[t] then d[t] := true else msg := msg + Form(t)+' doppelt getippt!'+crlf; + end; + close(f); + Alert(msg); + WriteLn('Datenbank mit Tipps geladen und verarbeitet.'); +end; + +procedure DoStats; +var i: integer; +begin + cd := 0; + cn := 0; + for i:=0 to 9999 do begin + if d[i] then Inc(cd) else Inc(cn); + end; +end; + +procedure ShowStats; +var mon: real; +begin + mon := cd; + mon := mon*500; + WriteLn('Getippt: ',cd:5,' = ',cd/100:6:2,'% = ',mon:10:2,' DM in ',cd DIV 10:3,' Tagen bei 5.000,- DM pro Tag'); + mon := cn; + mon := mon*500; + WriteLn('brig : ',cn:5,' = ',cn/100:6:2,'% = ',mon:10:2,' DM in ',cn DIV 10:3,' Tagen'); + WriteLn('Gesamt : ',cd+cn:5); +end; + +procedure ShowNotDone; +var i: integer; +begin + for i:=0 to 9999 do begin + if not d[i] then Write(Form(i),' '); + end; +end; + +function Ten(i,e: integer): longint; +var x: integer; + t: longint; +begin + if (e>0) then begin + for x:=1 to e do i := i * 10; + end; + Ten := i; +end; + +procedure WriteNum(x: integer); +begin + GotoXY(16,12); + Write(x DIV 1000); + GotoXY(18,12); + Write((x MOD 1000) DIV 100); + GotoXY(20,12); + Write((x MOD 100) DIV 10); + GotoXY(22,12); + Write(x MOD 10); +end; + +procedure WriteNumFX(x: integer); +begin + GotoXY(16,12); + FXWriteC(Num2Str(x DIV 1000)+' '+Num2Str((x MOD 1000) DIV 100)+' '+Num2Str((x MOD 100) DIV 10)+' '+Num2Str(x MOD 10),15); +end; + +procedure GetRandomNumber; +var i,x: integer; +begin + i := 0; + Randomize; + repeat + repeat + x := Random(10000); + until NOT d[x]; + WriteNum(x); + Sound(1950); + Delay(25); + NoSound; + Delay(i); + i := i + 1 + (i DIV 5); + until (i>=750); + WriteNumFX(x); + CursorOff; +end; + +procedure DoAsking; +var k: char; + kc: byte; + c: byte; + co: integer; + i: integer; +begin + DrawBorder2(20,5,60,20,11,1); + Window(21,6,59,19); + GotoXY(1,2); + FXWriteC('* * * 104.6 RTL * * *',14); WriteLn; + FXWriteC('* EURO - MILLIONAER *',15); WriteLn; + FXWriteC('* * * * * * * * * * *',14); WriteLn; + TextColor(11); + WriteLn; + WriteFlt(' Knacken Sie den vierstelligen'); + WriteFlt(' Zahlencode und gewinnen Sie '); + WriteLn; + TextColor(12); + WriteImp(' EINE MILLION EURO'); + TextColor(11); + GotoXY(1,14); FXWriteC('Beenden mit ESC',7); + GotoXY(1,12); FXWriteC('_ _ _ _',7); + CursorOff; + WaitBeep; + c := 0; + co := 0; + repeat + k := ReadKey; + if k<>#27 then begin + if k IN [#48..#57] then begin + if (c=0) then begin + GotoXY(18,12); TextColor(7); Write('_ _ _'); + end; + GotoXY(16+2*c,12); FXChar(k,15); CursorOff; + Inc(c); + kc := Ord(k)-48; + co := co + Ten(kc,4-c); + AckBeep; + end; + if (k=#8) AND (c>0) then begin + Dec(c); + GotoXY(16+2*c,12); FXChar('_',7); CursorOff; + co := (co DIV Ten(1,4-c)) * Ten(1,4-c); + ErrorBeep; + end; + if (k='r') OR (k='R') then begin + TextColor(8); + GotoXY(10,13); + Write(Space(20)); + GetRandomNumber; + WaitBeep; + end; + end; + if (c=4) then begin + GotoXY(10,13); + if d[co] then begin + TextColor(12); + ErrorBeep; + WriteFlt('*** CODE FALSCH ***'); + end else begin + TextColor(10); + ReadyBeep; + WriteFlt('*** PRUEFE CODE ***'); + end; + co := 0; + c := 0; + CursorOff; + end; + until k=#27; + Window(1,1,80,25); + CursorOn; +end; + +begin + SaveScreen; + TextMode(co80); + TextColor(7); + TextBackground(0); + ClrScr; + SetDone; + DoStats; + { ShowNotDone; } + ShowStats; + DoAsking; + RestoreScreen; +end. diff --git a/1046RTL.txt b/1046RTL.txt new file mode 100644 index 0000000..8fa0daf --- /dev/null +++ b/1046RTL.txt @@ -0,0 +1,291 @@ +Letzter Eintrag: vom 29.11.2001 +1034 +3115 +4054 +3003 +1001 +1212 +1156 +9763 +2541 +6349 +8888 +2487 +1172 +5281 +7971 +7049 +5971 +4879 +3653 +8431 +1410 +6971 +1726 +8880 +8221 +9724 +0675 +3185 +3112 +8183 +3874 +4444 +8221 +1305 +7334 +7281 +3823 +2766 +3331 +7559 +7426 +0001 +1768 +0785 +3110 +2408 +8222 +5183 +2018 +6454 +9456 +1545 +1891 +2003 +1163 +7628 +7992 +0251 +2909 +1791 +2811 +4678 +9816 +2648 +0715 +7862 +0929 +1188 +8271 +2305 +8375 +3112 +9093 +8273 +5169 +3645 +8882 +5944 +1222 +4715 +2051 +5444 +5939 +9569 +7342 +2306 +5891 +3624 +5348 +6413 +0000 +7370 +0501 +1109 +0220 +2501 +5185 +1291 +6881 +2609 +1070 +8598 +5869 +2808 +1037 +2743 +0815 +2288 +3830 +7575 +0311 +2509 +2304 +6437 +7166 +1403 +7539 +1328 +1967 +1997 +0803 +4711 +6543 +8230 +3921 +3748 +7777 +4802 +4635 +3951 +0046 +1109 +1276 +2012 +0057 +1492 +4113 +7788 +0612 +7780 +1427 +9008 +9146 +9969 +2481 +1744 +0312 +4967 +2708 +6843 +3879 +1955 +1605 +3904 +1958 +1909 +0508 +0805 +2534 +9867 +2001 +1308 +1948 +6501 +6075 +1550 +1245 +4268 +1920 +1415 +1973 +1510 +2159 +2308 +2146 +2899 +4417 +7851 +6899 +7812 +5841 +2516 +4210 +9232 +2728 +2762 +1956 +0714 +8123 +8245 +1102 +3976 +1376 +1993 +6323 +5398 +1504 +1876 +4378 +1110 +1049 +3430 +8016 +0705 +0616 +0205 +0185 +4805 +2405 +1712 +9823 +9876 +0612 +1956 +0610 +1057 +8192 +2955 +1904 +5620 +1302 +2607 +4521 +0215 +8020 +1234 +1612 +1991 +2256 +1975 +1968 +5396 +2311 +1702 +7236 +4793 +7927 +2112 +9748 +2105 +4100 +7681 +1822 +1460 +6965 +1312 +6401 +1995 +2211 +7821 +8413 +6593 +3008 +0911 +1307 +9328 +2002 +2008 +8187 +8174 +1046 +8316 +0308 +9991 +0190 +1207 +5962 +2412 +5137 +2805 +1354 +5216 +4669 +8802 +1709 +2210 +8848 +8755 +4012 +4386 +7381 +3648 +0909 +2406 +3876 +8467 +7295 +0101 +4848 +5625 diff --git a/971211.PAS b/971211.PAS new file mode 100644 index 0000000..052ab0e --- /dev/null +++ b/971211.PAS @@ -0,0 +1,83 @@ +program Zeitvertreib111297; + +uses Crt; + +var Warschon: array[1..80, 1..50] of boolean; + Randx: integer; + Randy: integer; + loc: integer; + +label Hier; + +const Chars: string = ' '; {';} + xmax = 80; + ymax = 49; + del = 0; + +procedure Init; +var i,j: integer; +begin + TextBackground(black); + Randomize; + for i:=1 to xmax do begin + for j:=1 to ymax do begin + Warschon[i,j] := False; + end; + end; + loc := Length(Chars); +end; + +procedure GetRandomNumbers; +label Hier2; +begin +Hier2: + Randx := Random(xmax) + 1; + Randy := Random(ymax) + 1; + if Warschon[randx,randy] then goto Hier2; +end; + +function GetRandomChar: string; +var rand: integer; +begin + rand := Random(loc) + 1; + GetRandomChar := Chars[rand]; +end; + +function Check: boolean; +var i,j: integer; +begin + Check := False; + for i:=1 to xmax do begin + for j:=1 to ymax do begin + if Warschon[i,j]=False then begin + Check:=True; + Exit; + end; + end; + end; +end; + +procedure WritePix(x,y: integer); +begin + GotoXY(x,y); + TextColor(Random(16)); + TextBackground(Random(16)); + Write(GetRandomChar); + Warschon[x,y] := true; +end; + +begin + TextMode(CO80 + Font8x8); + ClrScr; + Init; +Hier: + GetRandomNumbers; + WritePix(randx,randy); + Delay(del); + if keypressed then exit; + if Check then goto Hier; + Init; + goto Hier; + GotoXY(1,1); + ReadKey; +end. \ No newline at end of file diff --git a/990914.PAS b/990914.PAS new file mode 100644 index 0000000..aee1512 --- /dev/null +++ b/990914.PAS @@ -0,0 +1,103 @@ +uses Crt; + +const input='test.bmp'; { 80x49x16 Bitmap } + +var Data: array[1..80,1..98] of byte; + Orig: array[0..4096] of byte; + pos: integer; + first4: boolean; + +function GetNext: byte; +begin + if (first4) then begin + GetNext := Orig[pos] DIV 16; + first4 := false; + end else begin + GetNext := Orig[pos] MOD 16; + first4 := true; + Inc(pos); + end; +end; + +procedure LoadFile; +const Datadelta=118; +var f: File; + result: word; + i,j: integer; +begin + Assign(f, input); + Reset(f); + BlockRead(f, Orig, FileSize(f), result); + if (result<>FileSize(f)) then begin + TextColor(12); + WriteLn('FEHLER!'); + TextColor(15); + WriteLn('Es wurden nur ',result,' Bytes von ',FileSize(f),' gelesen.'); + ReadKey; + end; + if (Orig[18]<>80) OR (Orig[22]<>98) then begin + TextColor(12); + WriteLn('FEHLER!'); + TextColor(15); + WriteLn('Die zu ladende BMP-Datei ist nicht im Format 80x98!'); + WriteLn(input,': ',Orig[18],'x',Orig[22]); + Halt; + end; + first4 := true; + pos := Datadelta; + for i:=98 downto 1 do + for j:=1 to 80 do + Data[j,i] := GetNext; +end; + +function BMP2CRT(x: byte): byte; +begin + case x of + 0: BMP2CRT:=0; + 1: BMP2CRT:=4; + 2: BMP2CRT:=2; + 3: BMP2CRT:=6; + 4: BMP2CRT:=1; + 5: BMP2CRT:=5; + 6: BMP2CRT:=3; + 7: BMP2CRT:=8; + 8: BMP2CRT:=7; + 9: BMP2CRT:=12; + 10: BMP2CRT:=10; + 11: BMP2CRT:=14; + 12: BMP2CRT:=9; + 13: BMP2CRT:=13; + 14: BMP2CRT:=11; + 15: BMP2CRT:=15; + else + BMP2CRT:=x; + end; +end; + +procedure ShowFile; +var i,j: integer; + c1,c2: byte; +begin + for i:=1 to 49 do + for j:=1 to 80 do begin + GotoXY(j,i); + c1 := Data[j,i*2-1]; + c2 := Data[j,i*2]; + { if (c1>7) then c1 := c1-8; + if (c2>7) then c2 := c2-8; } + TextColor(BMP2CRT(c1)); + TextBackground(BMP2CRT(c2)); + Write(''); + end; +end; + +begin + TextMode(co80 + Font8x8); + TextColor(15); + TextBackground(0); + ClrScr; + LoadFile; + ShowFile; + + +end. \ No newline at end of file diff --git a/990915.PAS b/990915.PAS new file mode 100644 index 0000000..2da0e2e --- /dev/null +++ b/990915.PAS @@ -0,0 +1,114 @@ +uses Graph, Crt, BGIP; + +const input='face.bmp'; { Bitmap x*y*16 } + firstblock=118; + blocksize=4095; + +var Orig: array[0..blocksize] of byte; + pos: integer; + first4: boolean; + wi,he: longint; + f: file; + result: word; + xmax,ymax: integer; + +procedure OpenFile; +begin + Assign(f,input); + Reset(f,1); + BlockRead(f,Orig,SizeOf(Orig),result); + if (result<>SizeOf(Orig)) AND (result<>FileSize(f) MOD blocksize) then begin + TextColor(12); + WriteLn('FEHLER!!'); + TextColor(15); + WriteLn('Es wurden nur ',result,' Bytes gelesen, statt ',SizeOf(Orig),'.'); + Halt; + end; + wi := Orig[19]*256 + Orig[18]; + he := Orig[23]*256 + Orig[22]; + WriteLn('Image size: ',wi,'x',he,' (',(wi*he) DIV 2,' Bytes image data)'); + WriteLn(FileSize(f),' Bytes filesize'); + ReadKey; + pos := firstblock; + first4 := true; +end; + +procedure GraphInit; +var grDriver, grMode : integer; +begin + grDriver := VGA; + { VGAlo 640x200x16 + VGAmed 640x350x16 + VGAhi 640x480x16 } + grMode := VGAhi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } +end; + +function BMP2CRT(x: byte): byte; +begin + case x of + 0: BMP2CRT:=0; + 1: BMP2CRT:=4; + 2: BMP2CRT:=2; + 3: BMP2CRT:=6; + 4: BMP2CRT:=1; + 5: BMP2CRT:=5; + 6: BMP2CRT:=3; + 7: BMP2CRT:=8; + 8: BMP2CRT:=7; + 9: BMP2CRT:=12; + 10: BMP2CRT:=10; + 11: BMP2CRT:=14; + 12: BMP2CRT:=9; + 13: BMP2CRT:=13; + 14: BMP2CRT:=11; + 15: BMP2CRT:=15; + else + BMP2CRT:=x; + end; +end; + +function GetNextPixCol: byte; +begin + if (first4) then begin + GetNextPixCol := Orig[pos] DIV 16; + first4 := false; + end else begin + GetNextPixCol := Orig[pos] MOD 16; + first4 := true; + Inc(pos); + end; + if (pos>blocksize) then begin + BlockRead(f,Orig,SizeOf(Orig),result); + if (result<>SizeOf(Orig)) AND (result<>FileSize(f) MOD (blocksize+1)) AND (result<>0) then begin + CloseGraph; + TextMode(co80); + TextColor(12); + WriteLn('FEHLER!!'); + TextColor(15); + WriteLn('Es wurden nur ',result,' Bytes gelesen, statt ',SizeOf(Orig),'.'); + Halt; + end; + pos := 0; + end; +end; + +procedure ShowGraph; +var i,j: integer; +begin + for j:=he downto 1 do + for i:=1 to wi+6 do begin +{ WriteLn(i,'x',j,'- ',GetNextPixCol); } + PutPixel(i,j,BMP2CRT(GetNextPixCol)); + end; +end; + +begin + OpenFile; + Graphinit; + ShowGraph; + ReadKey; + +end. diff --git a/991011.PAS b/991011.PAS new file mode 100644 index 0000000..e1d1900 --- /dev/null +++ b/991011.PAS @@ -0,0 +1,61 @@ +program JumpDot; + +uses Crt, Graph, BGIP, DOS; + +const grav=9.80665; + fac=15; + +var xmax,ymax: word; + xmed,ymed: word; + dx, dy: word; + i: integer; + down: boolean; + di: word; + h,m,s,ss: word; + sts, sss: longint; + +procedure Init; +var grDriver, grMode : integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +begin + Init; + dx := 0; dy := 10; + down := true; + { GetTime(h,m,s,ss); + sts := h*60*60*100 + m*60*100 + s*100 + ss; } + di := 0; + for i:=0 to xmax do begin + { GetTime(h,m,s,ss); + sss := (h*60*60*100 + m*60*100 + s*100 + ss)-(sts); } + dx := i; + { dy := Round((9.80665)*Sqr(sss/100)); } + if (down) then dy := Round((grav/2)*Sqr((i-di)/fac)) else dy := Round((grav/2)*Sqr((di-(i-di))/fac)); + if (dy>ymax) then begin + down:=false; + dy:=ymax-1; + di:=i-di; + end; + if (dy<=0) AND (di 3.2 then Write('Dieser Mensch ist schon so gut wie tot!'); + if Promille > 5 then WriteLn(' --- Berichtigung: Er IST tot! ---') else WriteLn; + Abbauzeit := Promille/0.15; + WriteLn('Abbauzeit in h : ',Abbauzeit:3:4); + AZh := Int(Abbauzeit); + AZm := (Abbauzeit-Int(Abbauzeit))*60; + AZs := (AZm-Int(AZm))*60; + WriteLn('Abbauzeit : ',AZh:2:0,'h ',AZm:2:0,'m ',AZs:2:0,'s'); + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + repeat until Keypressed; +end. \ No newline at end of file diff --git a/BASICSTR.PAS b/BASICSTR.PAS new file mode 100644 index 0000000..6dd6bee --- /dev/null +++ b/BASICSTR.PAS @@ -0,0 +1,26 @@ +unit BasicStrings; + +interface + function Mid(Txt: string; Index: integer; Count: integer): string; + function Left(Txt: string; Count: integer): string; + function Right(Txt: string; Count: integer): string; + +implementation + function Mid(Txt: string; Index: integer; Count: integer): string; + begin + Mid := Copy(Txt, Index, Count); + end; + + function Left(Txt: string; Count: integer): string; + begin + Left := Copy(Txt, 1, Count); + end; + + function Right(Txt: string; Count: integer): string; + begin + Right := Copy(Txt, Length(Txt)-Count+1, Length(Txt)-(Length(Txt)-Count)); + end; + +begin + WriteLn(' Loading Unit: BasicStrings - geschrieben von RoboCop IND.'); +end. diff --git a/BASICTST.PAS b/BASICTST.PAS new file mode 100644 index 0000000..53223ea --- /dev/null +++ b/BASICTST.PAS @@ -0,0 +1,13 @@ +program TestBasicStrings; + +uses BasicStrings, Crt; + +var Txt: string; + +begin + Txt := 'Dies ist ein Test-String'; + WriteLn('Urstring: '+Txt); + WriteLn('8 Linke Zeichen: '+Left(Txt, 8)); + WriteLn('7 Zeichen ab 6. Position: '+Mid(Txt, 6, 7)); + WriteLn('6 Rechte Zeichen: '+Right(Txt , 6)); +end. \ No newline at end of file diff --git a/BGIPATH.PAS b/BGIPATH.PAS new file mode 100644 index 0000000..0ae9eab --- /dev/null +++ b/BGIPATH.PAS @@ -0,0 +1 @@ +BGIPath = 'C:\SCHULS~1\TP\BGI'; diff --git a/BLINK.PAS b/BLINK.PAS new file mode 100644 index 0000000..c2947bc --- /dev/null +++ b/BLINK.PAS @@ -0,0 +1,42 @@ +program blink; + +uses Crt,CursorOnOff; + +const xlen=20; + ylen=10; + +var x1,x2,y1,y2: byte; + +procedure FillCol(col: byte); +var i,j: byte; +begin + TextColor(col); + GotoXY(1,1); + for i:=y1 to y2 do begin + for j:=x1 to x2 do begin + Write(''); + end; + end; + delay(50); +end; + +begin + ClrScr; + x1 := 40-xlen div 2; + x2 := 40+xlen div 2; + y1 := 12-ylen div 2; + y2 := 12+ylen div 2; + + window(x1,y1,x2,y2); + CursorOff; + repeat + FillCol(0); + FillCol(8); + FillCol(7); + FillCol(15); + FillCol(7); + FillCol(8); + until keypressed; + CursorOn; + ReadKey; +end. \ No newline at end of file diff --git a/BLUES.PAS b/BLUES.PAS new file mode 100644 index 0000000..5e25e69 --- /dev/null +++ b/BLUES.PAS @@ -0,0 +1,167 @@ +program BlueS; + +uses Crt; + +const FILEZ:array[0..27] of string=('atapi.sys','Disk.sys','Ntfs.sys','Cdrom.SYS','Null.SYS','Beep.SYS', + 'i8042prt.sys','kbdclass.sys','s3mini.sys','Msfs.SYS','NDIS.SYS', + 's3trio3d.dll','FSFILTER.SYS','FSAVP.SYS','nbf.sys','Floppy.SYS', + 'CLASS2.SYS','SCSIPORT.SYS','win32k.sys','Cdfs.SYS','Fastfat.SYS', + 'hcioPort.SYS','ParVdm.SYS','Parport.SYS','afd.sys','netbt.sys', + 'nwlnkb.sys','###'); + +var FILEZc: integer; + exitnow: boolean; + oldhex: string; + +procedure Init; +var i: integer; +begin + exitnow := false; + i := 0; + repeat + Inc(i); + until (FILEZ[i]='###'); + FILEZc := i; + Randomize; + TextMode(co80 + Font8x8); + TextColor(7); + TextBackground(1); + ClrScr; +end; + +procedure Outit; +begin + GotoXY(1,1); + if NOT (exitnow) then ReadKey; +end; + +procedure RandHex(x,y: integer; pre, cap, lowonly, old: boolean); +const HexSet:string='0123456789abcdef'; +var i,mx: integer; +begin + GotoXY(x,y); + if (pre) then Write('0x'); + if (lowonly) then begin + Write('0000'); + mx := 4; + end else mx := 8; + if (NOT old) then begin + oldhex := ''; + for i:=1 to mx do oldhex := oldhex + HexSet[Random(16)+1]; + end; + if (cap) then for i:=1 to Length(oldhex) do Write(UpCase(oldhex[i])) else Write(oldhex); +end; + +procedure RandFile(x,y: integer); +begin + GotoXY(x,y); + Write(FILEZ[Random(FILEZc)]); +end; + +procedure Mask; +var i: integer; +begin + GotoXY(1,6); + Write('CPUID:'); + i := Random(3)+1; + case i of + 1: Write('AuthenticAMD'); + 2: Write('IntelInside'); + 3: Write('CyrixInstead'); + end; + Write(' 5.8.c irql:1f '); + i := Random(2); + if (i=1) then Write('DPC '); + Write('SYSVER 0xoooooooo'); + RandHex(WhereX-10,6,true,false,false,false); + GotoXY(1,8); + Write('Dll Base DateStmp - Name Dll Base DateStmp - Name'); + GotoXY(1,35); + Write('Address dword dump Build [1381] - Name'); +end; + +procedure FillOutError; +begin + begin + GotoXY(1,2); + WriteLn('*** STOP: 0xoooooooo (0xoooooooo, 0xoooooooo, 0xoooooooo, 0xoooooooo)'); + WriteLn('IRQL_NOT_LESS_OR_EQUAL*** Address oooooooo has base at oooooooo - '); + RandHex(11,2,true,true,true,false); + RandHex(23,2,true,true,false,false); + RandHex(35,2,true,true,true,false); + RandHex(47,2,true,true,true,false); + RandHex(59,2,true,true,false,false); + RandHex(35,3,false,false,false,true); + RandHex(56,3,false,false,false,false); + RandFile(67,3); + end; +end; + +procedure FillOutDlls; +var c,x: integer; + done: boolean; +begin + GotoXY(1,9); + for c:=1 to 25 do begin + done := false; + repeat + if (done) then x:=40 else x:=1; + GotoXY(x,WhereY); + RandHex(WhereX,WhereY,false,false,false,false); + Write(' '); + RandHex(WhereX,WhereY,false,false,false,false); { DATUM } + Write(' - '); + RandFile(WhereX,WhereY); + done := true; + until ((done) AND (x=40)); + WriteLn; + end; +end; + +procedure FillOutDump; +var c,i: integer; +begin + GotoXY(1,36); + for c:=1 to 10 do begin + for i:=1 to 7 do begin + RandHex(WhereX,WhereY,false,false,false,false); + Write(' '); + end; + Write('- '); + if (c=1) then Write('ntoskrnl.exe') else RandFile(WhereX,WhereY); + WriteLn; + end; +end; + +procedure MemDump; +var i: integer; +begin + i := 0; + GotoXY(1,47); + WriteLn('Beginnen des Speicherabbildes'); + Write('Speicher wird auf Datentrger abgebildet: '); + for i:=1 to 100 do begin + GotoXY(43,48); + Write(i:3); + GotoXY(1,1); + Delay(Random(300)+250); + if (keypressed) then begin + ReadKey; + exitnow := true; + Exit; + end; + end; + GotoXY(1,48); + WriteLn('Speicherabbild abgeschlossen. Wenden Sie sich an den Systemadministrator'); + Write('oder einen Techniker.'); +end; + +begin + Init; + Mask; + FillOutError; + FillOutDlls; + FillOutDump; + MemDump; + Outit; +end. diff --git a/BP-HILFE/BAR3D.PAS b/BP-HILFE/BAR3D.PAS new file mode 100644 index 0000000..8e8969f --- /dev/null +++ b/BP-HILFE/BAR3D.PAS @@ -0,0 +1,20 @@ +uses Graph; + +var + Gd, Gm: Integer; + Y0, Y1, Y2, X1, X2: Integer; +begin + Gd := Detect; + InitGraph(Gd, Gm, 'F:\SPRACHEN\BP\BGI\'); + if GraphResult <> grOk then + Halt(1); + Y0 := 10; + Y1 := 60; + Y2 := 110; + X1 := 10; + X2 := 50; + Bar3D(X1, Y0, X2, Y1, 10, TopOn); + Bar3D(X1, Y1, X2, Y2, 10, TopOff); + Readln; + CloseGraph; +end. diff --git a/BP-HILFE/ORD.PAS b/BP-HILFE/ORD.PAS new file mode 100644 index 0000000..e065689 --- /dev/null +++ b/BP-HILFE/ORD.PAS @@ -0,0 +1,14 @@ + {Ord.PAS} + +{Beispielcode fr die Funktion Ord } + + uses Crt; + + type + Colors = (RED,GREEN,BLUE); + begin + Writeln('BLUE has an ordinal value of ', + Ord(BLUE)); + Writeln('The ASCII code for "c" is ', + Ord('c'), ' decimal'); + end. diff --git a/CODER_T.OLD b/CODER_T.OLD new file mode 100644 index 0000000..cbb3e72 --- /dev/null +++ b/CODER_T.OLD @@ -0,0 +1,36 @@ +program Coder_Test; + +uses Crt, Coder; + +var org,x: string; + +begin + TextBackground(0); + TextColor(15); + ClrScr; + Write('Zu verschlsselnder Text: '); + ReadLn(org); + RSInit := Length(org)*11; + WriteLn('RandSeed: ',RSInit); + WriteLn; + + x := org; + Write('OrdCode (co=true) :'); + OrdCode(x,code); + WriteLn(x); + + x := org; + Write('OrdCode (co=false) :'); + OrdCode(x,decode); + WriteLn(x); + + x := org; + Write('SortCode (co=true) :'); + SortCode(x,code); + WriteLn(x); + + x := org; + Write('SortCode (co=false):'); + SortCode(x,decode); + WriteLn(x); +end. \ No newline at end of file diff --git a/CODER_T.PAS b/CODER_T.PAS new file mode 100644 index 0000000..52f390a --- /dev/null +++ b/CODER_T.PAS @@ -0,0 +1,56 @@ +program Coder_Test; + +uses Crt, Coder; + +var org,x: string; + +begin + TextColor(15); + TextBackground(0); + ClrScr; + Write('Zu verschlsselnder Text: '); + ReadLn(org); + RSInit := Length(org) * 11; + WriteLn('RandSeed: ',RSInit); + WriteLn; + + x := org; + WriteLn('OrdCode (co=true)'); + OrdCode(x,code); + WriteLn(x); + OrdCode(x,decode); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('OrdCode (co=false)'); + OrdCode(x,decode); + WriteLn(x); + OrdCode(x,code); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('SortCode (co=true)'); + SortCode(x,code); + WriteLn(x); + SortCode(x,decode); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('SortCode (co=false)'); + SortCode(x,decode); + WriteLn(x); + SortCode(x,code); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('Hebrew'); + Hebrew(x); + WriteLn(x); + Hebrew(x); + WriteLn(x); + WriteLn; +end. diff --git a/COMPTON.PAS b/COMPTON.PAS new file mode 100644 index 0000000..fe506fb --- /dev/null +++ b/COMPTON.PAS @@ -0,0 +1,40 @@ +program Physik; + +uses Crt; + +const W:real=3.204E-14; { Wkin = 200 keV } + C:real=2.99792458E8; { c } + M:real=9.1093897E-31; { Elektronenmasse } + comp=13; + +var mx, vx: real; + omx,ovx: real; + mc, omc, vc, ovc: string; + ct: longint; + +begin + ClrScr; + mx := M; + vx := 0; + ct := 0; + WriteLn('Gewnschte Genauigkeit: ',comp-2,' Stellen nach dem Kommata.'); + repeat + omx := mx; + ovx := vx; + vx := Sqrt((2*W)/(mx)); + mx := M/Sqrt(1-Sqr(vx/C)); + Inc(ct); + Str(mx,mc); + Str(omx,omc); + Str(vx,vc); + Str(ovx,ovc); + mc := Copy(mc,1,comp); + omc := Copy(omc,1,comp); + vc := Copy(vc,1,comp); + ovc := Copy(ovc,1,comp); + GotoXY(1,3); + WriteLn('[',ct:5,'] Elektronenmasse m: ',mx,' '); + WriteLn('[',ct:5,'] Geschwindigkeit v: ',vx,' '); + Delay(200); + until (mc=omc) AND (vc=ovc); +end. \ No newline at end of file diff --git a/CONTEST/AUFG1.PAS b/CONTEST/AUFG1.PAS new file mode 100644 index 0000000..8db3e16 --- /dev/null +++ b/CONTEST/AUFG1.PAS @@ -0,0 +1,218 @@ +{ Aufgabe fr den Bundeswettbewerb in Informatik + + Aufgabe 1 + + Belagerung um Farnsworth Castle + + AD 1314. Nicht mehr lange knnen die Ritter Knigin Eleonores auf Farns- + worth Castle die Angreifer des Blythletwick-Clans abhalten. Die einzige + Hoffnung der Knigin ist die Benachrichtigung ihres Sohnes John, der sich + mit Julee, der Prinzessin des Clans, verlobt hat. Wre sie auf Farnsworth, + mten die Blythlethwicks verhandeln. Doch die Knigin kann sich nicht + sicher sein, da ihr Bote nicht abgefangen wird. Wrde ihr Plan bekannt, + wre Blutvergieen unvermeidbar. Eleonore schickt darum zwei Boten: Einen + mit einer verschlsselten Botschaft, den anderen mit einem Schlssel. Bei + der Verschlsselung geht sie folgendermaen vor: Sie schneidet eine qua- + dratische Schablone aus Leder, die in quadratische Felder eingeteilt ist. + Manche dieser Felder sind ausgeschnitten. Diese Schablone legt die Knigin + auf ein Stck Papier und schreibt die ersten Buchstaben ihrer Botschaft + von links nach rechts, oben nach unten, durch die ausgeschnittenen Felder. + Dann dreht sie die Schablone um 90 Grad im Uhrzeigersinn, schreibt weiter + und wiederholt diesen Vorgang noch zwei weitere Male. + Die Nachricht ist: + + KOMM UND BRING JULEE NACH FARNSWORTH + + Schablone und verschlsselte Nachricht sehen so aus: + + BRKOAE + ER IMN + NMS WN + OGA CJ + UHRNUD + L FTH + + 1. Welchen Anforderungen mssen Anzahl und Anordnung der Lcher gengen, + damit die Schablone zur Verschlsselung geeignet ist? + 2. Gib ein einfaches Verfahren fr den Entwurf von geeigneten Schablonen + an. + 3. Schreibe ein Programm, das anhand einer gegebenen Schablone eine Nach- + richt ver- und entschlsseln kann. Wie sieht die mit der obigen Scha- + blone verschlsselte Fassung folgender Rckantwort aus? + + JULEE MIT STALLKNECHT DURCHGEBRANNT +} + +program Belagerung_um_Farnsworth_Castle; +{ Lsung ausgearbeitet von Markus Birth } + +uses Crt; + +var Template: array[1..6] of string[6]; + chosen: char; + i, j: integer; + MaxC: integer; + +procedure InitTemplate; + begin + Template[1] := '001100'; + Template[2] := '000010'; + Template[3] := '010100'; + Template[4] := '000000'; + Template[5] := '100101'; + Template[6] := '100000'; + end; + +procedure WriteTemplate(y,x: integer); + begin + GotoXY(x,y); + MaxC := 0; + for i:=1 to 6 do begin + for j:=1 to 6 do begin + if Copy(Template[i],j,1)='0' then Write('') else begin + Write(''); + Inc(MaxC); + end; + end; + GotoXY(x,y+i); + end; + MaxC := MaxC * 4; + end; + +procedure TurnTemplate; + var Temp: array[1..6] of string[6]; + begin + for i := 1 to 6 do begin + Temp[i] := Template[i]; + Template[i] := ''; + end; + for i := 1 to 6 do begin + for j := 1 to 6 do Template[i] := Template[i] + Copy(Temp[7-j],i,1); + end; + end; + +procedure Coding; + var Text2Code: string; + take, curchar: integer; + + const xco = 3; + yco = 3; + + begin + curchar := 1; + ClrScr; + TextColor(White); + Write('Text eingeben (max. ', MaxC, ' Zeichen): '); + TextColor(LightGray); + ReadLn(Text2Code); + TextColor(White); + Write('Anzahl Buchstaben: '); + TextColor(LightGray); + WriteLn(Length(Text2Code)); + TextColor(White); + for take := 1 to 4 do begin + WriteTemplate(yco+1, xco+10); + for i := 1 to 6 do begin + for j := 1 to 6 do begin + if Copy(Template[i],j,1)='1' then begin + GotoXY(xco+j,yco+i); + Write(Copy(Text2Code,curchar,1)); + GotoXY(xco+17+curchar,yco+6); + Write(Copy(Text2Code,curchar,1)); + Inc(curchar); + end; + Delay(50); + end; + end; + TurnTemplate; + end; + GotoXY(3, yco+10); + TextColor(Yellow); + WriteLn('Taste drcken, wenn bereit...'); + ReadKey; + end; + +procedure DeCoding; + var Coded: array[1..6] of string[6]; + take, curchar: integer; + + const xco = 19; + yco = 2; + + begin + curchar := 1; + ClrScr; + WriteLn('Pro Zeile nur 6 Buchstaben!'); + for i := 1 to 6 do begin + Write('Zeile ', i, ': '); + ReadLn(Coded[i]); + GotoXY(1,i+1); + WriteLn(' '); + end; + for take := 1 to 4 do begin + WriteTemplate(yco, xco); + for i := 1 to 6 do begin + for j := 1 to 6 do begin + if Copy(Template[i],j,1)='1' then begin + GotoXY(xco+curchar+8,yco+5); + Write(Copy(Coded[i],j,1)); + Inc(curchar); + GotoXY(j+9, i+1); + Write(' '); + end; + Delay(50); + end; + end; + TurnTemplate; + end; + GotoXY(3, yco+10); + TextColor(Yellow); + WriteLn('Taste drcken, wenn bereit...'); + ReadKey; + end; + +begin + ClrScr; + TextColor(White); + WriteLn('-= Belagerung um Farnsworth Castle =-'); + TextColor(Cyan); + WriteLn('Aufgabe 1 vom Bundeswettbewerb fr Informatik 97'); + TextColor(LightGray); + WriteLn; + WriteLn('Umgesetzt von Markus Birth'); + InitTemplate; + TextColor(Yellow); + WriteLn('Verwendete Schablone mit Drehergebnissen:'); + TextColor(LightGray); + Delay(500); + WriteTemplate(6,1); + TextColor(DarkGray); + TurnTemplate; + Delay(500); + WriteTemplate(6,11); + TurnTemplate; + Delay(500); + WriteTemplate(6,21); + TurnTemplate; + Delay(500); + WriteTemplate(6,31); + TurnTemplate; + TextColor(Yellow); + WriteLn; + Write('Maximale Zeichenanzahl: '); + TextColor(LightGray); + WriteLn(MaxC); + WriteLn; + Write('Wollen Sie '); + TextColor(Yellow); + Write('v'); + TextColor(LightGray); + Write('erschlsseln oder '); + TextColor(Yellow); + Write('e'); + TextColor(LightGray); + Write('ntschlsseln (andere Taste - quit)? '); + chosen := UpCase(ReadKey); + if chosen='V' then Coding; + if chosen='E' then DeCoding; +end. \ No newline at end of file diff --git a/CONTEST/AUFG4.PAS b/CONTEST/AUFG4.PAS new file mode 100644 index 0000000..3019005 --- /dev/null +++ b/CONTEST/AUFG4.PAS @@ -0,0 +1,205 @@ +{ Aufgabe fr den Bundeswettbewerb in Informatik + + Aufgabe 4 + + Wetter in Quadratien + + Quadratien ist ein quadratisches Gebiet aus quadratischen Feldern. Das Feld + in der Nordwest-Ecke hat die Zeilennummer 0 und die Spaltennummer 0. + + Das Wetter in Quadratien wird durch quadratische Wolken bestimmt, die genau + ein Feld gro sind. Solche Wolken rcken getaktet ber Quadratien vor, und + zwar von Norden nach Sden 2 Felder pro Takt und, in einer anderen Hhe, + von Westen nach Osten 3 Felder pro Takt. Es regnet berall dort, wo sich + nach einem Vorrcken sowohl eine Nord-Sd- als auch eine West-Ost-Wolke + befindet. Wolken, aus denen regnet, lsen sich auf. + + Die Wolkenvorhersage gibt an, an welchen Stellen (in der Form: Zeilennum- + mer, Spaltennummer) sich zum aktuellen Zeitpunkt Wolken befinden. Daraus + lt sich dann ermitteln, wo es in Quadratien regnen wird, denn es werden + nur solche Wolken angegeben, die ber Quadratien hinwegziehen werden. + + Beispiel: + Wolkenvorhersage: + -5/ 6 -4/ 6 -2/ 7 7/-6 -2/ 9 -5/ 7 + 1/-2 8/-6 6/-6 7/-7 6/-7 1/-3 -2/ 8. + + Es wird jeweils einmal regnen an den Stellen 1,6, 1,7 und 8,9. + + Aufgabe: + Schreibe ein Programm, welches folgendes leistet: + 1. Einlesen der Gre von Quadratien (Anzahl Zeilen bzw. Spalten) + 2. Einlesen einer Wolkenvorhersage + 3. Ausgabe, wo in Quadratien wie oft Regen fllt + + Sende uns 3 Beispiele, darunter eines fr ein Quadratien der Gre 10x10 + und folgender Wolkenvorhersage: + 2/-3 -5/ 5 -3/ 4 1/-4 6/-12 -3/ 5 + -7/ 5 3/-10 -6/ 6 6/-11 -7/ 4 3/-4 + -4/ 5 -3/ 3 -6/ 9 2/-4 +} + +program Wetter_in_Quadratien; +{ Lsung ausgearbeitet von Markus Birth } + +uses Crt; + +type W=record + x,y: integer; + dir: integer; + end; + R=record + x,y: integer; + w1,w2: integer; + end; + +const simdel=500; + +var Wolke: array[1..50] of W; + Rain: array[1..50] of R; + QX, QY: integer; + count, rct: integer; + MatrixX, MatrixY: integer; + i, j, k, l: integer; + maxtakes: integer; + +procedure InitClouds; +{ Wolke.Dir: 1= li=>re + 2= ob=>un } + begin + for i:=1 to count do begin + if Wolke[i].x<0 then Wolke[i].dir := 1; + if Wolke[i].x0) then begin + TextColor(LightCyan); + Write(''); + end; + end; + end; + end; + end; + +procedure SimClouds; + begin + for i:=1 to count do begin + if Wolke[i].dir=1 then Wolke[i].x:=Wolke[i].x+3; + if Wolke[i].dir=2 then Wolke[i].y:=Wolke[i].y+2; + if (Wolke[i].dir<0) OR (Wolke[i].dir>2) then WriteLn('ERRRORRR!!!'); + end; + end; + +procedure CheckForRain; + begin + for j:=1 to count do begin + for k:=j to count do begin + if (Wolke[j].x=Wolke[k].x) AND (Wolke[j].y=Wolke[k].y) AND (j<>k) + AND (Wolke[j].dir<>0) AND (Wolke[k].dir<>0) then begin + Rain[rct].x := Wolke[j].x; Rain[rct].y := Wolke[j].y; + Rain[rct].w1 := j; Rain[rct].w2 := k; + Inc(rct); + Wolke[k].x := 0; Wolke[k].y := 0; Wolke[k].dir := 0; + Wolke[j].x := 0; Wolke[j].y := 0; Wolke[j].dir := 0; + end; + end; + end; + end; + +procedure ProgHeader; + begin + TextColor(White); + WriteLn('-= Wetter in Quadratien =-'); + TextColor(Cyan); + WriteLn('Aufgabe 4 vom Bundeswettbewerb fr Informatik'); + TextColor(LightGray); + WriteLn; + WriteLn('Umgesetzt von Markus Birth'); + WriteLn; + end; + +procedure InputData; + begin + TextColor(Yellow); + Write('Geben Sie die Breite Quadratiens ein: '); + TextColor(LightGray); + ReadLn(QX); + TextColor(Yellow); + Write('Geben Sie nun die Hhe Quadratiens ein: '); + TextColor(LightGray); + ReadLn(QY); + WriteLn; + TextColor(White); + WriteLn('Jetzt kommen die Wolken... (Beenden durch Eingabe von 0 und 0! 5|-10;-5|5)'); + for i:=1 to 50 do begin + if k=0 then j := 0; + if k=1 then j := 27; + if k=2 then j := 54; + Inc(k); + if k>2 then k := 0; + GotoXY(j, WhereY-1); + TextColor(Yellow); + Write('Wolke ', i, ' Y: '); + TextColor(LightGray); + ReadLn(Wolke[i].y); + GotoXY(16+j, WhereY-1); + TextColor(Yellow); + Write('X: '); + TextColor(LightGray); + ReadLn(Wolke[i].x); + if (Wolke[i].y = 0) AND (Wolke[i].x = 0) then break; + Inc(count); + end; + end; + +begin + ClrScr; + Inc(rct); + ProgHeader; + InputData; + TextColor(Yellow); + Write('Anzahl Wolken: '); + TextColor(LightGray); + WriteLn(count); + InitClouds; + ClrScr; + TextColor(Yellow); + WriteLn('-= Simulation =-'); + WriteMatrix(1,3); + maxtakes := Trunc((QX-MatrixX)/3); + if Trunc((QY-MatrixY)/2)>maxtakes then maxtakes := Trunc((QY-MatrixY)/2); + maxtakes := maxtakes+1; + for l:=1 to maxtakes do begin + SimClouds; + Delay(simdel); + WriteMatrix(1,3); + CheckForRain; + end; + + for i:=1 to rct-1 do begin + GotoXY(1,i); + TextColor(White); + GotoXY(QX-MatrixX+5,2+i); + WriteLn(i,'. Regen bei ',Rain[i].y,'|',Rain[i].x,' - Wolken: ',Rain[i].w1,' + ',Rain[i].w2); + end; + GotoXY(5,24); + TextColor(Yellow); + WriteLn('Bitte eine Taste drcken...'); + ReadKey; +end. \ No newline at end of file diff --git a/DATABANK/DATABANK.DAT b/DATABANK/DATABANK.DAT new file mode 100644 index 0000000..409b5ec --- /dev/null +++ b/DATABANK/DATABANK.DAT @@ -0,0 +1,8 @@ +Birth +Markus +Musterstrasse +1 +Musterstadt +12345 ++49 123 4567 ++49 123 5678 diff --git a/DATABANK/DATABANK.PAS b/DATABANK/DATABANK.PAS new file mode 100644 index 0000000..d243bf6 --- /dev/null +++ b/DATABANK/DATABANK.PAS @@ -0,0 +1,367 @@ +program Datenbank; +uses Crt,Dos; + +const Defaultfile:string ='DataBank.DAT'; + Cfgfile='DataBank.INI'; + CName=0; + CVorname=1; + CStrasse=2; + CNummer=3; + COrt=4; + CPLZ=5; + CTel=6; + CFax=7; + +type Daten=record + Namen: string[30]; + Vorname: string[15]; + Strasse: string[30]; + Nummer: string[6]; + Ort: string[20]; + PLZ: string[10]; + Tel: string[30]; + Fax: string[30]; + end; + +type ActiveCheck=record + Add: boolean; + Edit: boolean; + Del: boolean; + View: boolean; + Load: boolean; + Save: boolean; + Change: boolean; + Init: boolean; + end; + +var Adresse: array[0..99] of Daten; + Act: ActiveCheck; + CenterPos, RetValue: integer; + +procedure StartInit; + begin + Act.Load:=true; + Act.Change:=true; + Act.Init:=true; + end; + +procedure ReadyBeep; + begin + Sound(800); + Delay(50); + NoSound; + Delay(50); + Sound(1000); + Delay(50); + NoSound; + Delay(50); + Sound(1200); + Delay(50); + NoSound; + end; + +procedure ErrorBeep; + begin + Sound(100); + Delay(200); + NoSound; + end; + +procedure AckBeep; + begin + Sound(1200); + Delay(25); + NoSound; + end; + +procedure DrawBorder(MaxX,MaxY: integer; TCol, BCol: integer; BType: integer); + var i,j: integer; + lx,rx,oy,uy,mx,my: integer; + DrwDelay, FilDelay: integer; + Border: string[8]; + begin + window(1,1,80,25); + if (MaxX=0) AND (MaxY=0) AND (TCol=0) AND (BCol=0) then Exit; + if BType=1 then Border := 'ڿٳ'; + if BType=2 then Border := 'ɻȼ'; + if BType=3 then Border := 'ոԾ'; + if BType=4 then Border := 'ַӽ'; + if BType=5 then Border := ''; + if BType=6 then Border := 'ڷԼ'; + lx := 41-MaxX; oy := 13-MaxY; rx := 40+MaxX; uy := 12+MaxY; + mx := 40; my := 12; DrwDelay := 1000 div (2*MaxX); FilDelay := 1; + TextColor(TCol); TextBackground(BCol); + for i:=mx downto lx+1 do begin + GotoXY(i,oy); Write(Border[7]); + GotoXY((rx+1)-i+lx-1,oy); Write(Border[7]); + Delay(DrwDelay); + end; + GotoXY(lx,oy); Write(Border[1]); + GotoXY(rx,oy); Write(Border[2]); + Delay(DrwDelay); + for i:=oy+1 to uy-1 do begin + GotoXY(lx,i); Write(Border[5]); + GotoXY(rx,i); Write(Border[6]); + Delay(DrwDelay); + end; + GotoXY(lx,uy); Write(Border[3]); + GotoXY(rx,uy); Write(Border[4]); + Delay(DrwDelay); + for i:=lx+1 to mx do begin + GotoXY(i,uy); Write(Border[8]); + GotoXY((rx+1)-i+lx-1,uy); Write(Border[8]); + Delay(DrwDelay); + end; + for i:=lx+1 to rx-1 do begin + for j:=oy+1 to uy-1 do begin + GotoXY(i,j); Write(' '); + Delay(FilDelay); + end; + end; + CenterPos := (rx-lx) div 2; window(lx+2,oy+1,rx-2,uy-1); + end; + +procedure WriteC(text: string); + var x,y: integer; + begin + x := CenterPos-(Length(text) div 2); + y := WhereY; + GotoXY(x,y); + Write(text); + end; + +procedure WriteCLn(text: string); + var x,y: integer; + begin + x := CenterPos-(Length(text) div 2); + y := WhereY; + GotoXY(x,y); + WriteLn(text); + end; + +procedure MainWindow; + begin + DrawBorder(40,12,15,0,4); + GotoXY(1,1); + TextColor(9); WriteC('- -'); Delay(100); + TextColor(3); WriteC('= ='); Delay(100); + TextColor(11); WriteC(' '); Delay(100); + TextColor(15); WriteC(' '); Delay(100); + TextColor(15); WriteC('D K'); Delay(150); + TextColor(7); WriteC('D K'); + TextColor(15); WriteC('A N'); Delay(150); + TextColor(8); WriteC('D K'); + TextColor(7); WriteC('A N'); + TextColor(15); WriteC('T A'); Delay(150); + TextColor(0); WriteC('D K'); + TextColor(8); WriteC('A N'); + TextColor(7); WriteC('T A'); + TextColor(15); WriteC('E B'); Delay(150); + TextColor(0); WriteC('A N'); + TextColor(8); WriteC('T A'); + TextColor(7); WriteC('E B'); + TextColor(15); WriteC('N-'); Delay(150); + TextColor(0); WriteC('T A'); + TextColor(8); WriteC('E B'); + TextColor(7); WriteC('N-'); Delay(150); + TextColor(0); WriteC('E B'); + TextColor(8); WriteC('N-'); Delay(150); + TextColor(0); WriteC('N-'); Delay(150); + TextColor(8); WriteC('DATEN-BANK'); Delay(200); + TextColor(6); WriteC('DATEN-BANK'); Delay(200); + TextColor(14); WriteC('DATEN-BANK'); + end; + +procedure FXWrite(text: string; finc: integer); + var x,y,i: integer; + finc2: integer; + Del1: integer; + begin + x := WhereX; + y := WhereY; + Del1 := 750 div Length(text); + if Del1>75 then Del1 := 75; + for i:=1 to Length(text) do begin + GotoXY(x+i-1,y); TextColor(15); Write(text[i]); + if i>1 then begin + GotoXY(x+i-2,y); + TextColor(7); + Write(text[i-1]); + end; + if i>2 then begin + GotoXY(x+i-3,y); + TextColor(8); + Write(text[i-2]); + end; + Delay(Del1); + end; + GotoXY(x+Length(text)-1,y); TextColor(7); Write(text[Length(text)]); + if Length(text)>1 then begin + GotoXY(x+Length(text)-2,y); + TextColor(8); + Write(text[Length(text)-1]); + end; + Delay(Del1); + GotoXY(x+Length(text)-1,y); TextColor(8); Write(text[Length(text)]); + Delay(Del1*3); + if finc<=blink then begin + if finc<8 then finc2 := finc+8 else finc2 := finc-8; + end else begin + if finc<8+blink then finc2 := finc+8 else finc2 := finc-8; + end; + if finc=8 then finc2 := 15; + if finc=15 then begin + GotoXY(x,y); TextColor(8); Write(text); Delay(100); + end; + GotoXY(x,y); TextColor(finc2); Write(text); + Delay(100); + if finc=8 then begin + GotoXY(x,y); TextColor(7); Write(text); Delay(100); + end; + GotoXY(x,y); TextColor(finc); Write(text); + end; + +procedure Copyright; + begin + DrawBorder(20,4,14,2,6); TextColor(DarkGray); + WriteCLn('Copyright (C)1997 by Markus Birth'); + GotoXY(13,1); FXWrite('(C)1997',8); + GotoXY(1,3); TextColor(White); + WriteCLn('Jeglicher Versto gegen dieses'); + WriteCLn('Copyright wird strafrechtlich'); + WriteCLn('verfolgt.'); + TextColor(LightRed); WriteC('Danke fr die Beachtung!'); + end; + +procedure ProgDesc; + begin + DrawBorder(15,2,11,1,5); + TextColor(DarkGray); + GotoXY(4,1); Write('-= DATEN-BANK =-'); + GotoXY(4,1); FXWrite('-= DATEN-BANK =-',15); WriteLn; + TextColor(DarkGray); WriteC('by RoboCop'); + ReadyBeep; + end; + +procedure MainMenu; + var ActCol: integer; + ColAct, ColInA: integer; + begin + ColAct:=1514; { Nur zur einfacheren Weiterverarbeitung: xxyy } + ColInA:=0808; { xx-Textfarbe --- yy-Buchstabe } + GotoXY(1,3); + TextColor(8); + WriteC(' Datendatei: '+Defaultfile+' '); + GotoXY(10,5); + FXWrite('Whlen Sie eine Aktion durch drcken der jeweiligen Taste',10); + if Act.Add then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,7); FXWrite(' - Adresse hinzufgen',Trunc(ActCol/100)); + GotoXY(11,7); FXWrite('A',ActCol-Trunc(ActCol/100)*100); + if Act.Edit then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,7); FXWrite(' - Adresse bearbeiten',Trunc(ActCol/100)); + GotoXY(41,7); FXWrite('E',ActCol-Trunc(ActCol/100)*100); + if Act.Del then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,9); FXWrite(' - Adresse lschen',Trunc(ActCol/100)); + GotoXY(11,9); FXWrite('D',ActCol-Trunc(ActCol/100)*100); + if Act.View then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,9); FXWrite(' - Adressen durchsehen',Trunc(ActCol/100)); + GotoXY(41,9); FXWrite('V',ActCol-Trunc(ActCol/100)*100); + GotoXY(9,11); FXWrite('',8); + if Act.Load then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,13); FXWrite(' - Datendatei laden',Trunc(ActCol/100)); + GotoXY(11,13); FXWrite('L',ActCol-Trunc(ActCol/100)*100); + if Act.Save then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,13); FXWrite(' - Datendatei schreiben',Trunc(ActCol/100)); + GotoXY(41,13); FXWrite('S',ActCol-Trunc(ActCol/100)*100); + if Act.Change then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,15); FXWrite(' - andere Datendatei',Trunc(ActCol/100)); + GotoXY(11,15); FXWrite('C',ActCol-Trunc(ActCol/100)*100); + if Act.Init then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,15); FXWrite(' - Datendatei initiieren',Trunc(ActCol/100)); + GotoXY(41,15); FXWrite('I',ActCol-Trunc(ActCol/100)*100); + GotoXY(5,22); FXWrite('Dieses Programm wurde entwickelt von RoboCop IND. a.k.a. Markus Birth',8); + end; + +procedure InitNewDatabase; + begin + RetValue := 1; + AckBeep; + end; + +procedure ChangeDatafile; + begin + RetValue := 1; + AckBeep; + end; + +procedure ReadData(Datei: string); + begin + RetValue := 1; + AckBeep; + end; + +procedure WriteData(Datei: string); + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressNew; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressDelete; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressEdit; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressBrowse; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressSearch; + begin + RetValue := 1; + AckBeep; + end; + +procedure MainSelect; + var KeyIn: char; + begin + KeyIn := ReadKey; + if (UpCase(KeyIn)='A') AND (Act.Add) then AddressNew; + if (UpCase(KeyIn)='E') AND (Act.Edit) then AddressEdit; + if (UpCase(KeyIn)='D') AND (Act.Del) then AddressDelete; + if (UpCase(KeyIn)='V') AND (Act.View) then AddressBrowse; + if (UpCase(KeyIn)='L') AND (Act.Load) then ReadData(Defaultfile); + if (UpCase(KeyIn)='W') AND (Act.Save) then WriteData(Defaultfile); + if (UpCase(KeyIn)='C') AND (Act.Change) then ChangeDatafile; + if (UpCase(KeyIn)='I') AND (Act.Init) then InitNewDatabase; + if RetValue=0 then begin + ErrorBeep; + MainSelect; + end; + RetValue := 0; + end; + +begin + Copyright; + Delay(2000); + ProgDesc; + Delay(1000); + MainWindow; + StartInit; + MainMenu; + MainSelect; +end. \ No newline at end of file diff --git a/DATECALC.PAS b/DATECALC.PAS new file mode 100644 index 0000000..3d4d731 --- /dev/null +++ b/DATECALC.PAS @@ -0,0 +1,75 @@ +program DateCalc; + +{ Tage zw. 2 Daten ausrechnen } + +const Tage:array[1..12] of byte=(31,0,31,30,31,30,31,31,30,31,30,31); + +var d1,m1,y1,d2,m2,y2: word; + dbw: integer; + +procedure GetDate(op: string;var d,m,y: word); +var dat: string[10]; + i,oldp: integer; + co: integer; +begin + Write(op,'. Datum eingeben [tt.mm.yyyy]: '); + ReadLn(dat); + oldp := 0; + for i := 1 to Length(dat) do begin + if dat[i]='.' then begin + if oldp=0 then Val(Copy(dat,oldp+1,i-oldp-1),d,co); + if oldp<>0 then Val(Copy(dat,oldp+1,i-oldp-1),m,co); + oldp := i; + end; + end; + Val(Copy(dat,oldp+1,Length(dat)-oldp),y,co); +end; + +procedure ValCheck(d1,m1,y1,d2,m2,y2: word); +var err: boolean; +begin + err := false; + if (m1=m2) AND (y1=y2) AND (d1>d2) then err := true; + if (y1=y2) AND (m1>m2) then err := true; + if (y1>y2) then err := true; + if (m1>13) OR (m2>13) OR (m1<1) OR (m2<1) then err := true; + if (d1>31) OR (d2>31) OR (d1<1) OR (d2<1) then err := true; + if err=true then begin + WriteLn; + WriteLn('Fehler im Datum. Datum 1 ist lter als Datum 2 oder falsche Zahlen!'); + Halt; + end; +end; + +procedure CalcDays(d1,m1,y1,d2,m2,y2: word; var days: integer); +var i: integer; +begin + if (m1=m2) AND (y1=y2) then begin + days := days + (d2-d1); + Exit; + end; + days := 0; + if m1<>2 then days := days + (Tage[m1]-d1) else begin + if y1/4=y1 DIV 4 then days := days + (29-d1) else days := days + (28-d1); + end; + if (y1=y2) AND (m2-1>=m1+1) then begin + for i:=m1+1 to m2-1 do begin + if i<>2 then days := days + Tage[i] else begin + if y1/4=y1 DIV 4 then days := days + 29 else days := days + 28; + end; + end; + end; + days := days + d2; +end; + +begin + WriteLn('-=+ DateCalc +=- auf Wunsch von Anke'); + WriteLn; + GetDate('1',d1,m1,y1); + GetDate('2',d2,m2,y2); + WriteLn('Datum 1: ',d1,'.',m1,'.',y1); + WriteLn('Datum 2: ',d2,'.',m2,'.',y2); + ValCheck(d1,m1,y1,d2,m2,y2); + CalcDays(d1,m1,y1,d2,m2,y2,dbw); + WriteLn('Tage: ',dbw); +end. diff --git a/DIGICLK.PAS b/DIGICLK.PAS new file mode 100644 index 0000000..bef0a49 --- /dev/null +++ b/DIGICLK.PAS @@ -0,0 +1,109 @@ +program DigiClock; + +uses Crt, Dos, Graph, BGIP; + +const DigiData: array[0..9] of string[7]=('1110111','0010010','1011101','1011011', + '0111010','1101011','1101111','1010010', + '1111111','1111011'); + digacol: byte =14; + digdcol: byte =0; + +var xmax,ymax: word; + h,m,s,hh: word; + olds: word; + + +procedure InitVid; +var grDriver, grMode : integer; +begin + grDriver := VGA; + grMode := VGAhi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } +end; + +procedure WriteDig(pos,which,col: byte); +const sw=40; + sh=40; + sa=3; + ya=20; + xa=5; + +var ab: word; + +begin + SetColor(col); + ab := pos*Trunc(sw*1.9); + SetLineStyle(UserBitLn,$AAAA,ThickWidth); + case which of + 1: begin + MoveTo(xa+ab+sa,ya); + LineTo(xa+ab+sa+sw,ya); + end; + 2: begin + MoveTo(xa+ab,ya+sa); + LineTo(xa+ab,ya+sa+sh); + end; + 3: begin + MoveTo(xa+ab+sa+sw+sa,ya+sa); + LineTo(xa+ab+sa+sw+sa,ya+sa+sh); + end; + 4: begin + MoveTo(xa+ab+sa,ya+sa+sh+sa); + LineTo(xa+ab+sa+sw,ya+sa+sh+sa); + end; + 5: begin + MoveTo(xa+ab,ya+sa+sh+sa+sa); + LineTo(xa+ab,ya+sa+sh+sa+sa+sh); + end; + 6: begin + MoveTo(xa+ab+sa+sw+sa,ya+sa+sh+sa+sa); + Lineto(xa+ab+sa+sw+sa,ya+sa+sh+sa+sa+sh); + end; + 7: begin + MoveTo(xa+ab+sa,ya+sa+sh+sa+sa+sh+sa); + LineTo(xa+ab+sa+sw,ya+sa+sh+sa+sa+sh+sa); + end; + end; +end; + +procedure OutDig(pos,which: byte); +var digcs: string[7]; + i: integer; +begin + digcs := DigiData[which]; + for i:=1 to 7 do begin + if digcs[i]='0' then WriteDig(pos,i,digdcol) else WriteDig(pos,i,digacol); + end; +end; + +procedure OutitVid; +begin + TextMode(CO80); + WriteLn('Programm beendet.'); +end; + +begin + InitVid; + Randomize; + repeat + while olds=s do begin + GetTime(h,m,s,hh); + if keypressed then begin + ReadKey; + Halt; + end; + end; + { digacol := Random(8)+8; } + olds := s; + OutDig(0,h DIV 10); + OutDig(1,h MOD 10); + OutDig(3,m DIV 10); + OutDig(4,m MOD 10); + OutDig(6,s DIV 10); + OutDig(7,s MOD 10); + until keypressed; + ReadKey; + OutitVid; +end. diff --git a/DIGUHR.PAS b/DIGUHR.PAS new file mode 100644 index 0000000..27b99e0 --- /dev/null +++ b/DIGUHR.PAS @@ -0,0 +1,39 @@ +program DIGUHR; + +uses Crt; + +const sstd1=2; { Std1 } + sstd2=1; { Std2 } + smin1=4; { Min1 } + smin2=5; { Min2 } + ssek1=5; { Sek1 } + ssek2=3; { Sek2 } + sset: boolean=true; + +var std1,std2,ende,min1,min2,sek1,sek2: byte; + +begin + ClrScr; + repeat + for std1:=0 to 2 do begin + if std1=2 then ende:=3 else ende:=9; + for std2:=0 to ende do + for min1:=0 to 5 do + for min2:=0 to 9 do + for sek1:=0 to 5 do + for sek2:=0 to 9 do begin + GotoXY(1,1); + Write(std1,std2,':',min1,min2,'.',sek1,sek2); + if sset then begin + if (std1=sstd1) AND (std2=sstd2) AND + (min1=smin1) AND (min2=smin2) AND + (sek1=ssek1) AND (sek2=ssek2) then sset:=false; + end else Delay(1000); + if keypressed then begin + ReadKey; + Exit; + end; + end; + end; + until 0=1; +end. diff --git a/DREIE3D.PAS b/DREIE3D.PAS new file mode 100644 index 0000000..139e8bc --- /dev/null +++ b/DREIE3D.PAS @@ -0,0 +1,84 @@ +program Dreiecksberechnung_3D; {Autor: RoboCop of nOOb} + + + +{ Die Volumenberechnung ist nicht komplett!!! } + + + +uses Crt,Logo; +var AX,AY,AZ,BX,BY,BZ,CX,CY,CZ,LAB,LBC,LCA,V,MABX,MABY,MABZ,MBCX,MBCY,MBCZ,MCAX,MCAY,MCAZ,SA,SB,SC: real; + +function Mittelpunkt(P1,P2:real):real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(P1X,P1Y,P1Z,P2X,P2Y,P2Z:real):real; +begin + Laenge := Sqrt(Sqr(P2X-P1X)+Sqr(P2Y-P1Y)+Sqr(P2Z-P1Z)); +end; + +function Volumen(P1X,P1Y,P1Z,P2X,P2Y,P2Z,P3X,P3Y,P3Z:real):real; +begin + Volumen := 0.5*Abs(P1Y*(P3X-P2X)+P2Y*(P1X-P3X)+P3Y*(P2X-P1X)); +end; + +begin; + ClrScr; + TextColor(15); + WriteLn('-= 3D - DREIECKSBERECHNUNG =-'); + WriteLn; + WriteLn('Another program by'); + WriteLogo; + TextColor(7); + Write('Punkt A - X:'); + ReadLn(AX); + Write('Punkt A - Y:'); + ReadLn(AY); + Write('Punkt A - Z:'); + ReadLn(AZ); + Write('Punkt B - X:'); + ReadLn(BX); + Write('Punkt B - Y:'); + ReadLn(BY); + Write('Punkt B - Z:'); + ReadLn(BZ); + Write('Punkt C - X:'); + ReadLn(CX); + Write('Punkt C - Y:'); + ReadLn(CY); + Write('Punkt C - Z:'); + ReadLn(CZ); + MABX := Mittelpunkt(AX,BX); + MABY := Mittelpunkt(AY,BY); + MABZ := Mittelpunkt(AZ,BZ); + MBCX := Mittelpunkt(BX,CX); + MBCY := Mittelpunkt(BY,CY); + MBCZ := Mittelpunkt(BZ,CZ); + MCAX := Mittelpunkt(CX,AX); + MCAY := Mittelpunkt(CY,AY); + MCAZ := Mittelpunkt(CZ,AZ); + WriteLn('M-AB: ',MABX:0:2,'|',MABY:0:2,'|',MABZ:0:2); + WriteLn('M-BC: ',MBCX:0:2,'|',MBCY:0:2,'|',MBCZ:0:2); + WriteLn('M-CA: ',MCAX:0:2,'|',MCAY:0:2,'|',MCAZ:0:2); + LAB := Laenge(AX,AY,AZ,BX,BY,BZ); + LBC := Laenge(BX,BY,BZ,CX,CY,CZ); + LCA := Laenge(CX,CY,CZ,AX,AY,AZ); + WriteLn('Lnge AB: ',LAB:5:2,' LE'); + WriteLn('Lnge BC: ',LBC:5:2,' LE'); + WriteLn('Lnge CA: ',LCA:5:2,' LE'); + V := Volumen(AX,AY,AZ,BX,BY,BZ,CX,CY,CZ); + Write('Volumeninhalt: ',V:5:2,' VE'); + { IF F=0 THEN WriteLn(' === Die Punkte sind kollinear. DAS IST KEIN 3ECK!!') ELSE WriteLn; } + SA := Laenge(MBCX,MBCY,MBCZ,AX,AY,AZ); + SB := Laenge(MCAX,MCAY,MCAZ,BX,BY,BZ); + SC := Laenge(MABX,MABY,MABZ,CX,CY,CZ); + WriteLn('Seitenhalbierende A-MBC: ',SA:5:2,' LE'); + WriteLn('Seitenhalbierende B-MCA: ',SB:5:2,' LE'); + WriteLn('Seitenhalbierende C-MAB: ',SC:5:2,' LE'); + WriteLn; + WriteLn('Bitte Taste drcken...'); + ReadKey; + WriteLn('=== FERTIG! ==='); +end. \ No newline at end of file diff --git a/DREIECK.PAS b/DREIECK.PAS new file mode 100644 index 0000000..93a0b59 --- /dev/null +++ b/DREIECK.PAS @@ -0,0 +1,68 @@ +program Nennen_wir_es_Dreiecksberechnung; {Autor: RoboCop IND.} +uses Crt,Logo; +var AX,AY,BX,BY,CX,CY,LAB,LBC,LCA,F,MABX,MABY,MBCX,MBCY,MCAX,MCAY,SA,SB,SC: real; + +function Mittelpunkt(P1,P2:real):real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(P1X,P1Y,P2X,P2Y:real):real; +begin + Laenge := Sqrt(Sqr(P2X-P1X)+Sqr(P2Y-P1Y)); +end; + +function Flaeche(P1X,P1Y,P2X,P2Y,P3X,P3Y:real):real; +begin + Flaeche := 0.5*Abs(P1Y*(P3X-P2X)+P2Y*(P1X-P3X)+P3Y*(P2X-P1X)); +end; + +begin; + ClrScr; + TextColor(15); + WriteLn('-= DREIECKSBERECHNUNG =-'); + WriteLn; + WriteLn('2nd program by'); + WriteLogo; + TextColor(7); + Write('Punkt A - X:'); + ReadLn(AX); + Write('Punkt A - Y:'); + ReadLn(AY); + Write('Punkt B - X:'); + ReadLn(BX); + Write('Punkt B - Y:'); + ReadLn(BY); + Write('Punkt C - X:'); + ReadLn(CX); + Write('Punkt C - Y:'); + ReadLn(CY); + MABX := Mittelpunkt(AX,BX); + MABY := Mittelpunkt(AY,BY); + MBCX := Mittelpunkt(BX,CX); + MBCY := Mittelpunkt(BY,CY); + MCAX := Mittelpunkt(CX,AX); + MCAY := Mittelpunkt(CY,AY); + WriteLn('M-AB: ',MABX:2:2,'|',MABY:2:2); + WriteLn('M-BC: ',MBCX:2:2,'|',MBCY:2:2); + WriteLn('M-CA: ',MCAX:2:2,'|',MCAY:2:2); + LAB := Laenge(AX,AY,BX,BY); + LBC := Laenge(BX,BY,CX,CY); + LCA := Laenge(CX,CY,AX,AY); + WriteLn('Lnge AB: ',LAB:5:2,' LE'); + WriteLn('Lnge BC: ',LBC:5:2,' LE'); + WriteLn('Lnge CA: ',LCA:5:2,' LE'); + F := Flaeche(AX,AY,BX,BY,CX,CY); + Write('Flche: ',F:5:2,' FE'); + IF F=0 THEN WriteLn(' === Die Punkte sind kollinear. DAS IST KEIN 3ECK!!') ELSE WriteLn; + SA := Laenge(MBCX,MBCY,AX,AY); + SB := Laenge(MCAX,MCAY,BX,BY); + SC := Laenge(MABX,MABY,CX,CY); + WriteLn('Seitenhalbierende A-MBC: ',SA:5:2,' LE'); + WriteLn('Seitenhalbierende B-MCA: ',SB:5:2,' LE'); + WriteLn('Seitenhalbierende C-MAB: ',SC:5:2,' LE'); + WriteLn; + WriteLn('Bitte Taste drcken...'); + ReadKey; + WriteLn('=== FERTIG! ==='); +end. \ No newline at end of file diff --git a/DRWBRD.PAS b/DRWBRD.PAS new file mode 100644 index 0000000..964b445 --- /dev/null +++ b/DRWBRD.PAS @@ -0,0 +1,84 @@ +program BorderTest; + +uses Crt; + +var i: integer; + +procedure DrawBorder(MaxX,MaxY: integer; TCol, BCol: integer; BType: integer); + var i,j: integer; + lx,rx,oy,uy,mx,my: integer; + DrwDelay, FilDelay: integer; + Border: string[8]; + CenterPos: integer; + begin + window(1,1,80,25); + if (MaxX=0) AND (MaxY=0) AND (TCol=0) AND (BCol=0) then Exit; + if BType=1 then Border := 'ڿٳ'; + if BType=2 then Border := 'ɻȼ'; + if BType=3 then Border := 'ոԾ'; + if BType=4 then Border := 'ַӽ'; + if BType=5 then Border := ''; + if BType=6 then Border := 'ڷԼ'; + lx := 41-MaxX; oy := 13-MaxY; rx := 40+MaxX; uy := 12+MaxY; + mx := 40; my := 12; DrwDelay := 1000 div (2*MaxX); FilDelay := 1; + TextColor(TCol); TextBackground(BCol); + for i:=mx downto lx+1 do begin + GotoXY(i,oy); Write(Border[7]); + GotoXY((rx+1)-i+lx-1,oy); Write(Border[7]); + Delay(DrwDelay); + end; + GotoXY(lx,oy); Write(Border[1]); + GotoXY(rx,oy); Write(Border[2]); + Delay(DrwDelay); + for i:=oy+1 to uy-1 do begin + GotoXY(lx,i); Write(Border[5]); + GotoXY(rx,i); Write(Border[6]); + Delay(DrwDelay); + end; + GotoXY(lx,uy); Write(Border[3]); + GotoXY(rx,uy); Write(Border[4]); + Delay(DrwDelay); + for i:=lx+1 to mx do begin + GotoXY(i,uy); Write(Border[8]); + GotoXY((rx+1)-i+lx-1,uy); Write(Border[8]); + Delay(DrwDelay); + end; + for i:=lx+1 to rx-1 do begin + for j:=oy+1 to uy-1 do begin + GotoXY(i,j); Write(' '); + Delay(FilDelay); + end; + end; + CenterPos := (rx-lx) div 2; window(lx+2,oy+1,rx-2,uy-1); + end; + +procedure NameBorder(num: integer); +begin + GotoXY(1,1); + WriteLn('B'); + WriteLn('O'); + WriteLn('R'); + WriteLn('D'); + WriteLn('E'); + WriteLn('R'); + WriteLn('#'); + WriteLn(num); +end; + +begin + ClrScr; + DrawBorder(40,12,15,0,1); + NameBorder(1); + DrawBorder(35,11,14,1,2); + NameBorder(2); + DrawBorder(30,10,13,2,3); + NameBorder(3); + DrawBorder(25,9,12,3,4); + NameBorder(4); + DrawBorder(20,8,11,4,5); + NameBorder(5); + DrawBorder(15,7,10,5,6); + NameBorder(6); + Write('Jedes Fenster ist durch ein window-Befehl begrenzt. Dadurch wird ein Zerstren des Fensters durch einen Umbruch'); + WriteLn(' verhindert.'); +end. \ No newline at end of file diff --git a/FILLMEM.PAS b/FILLMEM.PAS new file mode 100644 index 0000000..ee5f575 --- /dev/null +++ b/FILLMEM.PAS @@ -0,0 +1,23 @@ +program MemTest; + +uses Crt; + +var i: longint; + +procedure FillMem(x: longint); +begin + WriteLn('FillMem [',x,'] <-'); + if x<1982 then FillMem(x+1); + WriteLn('FillMem [',x,'] ->'); +end; + +begin + ClrScr; + { i := 0; + repeat + Inc(i); + FillMem(i); + until keypressed; + ReadKey; } + FillMem(1); +end. diff --git a/FUNCTION.PAS b/FUNCTION.PAS new file mode 100644 index 0000000..fa8cce1 --- /dev/null +++ b/FUNCTION.PAS @@ -0,0 +1,137 @@ +program BGIGraph; + +uses Crt, Graph, BGIP; + +const xsize=600; { Breite des Funktionsfensters } + ysize=440; { Hhe des Funktionsfensters } + xscaledelay=0; + yscaledelay=0; + graphdelay=6; + WaitAfterInit=500; + +var xmax, ymax: integer; + xmed, ymed: integer; + xsmed, ysmed: integer; + + +procedure InitGraphic; { Initialisiert die Grafik und definiert alle wichtigen Variablen } +var BGIMode, BGIDriv: integer; +begin + BGIDriv := 9; + BGIMode := 2; + InitGraph(BGIDriv,BGIMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xsize div 2; { Mitte-X des Funktionsfensters } + ymed := ysize div 2; { Mitte-Y des Funktionsfensters } + xsmed := xmax div 2; { Mitte-X des Bildschirmes } + ysmed := ymax div 2; { Mitte-Y des Bildschirmes } + Delay(WaitAfterInit); +end; + +procedure CloseGraphic; +begin + CloseGraph; +end; + +procedure MakeScale; +var i: integer; +begin + SetTextStyle(DefaultFont, HorizDir, 1); + SetColor(14); + OutTextXY(150,10,'-=+ RoboCop''s ultimativer Funktionsplotter +=-'); + SetColor(8); + Line(xsmed-xmed,ysmed,xsmed+xmed,ysmed); + Line(xsmed,ysmed-ymed,xsmed,ysmed+ymed); + for i:=xsmed-xmed to xsmed+xmed do begin + if ((i-(xsmed-xmed))/10=Int((i-(xsmed-xmed))/10)) then begin + if ((i-(xsmed-xmed))/50=Int((i-(xsmed-xmed))/50)) then begin + SetColor(7); + Line(i,ysmed-2,i,ysmed+2); + end else begin + SetColor(8); + Line(i,ysmed-1,i,ysmed+1); + end; + end; + Delay(xscaledelay); + end; + for i:=ysmed-ymed to ysmed+ymed do begin + if ((i-(ysmed-ymed))/10=Int((i-(ysmed-ymed))/10)) then begin + if ((i-(ysmed-ymed))/50=Int((i-(ysmed-ymed))/50)) then begin + SetColor(7); + Line(xsmed-2,i,xsmed+2,i); + end else begin + SetColor(8); + Line(xsmed-1,i,xsmed+1,i); + end; + end; + Delay(yscaledelay); + end; + SetColor(15); + OutTextXY(xmed+xsmed,ysmed+10,'x'); + OutTextXY(xsmed+10,ysmed-ymed-5,'y'); +end; + +function y(x: real): real; +begin + y := x*x*x-3*x*x+2; +end; + +procedure MakeFunction; +var i: integer; + ty: integer; + fr,fpr,x: real; +begin + SetColor(9); + for i:=xsmed-xmed to xsmed+xmed do begin + x := ((i-1)-xsmed)/(xmed/10); + fpr := y(x); + if fpr>32767 then fpr := 32767; + if fpr<-32767 then fpr := -32767; + fr := fpr*(ysize div 20); + ty := ysmed-Trunc(fr); + if ty>ysmed+ymed then begin + SetColor(0); + ty := ysmed+ymed; + end else if ty32767 then fpr := 32767; + if fpr<-32767 then fpr := -32767; + fr := fpr*(ysize div 20); + ty := ysmed-Trunc(fr); + if ty>ysmed+ymed then begin + SetColor(0); + ty := ysmed+ymed; + end else if ty=u4f^)e82mRsf4UF6ql(v0^Xu0y>^RAPb2_nx7yfY*-ts)Js(vhQPpt2Ue6>Hg zGH^p(Nhxu7p5-|p2?gkyCx`O(^b9oE8;?E+yXwg<9NOA6cwp}Py{kHQpWO$xY_94W zc#&-r6uU$ICZ`Hn1okuqm&t=APIupRU0sRnWVG2egzxwLL4`kwCueL}?%3&Qv-`1o zdHnsesQ1EuFzW7IEAW=c4#%Z@5)F8x$3A_3&R~w}_F+%7#GoGdb;Yr%+uyDI{=4rnTm6P; zmKmlvHqcRdGFNoFqy#)YFNM9HvW|N7DSgG1kw+lyx$rAQ@_YVLko|vu1pv!)kBD&8-eE8k# z=Er$iDce_IIN|5VefWKcJ@DH&coutU&)I`x$H#ogF$ zs79d7&<#7p6S2gsaAwq;Iz5qV5Z$*kWIMLETi8)^P6C`{jymaf3%hBk9w%*)8tx9{ zJ=RS$9hn>u9ebs^Bh?j~*#hhc9_gmpNJ<=unP8%HVXp-a?5fP=e1Ek_w~T6V#BgFd zhmGt3&9P(M${yS-0^K*lG(N(Mxcadcr`;}_w?$dTr;Z&VGDkuXd*cJHGQ-BTv?ae; zV*zGkje&Bn@x4bHu`x+bbc9_=xJ;H8n1|=F;bZO$U<2NQoQz(Nagu|bRfv@FWCEpN zw8ST4Ftg+Cpz5Pf-?zdOx!sOYsKdZWy*)VZ&(0?iho~!jmDA)G)AAW2ZWJn_0nHd#Eg1U1HPcGP9S#|Iur)?j@rhC?F z8H;6OUBPV&<@n$RJd}ij#>71gEq2+WOEo;|2ZfE44ndgR1vInW#URb;liBLG!IMmz zA?v(u8?*IM6SveqOz-`}Z;@_1ft8fRR)Zrp3t=+KKMZ82>W=!@zG|Tx{kTgHYcxy_ z2d%c5P4?T3@N!#Nd6}?7=1{gi4R)F3K}ls7W>m)D(Gij$8>Zk~dpCOFx>$Z6TH7Xp zk(NyqgMf=9KPkM*KD4$>WJl9AED}IBC&`EuUSn)Z?FT75J$ZKPkn_e?HQ2DjuS9A4 z$>IqIV<{MV(#m@52f?OpDt5z`XW@goUGlIlHPm@)kA>~cnVC>%wu-wt$eXHH2FZmrhD}S!)0DTID;IcTB>e5{WXET zE;>y)oFCeb9TlfjXlZN$I~@PjXA|YT!5lbf0zhSxjqbM)&*!j5yE(DOOTsWHvGD~v!HRIl9+KN~2e|sSjjePfUVt4H*b;&W!elnMBfB2M`62bv-id;R@_smiof_W^?j~G#WJi68+AU#nJb@iIOE~xX=QU4!xKXRO#LYF|Pp9;}w7c(v9Cmx?BeNg3@WqvKS14Mm7SF6K_7@Si;FppR>g` za+Te|ak(Lz*EM5hncu+^+vAr7DUvvye^3DY|H0mSHa$l1J)hk&QkLbV>fY)jHo(Yw zKfSfZa(3|B-pk@EG}05iV)l&rcifgix509q*d2NkZ^JFRl^snOkm+~;%w<>3zmAyk zymL*rRW^V8rzc=rJc!e8e2LFVtw*}OC9)*Lrv~oIbH>SyY+FID7V0J&OJp_Id~ef@ z^#~=4C+JY9dkgYHwoV}~*vL$*1xZ)PAEr`0j*he8hXk-g3_?FVaUCH#E&feTwWKX= zSRl4_%!Uo%;i;HEL-S9G*elL0qi*0v!)Y;y&Iw$j@Lks|y#7Xk_#WA?1j54uGnC)P z-o|VhjdeOtZ*I{|*{Ykem25yR3ct#{$dk<(J0uH|9&O3dQxiCuzw+%LvE}Evht?tB zM+vv#_k4C(uk6a;iL_(?ik>91TZSUzCBMNF+vb5ybK1V$0$8KkRTY=tm#|kZgg1fh zRQH>{!#@_Voo;VlvfE)X(-fkSxdYsOa9CjroVw?;H?E2B;9W}$dfmjzZ^aZ|cWBWi zY!?p&7X4j(V>}}mUj|gjueybPZyv-zL>PK%?N59S!!y}jCtT8&8`qX+Y`q9O+j=Q` z^(wkCL||U&kjIhi<`d${{M0cU=Qp#?#vORz)A_}IJ2rl7uphF;lLfl{?;mKZ?G_<& zQK%bvUoHqiW89*>%`+e_*%Iz`2lN8np1p0&w$H~PRQ;4))9~f&d-QvCUn^28!mhxc z(U0h%&Xc>=Y&u<4Q!>LFg?=y5-MjdHHD+9~8`&=Z$yPBlDvpg43JAPtOiB8hVX|EJ zhivhryH)pOq*qsjeX}R>r@hJy6=8F3c#|hvE)WEyeoCM$)xFVn-$0`>Lq&D#VKXXz zP{Z<1y}c4Bp1mwiJR4|Yf?WL+HsfT8-y38N%BGa3kMjT@^Kyn2dZ=fw^5S88>4{@^ zWnSnBb1F`^E!mV8o_O{`PmE{3zFuKt+DSTQR*U)*WphG!u3M(G=)jkDvMvDZ>(rC5 b63Gj8^2|2J=jpMwmHyx1 then begin + for i:=x1 to x2 do begin + y := Trunc(((y2-y1)/(x2-x1))*(i-x1)+y1); + PutPixel(i,y,c); + end; + end else if x1>x2 then begin + for i:=x1 downto x2 do begin + y := trunc(((y2-y1)/(x2-x1))*(i-x1)+y1); + PutPixel(i,y,c); + end; + end else if y2>y1 then begin + for i:=y1 to y2 do PutPixel(x1,i,c); + end else if y1>y2 then begin + for i:=y1 downto y2 do PutPixel(x1,i,c); + end; +end; + +procedure Square(x1,y1,x2,y2: integer; c:byte); +begin + Line(x1,y1,x2,y1,c); + Line(x1,y1,x1,y2,c); + Line(x1,y2,x2,y2,c); + Line(x2,y1,x2,y2,c); +end; + +procedure Lines; +begin + InitGraph; + repeat + Line(0,0,320,200,Random(256)); + Line(320,0,0,200,Random(256)); + Line(160,0,160,200,Random(256)); + Line(0,100,320,100,Random(256)); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure RandPix; +begin + InitGraph; + repeat + PutPixel(Random(320),Random(200),Random(256)); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure FillScreen(c: byte); +var i,j: integer; +begin + InitGraph; + for i:=0 to 200 do begin + for j:=0 to 320 do begin + PutPixel(j,i,c); + if keypressed then begin + ReadKey; + CloseGraph; + Exit; + end; + end; + end; + ReadKey; + CloseGraph; +end; + +procedure WhitePix; +const MarkCol=8; +begin + InitGraph; + Line(160,98,160,80,MarkCol); + PutPixel(159,97,MarkCol); + PutPixel(161,97,MarkCol); + Line(160,102,160,120,MarkCol); + PutPixel(159,103,MarkCol); + PutPixel(161,103,MarkCol); + Line(158,100,140,100,MarkCol); + PutPixel(157,99,MarkCol); + PutPixel(157,101,MarkCol); + Line(162,100,180,100,MarkCol); + PutPixel(163,99,MarkCol); + PutPixel(163,101,MarkCol); + Square(150,90,170,110,MarkCol); + repeat + PutPixel(160,100,12); + PutPixel(160,100,10); + PutPixel(160,100,11); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure RandSquare; +var x1,y1,x2,y2,c: integer; +begin + InitGraph; + repeat + x1 := Random(320); + y1 := Random(200); + x2 := Random(320); + y2 := Random(200); + c := Random(256); + Square(x1,y1,x2,y2,c); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure ColorTable; +var i,j: integer; + tm: byte; +begin + InitGraph; + for i:=0 to 199 do begin + for j:=0 to 319 do begin + { PutPixel(j,i,Trunc(((j/20)+1)*((i/12.5)+1))); } + tm := Trunc((j/20)*(i/12.5)); + PutPixel(j,i,tm); + if keypressed then begin + ReadKey; + CloseGraph; + Exit; + end; + end; + end; + ReadKey; + CloseGraph; + ClrScr; +end; + + +{ Ellipsengleichung + + x y + -- + -- = 1 + a b } + +procedure Ellipsoid(x1,y1,x2,y2: integer; c:byte); +begin + +end; + +begin + Randomize; + + Lines; + RandPix; + FillScreen(Random(256)); + WhitePix; + RandSquare; + ColorTable; +end. \ No newline at end of file diff --git a/GRAV.OUT b/GRAV.OUT new file mode 100644 index 0000000..c24b5ca --- /dev/null +++ b/GRAV.OUT @@ -0,0 +1,185 @@ +-= RoboCop's Gravitation =- + +Log vom: 26.8.1998 / 12:40.10,12 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 999476.42930m + 60.00030s --- 998821.40197m + 80.00030s --- 997903.31339m + 100.00030s --- 996721.09900m + 120.00030s --- 995273.38423m + 140.00030s --- 993558.47481m + 160.00030s --- 991574.34799m + 180.00030s --- 989318.64189m + 200.00030s --- 986788.64287m + 220.00030s --- 983981.27079m + 240.00030s --- 980893.06198m + 260.00030s --- 977520.14959m + 280.00040s --- 973858.22214m + 300.00050s --- 969902.55212m + 320.00060s --- 965647.91573m + 340.00070s --- 961088.57601m + 360.00080s --- 956218.24549m + 380.00090s --- 951030.04370m + 400.00100s --- 945516.44900m + 420.00110s --- 939669.24377m + 440.00120s --- 933479.45189m + 460.00130s --- 926937.26752m + 480.00140s --- 920031.97344m + 500.00150s --- 912751.84731m + 520.00160s --- 905084.05379m + 540.00170s --- 897014.51968m + 560.00180s --- 888527.78904m + 580.00190s --- 879606.85415m + 600.00200s --- 870232.95741m + 620.00210s --- 860385.35794m + 640.00220s --- 850041.05484m + 660.00230s --- 839174.45704m + 680.00240s --- 827756.98675m + 700.00250s --- 815756.59932m + 720.00260s --- 803137.19715m + 740.00270s --- 789857.90761m + 760.00280s --- 775872.18446m + 780.00290s --- 761126.67690m + 800.00300s --- 745559.78856m + 820.00310s --- 729099.81558m + 840.00320s --- 711662.50319m + 860.00330s --- 693147.78194m + 880.00340s --- 673435.31940m + 900.00350s --- 652378.31521m + 920.00360s --- 629794.60818m + 940.00370s --- 605453.51800m + 960.00380s --- 579055.61594m + 980.00390s --- 550200.13543m + 1000.00400s --- 518329.30345m + 1020.00410s --- 482625.76914m + 1040.00420s --- 441803.28351m + 1060.00430s --- 393611.94057m + 1080.00440s --- 333359.35994m + 1100.00450s --- 246824.13935m + 1120.00460s --- 61331.81844m + 1140.00470s --- -55209.82198m + 1160.00480s --- 535105.10044m + 1180.00490s --- -2440783.59073m + 1200.00500s --- -6272963.42890m +Endzeit: 1201.00010 s +Endhhe: 705716.27092 m + +Mindestwert bei 1152.68540 s mit 0.96213 m. + +### Beendet: 26.8.1998 / 12:40.45,77 + + +-= RoboCop's Gravitation =- + +Log vom: 13.4.1999 / 9:45.56,54 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 9-= RoboCop's Gravitation =- + +Log vom: 24.11.2000 / 21:59.0,82 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 999476.42930m + 60.00030s --- 998821.40197m + 80.00030s --- 997903.31339m + 100.00030s --- 996721.09900m + 120.00030s --- 995273.38423m + 140.00030s --- 993558.47481m + 160.00030s --- 991574.34799m + 180.00030s --- 989318.64189m + 200.00030s --- 986788.64287m + 220.00030s --- 983981.27079m + 240.00030s --- 980893.06198m + 260.00030s --- 977520.14959m + 280.00040s --- 973858.22214m + 300.00050s --- 969902.55212m + 320.00060s --- 965647.91573m + 340.00070s --- 961088.57601m + 360.00080s --- 956218.24549m + 380.00090s --- 951030.04370m + 400.00100s --- 945516.44900m + 420.00110s --- 939669.24377m + 440.00120s --- 933479.45189m + 460.00130s --- 926937.26752m + 480.00140s --- 920031.97344m + 500.00150s --- 912751.84731m + 520.00160s --- 905084.05379m + 540.00170s --- 897014.51968m + 560.00180s --- 888527.78904m + 580.00190s --- 879606.85415m + 600.00200s --- 870232.95741m + 620.00210s --- 860385.35794m + 640.00220s --- 850041.05484m + 660.00230s --- 839174.45704m + 680.00240s --- 827756.98675m + 700.00250s --- 815756.59932m + 720.00260s --- 803137.19715m + 740.00270s --- 789857.90761m + 760.00280s --- 775872.18446m + 780.00290s --- 761126.67690m + 800.00300s --- 745559.78856m + 820.00310s --- 729099.81558m + 840.00320s --- 711662.50319m + 860.00330s --- 693147.78194m + 880.00340s --- 673435.31940m + 900.00350s --- 652378.31521m + 920.00360s --- 629794.60818m + 940.00370s --- 605453.51800m + 960.00380s --- 579055.61594m + 980.00390s --- 550200.13543m + 1000.00400s --- 518329.30345m + 1020.00410s --- 482625.76914m + 1040.00420s --- 441803.28351m + 1060.00430s --- 393611.94057m + 1080.00440s --- 333359.35994m + 1100.00450s --- 246824.13935m + 1120.00460s --- 61331.81844m + 1140.00470s --- -55209.82198m + 1160.00480s --- 535105.10044m + 1180.00490s --- -2440783.59073m + 1200.00500s --- -6272963.42890m +Endzeit: 1201.00010 s +Endhhe: 705716.27092 m + +Mindestwert bei 1152.68540 s mit 0.96213 m. + +### Beendet: 24.11.2000 / 21:59.36,30 + + diff --git a/GRAV.PAS b/GRAV.PAS new file mode 100644 index 0000000..c1554ff --- /dev/null +++ b/GRAV.PAS @@ -0,0 +1,175 @@ +{$N+} +program Gravitation; + +uses Crt,Dos; + +var act,old,tim,last: extended; + percges: extended; + steps: extended; + actstep,oldact: longint; + proz,oldproz: real; + lowt: extended; + lowh: extended; + perc: real; + h,m,s,hu: word; + d,mm,y,dof: word; + ofile: text; + + +const Hoehe=1E+06; + Gravk=6.67259E-11; + Erdm=7.35E+22; { Erde: 5.976E+24, Mond: 7.35E+22 } + Erdrad=1738000; { Erde: 6371025 , Mond: 1738000 } + Schritt=20; + IS:extended=1E-4; + Start=0; + Ende=1200; + Arg=9; + Va=11; + AnU:integer=10000; + OUT:boolean=TRUE; + +function GetHeight(tim,old: extended):extended; +begin + GetHeight:=Hoehe-((Gravk*Erdm)/(2*Sqr(Erdrad+old)))*Sqr(tim); +end; + +procedure ArgOut(desc:string;val:extended;un:string;x:integer); +begin + TextColor(Arg); + Write(desc+': '); + TextColor(Va); + Write(val:0:x); + TextColor(Arg); + WriteLn(' '+un+' '); +end; + +function LTo14(num: extended): string; +var temp: string; + i: integer; +begin + Str(num:8:5,temp); + for i:=1 to 14-Length(temp) do temp:=' '+temp; + LTo14 := temp; +end; + +procedure ShowMeThat; +var temp,temp2: string; + i: integer; +begin + GotoXY(1,6); + ArgOut('Zeit',tim,'s',5); + ArgOut('Hhe',act,'m',5); + if OUT then WriteLn(ofile,LTo14(tim),'s --- ',LTo14(act),'m'); +end; + +procedure IncStep; +begin + actstep:=actstep+1; + if (actstep>0) then proz:=(actstep/steps)*100 else proz:=0; + if proz>=oldproz+0.1 then begin + oldproz:=proz; + GotoXY(40,3); + ArgOut('Rechnung',actstep,'',0); + GotoXY(40,4); + ArgOut('Prozent',proz,'',1); + end; +end; + +procedure CheckOut; +begin + if tim>=last+Schritt then begin + last:=tim; + ShowMeThat; + end; +end; + +procedure StartCalc; +label 1; +begin +1:act:=GetHeight(tim,old); + old:=act; + IncStep; + if ((act0)) then begin + lowh:=act; + lowt:=tim; + end; + CheckOut; + if tim0 then Rewrite(ofile); + WriteLn(ofile,'-= RoboCop''s Gravitation =-'); + WriteLn(ofile,''); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,'Log vom: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,'Initialhhe : ',Hoehe:0:5,' m'); + WriteLn(ofile,'Gravitationskonstante: ',Gravk:1,' m^3*kg^-1*s^-2'); + WriteLn(ofile,'Masse Krper 1 : 1 kg'); + WriteLn(ofile,'Masse Krper 2 : ',Erdm:1,' kg'); + WriteLn(ofile,'Radius Krper 2 : ',Erdrad,' m'); + WriteLn(ofile,'Schrittweite : ',Schritt,' s'); + WriteLn(ofile,'Genauigkeit : ',IS:0:5,' s'); + WriteLn(ofile,'Anfang : ',Start,' s'); + WriteLn(ofile,'Ende : ',Ende,' s'); + WriteLn(ofile,''); + WriteLn(ofile,' Zeit --- Hhe'); + WriteLn(ofile,'########.##### --- ########.#####'); + end; +end; + +procedure Outit; +begin + GotoXY(1,9); + ArgOut('Endzeit',tim,'s',5); + ArgOut('Endhhe',act,'m',5); + if OUT then begin + WriteLn(ofile,'Endzeit: ',tim:0:5,' s'); + WriteLn(ofile,'Endhhe: ',act:0:5,' m'); + WriteLn(ofile,''); + WriteLn(ofile,'Mindestwert bei ',lowt:0:5,' s mit ',lowh:0:5,' m.'); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,''); + WriteLn(ofile,'### Beendet: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,''); + Close(ofile); + end; +end; + +begin + Init; + StartCalc; + Outit; +end. \ No newline at end of file diff --git a/GRAV/GRAV.OUT b/GRAV/GRAV.OUT new file mode 100644 index 0000000..4f10675 --- /dev/null +++ b/GRAV/GRAV.OUT @@ -0,0 +1,97 @@ +-= RoboCop's Gravitation =- + +Log vom: 16.3.1998 / 9:43.9,90 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 999476.42930m + 60.00030s --- 998821.40197m + 80.00030s --- 997903.31339m + 100.00030s --- 996721.09900m + 120.00030s --- 995273.38423m + 140.00030s --- 993558.47481m + 160.00030s --- 991574.34799m + 180.00030s --- 989318.64189m + 200.00030s --- 986788.64287m + 220.00030s --- 983981.27079m + 240.00030s --- 980893.06198m + 260.00030s --- 977520.14959m + 280.00040s --- 973858.22214m + 300.00050s --- 969902.55212m + 320.00060s --- 965647.91573m + 340.00070s --- 961088.57601m + 360.00080s --- 956218.24549m + 380.00090s --- 951030.04370m + 400.00100s --- 945516.44900m + 420.00110s --- 939669.24377m + 440.00120s --- 933479.45189m + 460.00130s --- 926937.26752m + 480.00140s --- 920031.97344m + 500.00150s --- 912751.84731m + 520.00160s --- 905084.05379m + 540.00170s --- 897014.51968m + 560.00180s --- 888527.78904m + 580.00190s --- 879606.85415m + 600.00200s --- 870232.95741m + 620.00210s --- 860385.35794m + 640.00220s --- 850041.05484m + 660.00230s --- 839174.45704m + 680.00240s --- 827756.98675m + 700.00250s --- 815756.59932m + 720.00260s --- 803137.19715m + 740.00270s --- 789857.90761m + 760.00280s --- 775872.18446m + 780.00290s --- 761126.67690m + 800.00300s --- 745559.78856m + 820.00310s --- 729099.81558m + 840.00320s --- 711662.50319m + 860.00330s --- 693147.78194m + 880.00340s --- 673435.31940m + 900.00350s --- 652378.31521m + 920.00360s --- 629794.60818m + 940.00370s --- 605453.51800m + 960.00380s --- 579055.61594m + 980.00390s --- 550200.13543m + 1000.00400s --- 518329.30345m + 1020.00410s --- 482625.76914m + 1040.00420s --- 441803.28351m + 1060.00430s --- 393611.94057m + 1080.00440s --- 333359.35994m + 1100.00450s --- 246824.13935m + 1120.00460s --- 61331.81844m + 1140.00470s --- -55209.82198m + 1160.00480s --- 535105.10044m + 1180.00490s --- -2440783.59073m + 1200.00500s --- -6272963.42890m +Endzeit: 1201.00010 s +Endhhe: 705716.27092 m + +Mindestwert bei 1152.68540 s mit 0.96213 m. + +### Beendet: 16.3.1998 / 9:44.17,40 + + +-= RoboCop's Gravitation =- + +Log vom: 1.10.1998 / 14:51.49,89 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s diff --git a/GRAV/GRAV.PAS b/GRAV/GRAV.PAS new file mode 100644 index 0000000..c1554ff --- /dev/null +++ b/GRAV/GRAV.PAS @@ -0,0 +1,175 @@ +{$N+} +program Gravitation; + +uses Crt,Dos; + +var act,old,tim,last: extended; + percges: extended; + steps: extended; + actstep,oldact: longint; + proz,oldproz: real; + lowt: extended; + lowh: extended; + perc: real; + h,m,s,hu: word; + d,mm,y,dof: word; + ofile: text; + + +const Hoehe=1E+06; + Gravk=6.67259E-11; + Erdm=7.35E+22; { Erde: 5.976E+24, Mond: 7.35E+22 } + Erdrad=1738000; { Erde: 6371025 , Mond: 1738000 } + Schritt=20; + IS:extended=1E-4; + Start=0; + Ende=1200; + Arg=9; + Va=11; + AnU:integer=10000; + OUT:boolean=TRUE; + +function GetHeight(tim,old: extended):extended; +begin + GetHeight:=Hoehe-((Gravk*Erdm)/(2*Sqr(Erdrad+old)))*Sqr(tim); +end; + +procedure ArgOut(desc:string;val:extended;un:string;x:integer); +begin + TextColor(Arg); + Write(desc+': '); + TextColor(Va); + Write(val:0:x); + TextColor(Arg); + WriteLn(' '+un+' '); +end; + +function LTo14(num: extended): string; +var temp: string; + i: integer; +begin + Str(num:8:5,temp); + for i:=1 to 14-Length(temp) do temp:=' '+temp; + LTo14 := temp; +end; + +procedure ShowMeThat; +var temp,temp2: string; + i: integer; +begin + GotoXY(1,6); + ArgOut('Zeit',tim,'s',5); + ArgOut('Hhe',act,'m',5); + if OUT then WriteLn(ofile,LTo14(tim),'s --- ',LTo14(act),'m'); +end; + +procedure IncStep; +begin + actstep:=actstep+1; + if (actstep>0) then proz:=(actstep/steps)*100 else proz:=0; + if proz>=oldproz+0.1 then begin + oldproz:=proz; + GotoXY(40,3); + ArgOut('Rechnung',actstep,'',0); + GotoXY(40,4); + ArgOut('Prozent',proz,'',1); + end; +end; + +procedure CheckOut; +begin + if tim>=last+Schritt then begin + last:=tim; + ShowMeThat; + end; +end; + +procedure StartCalc; +label 1; +begin +1:act:=GetHeight(tim,old); + old:=act; + IncStep; + if ((act0)) then begin + lowh:=act; + lowt:=tim; + end; + CheckOut; + if tim0 then Rewrite(ofile); + WriteLn(ofile,'-= RoboCop''s Gravitation =-'); + WriteLn(ofile,''); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,'Log vom: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,'Initialhhe : ',Hoehe:0:5,' m'); + WriteLn(ofile,'Gravitationskonstante: ',Gravk:1,' m^3*kg^-1*s^-2'); + WriteLn(ofile,'Masse Krper 1 : 1 kg'); + WriteLn(ofile,'Masse Krper 2 : ',Erdm:1,' kg'); + WriteLn(ofile,'Radius Krper 2 : ',Erdrad,' m'); + WriteLn(ofile,'Schrittweite : ',Schritt,' s'); + WriteLn(ofile,'Genauigkeit : ',IS:0:5,' s'); + WriteLn(ofile,'Anfang : ',Start,' s'); + WriteLn(ofile,'Ende : ',Ende,' s'); + WriteLn(ofile,''); + WriteLn(ofile,' Zeit --- Hhe'); + WriteLn(ofile,'########.##### --- ########.#####'); + end; +end; + +procedure Outit; +begin + GotoXY(1,9); + ArgOut('Endzeit',tim,'s',5); + ArgOut('Endhhe',act,'m',5); + if OUT then begin + WriteLn(ofile,'Endzeit: ',tim:0:5,' s'); + WriteLn(ofile,'Endhhe: ',act:0:5,' m'); + WriteLn(ofile,''); + WriteLn(ofile,'Mindestwert bei ',lowt:0:5,' s mit ',lowh:0:5,' m.'); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,''); + WriteLn(ofile,'### Beendet: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,''); + Close(ofile); + end; +end; + +begin + Init; + StartCalc; + Outit; +end. \ No newline at end of file diff --git a/GZPRO.PAS b/GZPRO.PAS new file mode 100644 index 0000000..8709ffe --- /dev/null +++ b/GZPRO.PAS @@ -0,0 +1,23 @@ +program GZ_PRO_Reader; { Gebhrenzhler-Auslese-Software } +uses Crt; +var P: string; + Po: file; + TempVar: string; + +begin + ClrScr; + P := 'COM2'; + TextColor(Yellow); + TextBackground(Blue); + Write('GZ-PRO Lesesoftware'); + TextColor(White); + WriteLn(' (C)1997 by RoboCop IND.'); + TextBackground(Black); + TextColor(LightGray); + WriteLn('Port: '+P); + Assign(Po, P); + Reset(Po); + while not Eof(Po) do Read(P, TempVar); + Close(Po); + WriteLn(TempVar); +end. \ No newline at end of file diff --git a/HACKING/CC.PAS b/HACKING/CC.PAS new file mode 100644 index 0000000..228aab0 --- /dev/null +++ b/HACKING/CC.PAS @@ -0,0 +1,130 @@ +program CCMast; + +uses Crt, DOS; + +var c: record + len: integer; + str: string; + dig: array[1..16] of byte; + chk: integer; + typ: string; + val: string; + end; + +procedure InputCC; +begin + Write('Enter CC#: '); + ReadLn(c.str); +end; + +procedure CheckType(nam,pres,lens: string); +var clen: string; + i,oldidx: integer; + prechk, lenchk: boolean; +begin + oldidx := 1; + prechk := false; + for i:=1 to Length(pres) do begin + if pres[i]=',' then begin + if Copy(pres,oldidx,i-oldidx)=Copy(c.str,1,i-oldidx) then prechk := true; + oldidx := i+1; + end; + end; + oldidx := 1; + lenchk := false; + Str(c.len,clen); + for i:=1 to Length(lens) do begin + if lens[i]=',' then begin + if Copy(lens,oldidx,i-oldidx)=Copy(clen,1,i-oldidx) then lenchk := true; + oldidx := i+1; + end; + end; + { WriteLn(nam:16,' -prechk: ',prechk:5,' -lenchk: ',lenchk:5); } + if prechk AND lenchk then c.typ := nam; +end; + +procedure CheckCC; +var i,a,co: integer; +begin + c.len := Length(c.str); + for i:=1 to c.len do begin + Val(c.str[i],c.dig[i],co); + end; + c.chk := 0; + for i:=c.len downto 1 do begin + if (c.len-i) MOD 2=0 then a:=c.dig[i] else a:=c.dig[i]*2; + if a>9 then a := a-9; + { WriteLn(i:2,': [',c[i],']: ',a:2); } + c.chk := c.chk + a; + end; + + c.typ := 'unknown'; + CheckType('MasterCard', '51,52,53,54,55,', '16,'); + CheckType('VISA', '4,', '13,16,'); + CheckType('American Express', '34,37,', '15,'); + CheckType('Diner''s Club', '30,36,38,', '14,'); + CheckType('Discover', '6011,', '16,'); + CheckType('enRoute', '2014,2149,', '15,'); + CheckType('JCB','3088,3096,3112,3158,3337,3528,','16,'); + + WriteLn('Type: ', c.typ); + Write('Checksum: ', c.chk); + if (c.chk MOD 10=0) AND (c.len>12) AND (c.len<17) then c.val:='VALID' else c.val:='INVALID'; + WriteLn(' ',c.val); +end; + +function Checksum(x: string): integer; +var ch, i, co, j: integer; +begin + ch := 0; + for i:=1 to Length(x) do begin + val(x[i],j,co); + if (Length(x)-i) MOD 2<>0 then j:=j*2; + if j>9 then j := j - 9; + ch := ch + j; + end; + Checksum := ch; +end; + +function Valid(x: string): boolean; +begin + if Checksum(x) MOD 10=0 then Valid := true else Valid := false; +end; + +procedure Interpolate; +var f: text; + i: integer; + n,o: string; +begin + Assign(f,'CC.out'); + {$I-} + Append(f); + if IOResult<>0 then Rewrite(f); + {$I+} + WriteLn(f,'---- ---- ---- ----'); + Write(f,'New Interpolation from ',c.typ,' card '); + for i:=1 to c.len do begin + Write(f,c.dig[i]:1); + if (i MOD 4 = 0) AND (i<>16) then Write(f,' '); + end; + WriteLn(f,' (Checksum: ',c.chk,' [',c.val,'])'); + WriteLn(f,''); + for i:=0 to 9999 do begin + n := Copy(c.str,1,c.len-4); + if i<1000 then n := n + '0'; + if i<100 then n := n + '0'; + if i<10 then n := n + '0'; + Str(i:0,o); + n := n + o; + if (Valid(n)) AND (n<>c.str) then + WriteLn(f, Copy(n,1,4),' ',Copy(n,5,4),' ',Copy(n,9,4),' ',Copy(n,13,Length(n)-12),' [',Checksum(n),']'); + end; + Close(f); +end; + + +begin + InputCC; + CheckCC; + Interpolate; +end. diff --git a/HACKING/DECODE.PAS b/HACKING/DECODE.PAS new file mode 100644 index 0000000..cbce4ec --- /dev/null +++ b/HACKING/DECODE.PAS @@ -0,0 +1,124 @@ +program DecodeSubraum; + +uses Logo, Crt, VFx, Numbers; + +var KeyF,DecF: text; + + +procedure Init; +begin + ClrScr; + CursorOff; + TextColor(14); + WriteCLn('-= Subraum Decoder =-'); + WriteLn; + TextColor(8); + WriteLn('Decodiert KEYFILES vom Programm HRECORD.EXE.'); + WriteLn; + TextColor(7); + window(1,5,80,25); +end; + +procedure OpenInOut(InFile,OutFile: string); +begin + WStat('ffne '+InFile+' fr Eingabeoperationen'); + Assign(KeyF,InFile); + {$I-} + Reset(KeyF); + if IOResult<>0 then begin + Wcheck('%%140#FAIL'); + CWriteLn('%%12#FEHLER!! Datei "'+InFile+'" konnte nicht geffnet werden.'); + Halt; + end; + {$I+} + Wcheck('%%10# OK '); + + WStat('ffne '+OutFile+' fr Ausgabeoperationen'); + Assign(DecF,OutFile); + {$I-} + Rewrite(DecF); + if IOResult<>0 then begin + Wcheck('%%140#FAIL'); + CWriteLn('%%10#FEHLER!! Datei "'+OutFile+'" konnte nicht geffnet werden.'); + Halt; + end; + {$I+} + Wcheck('%%10# OK '); +end; + +procedure Decode; +var tmp: string; + key: byte; + dat: string; +begin + WStat('Decodierung'); + dat := ''; + while NOT Eof(KeyF) do begin + ReadLn(KeyF,tmp); + if Copy(tmp,1,3)='KEY' then begin + key := Hex2Dec(Copy(tmp,9,2)); + case key of + 008: dat := Copy(dat,1,Length(dat)-1); + 013: begin WriteLn(DecF,dat); dat := ''; end; + else + dat:=dat+Chr(key); + end; + end; + end; + + Wcheck('%%10# OK '); +end; + +procedure CloseInOut; +begin + WStat('Schliee Eingabedatei'); + Close(KeyF); + Wcheck('%%10# OK '); + WStat('Schliee Ausgabedatei'); + Close(DecF); + Wcheck('%%10# OK '); +end; + +procedure OutIt; +begin + WriteLn; + window(1,1,80,25); + GotoXY(1,24); + WriteLn('Programm beendet.'); + CursorOn; +end; + +begin + Init; + if ((ParamStr(1)='/?') OR (ParamStr(1)='-?') OR (ParamStr(1)='?') OR ((ParamStr(1)='') AND (ParamStr(2)=''))) then begin + WriteLogo; + TextColor(14); + WriteCLn('+ + + Taste drcken + + +'); + ReadKey; + GotoXY(1,WhereY-1); + Write(Space(80)); + GotoXY(1,WhereY-1); + TextColor(7); + WriteLn('Die DAT-Dateien sind nach folgendem Schema aufgebaut:'); + WriteLn('Die erste Zeile ist eine Leerzeile, in der 2. Zeile steht die Gesamtzahl der'); + WriteLn('enthaltenen Zeichen. Danach folgen die einzelnen Zeichen in folgender Form:'); + WriteLn; + WriteLn('KEY: xx yy zz aa'); + WriteLn('(xx,yy,zz und aa sind Hexadezimalwerte)'); + WriteLn; + WriteLn('xx ist dabei der SCANCODE des eingelesenen Zeichens, yy der quivalente'); + WriteLn('ASCII-Code und zz ein STATUS-Code. aa hat scheinbar keine Bedeutung.'); + WriteLn; + WriteLn('Dieses Programm wandelt die ASCII-Codes wieder in ASCII-Zeichen um und'); + WriteLn('erstellt eine Datei mit dem "dechiffrierten" Text.'); + WriteLn; + WriteLn('Syntax: ',ParamStr(0),' '); + WriteLn; + OutIt; + Halt; + end; + OpenInOut(ParamStr(1),ParamStr(2)); + Decode; + CloseInOut; + OutIt; +end. \ No newline at end of file diff --git a/HACKING/EXECTEST.PAS b/HACKING/EXECTEST.PAS new file mode 100644 index 0000000..5df54a0 --- /dev/null +++ b/HACKING/EXECTEST.PAS @@ -0,0 +1,13 @@ +{ $M $4000,0,0 } + +program ExecTest; + +uses Dos; + +begin + SwapVectors; + Exec('c:\command.com',''); + SwapVectors; + if DosError<>0 then WriteLn('Dos-Error: ',DosError); + WriteLn('Exitcode: ',DosExitCode); +end. \ No newline at end of file diff --git a/HACKING/HACKING.OVL b/HACKING/HACKING.OVL new file mode 100644 index 0000000000000000000000000000000000000000..8c1bd8def6910ec1f49650b71069779c1d52ca12 GIT binary patch literal 21088 zcmYIPWmJ^U+n(*-1(wdGLAo31?oL4jK}B6ax|Z%x6a@=%#1eX7N!n{ z6#dK8U}=h+nwqSXnmonE+*#MokYal2j5I|zFpy$*&OhKv2*u7X#4k9^&lh!E^8cS& zQ--=?Ed&4>NGJ&AdV{HBhjj6GQLHXsq4-_89O@rHx#)NCa&V+j)_%g08O+()?)?k! z@eVZW@WAv6>cur!^Rv0lG_PMr$?y4%?-G0$^WG^AcBCF2;-L?;D;XHFSHl3y*AILu zsb3)S&vP6?Tm?=q-ruJethl;zmX{+IUI?;&8B*W4wdR12Z8Ms*>TKeBl{+pZ*=EXr zZFr=}%Z|mJ=A3_h%whIfy0_TFPeM9Y^hC%x&wwj5RwQ@#%_%Jy0d*E(P4iTfs@ zXnX_eq;u``MMgOPhYXp##OM=g_jXiJh;6E3w3@sJ?aiuF-5+#M2XBHSl{baOfcIv# z(@owL$Cohzj^8%Q^Tl*sYAZfuvG^!4*?Ip>OAS9d6WSb7oIQD&A3Yv{${Ndt*Y0u* z`U_M#I7?ioJBwW9+yA=M8=9a>gup5Q$F_bZEdo{~p^?1etcL5@BoKIHoEe@d?+ zeg`yv)b@IGYxo5JL(P+U@5tM;`_S8SI_KO`@B%(;UwfN z3Pxbok&)TPWMuLg=dISYSbjg(YCv?b@@bN9fZc%g>i8y{fyk>DTJRoOWKlSs6WGHgyt+@PKoF>dO>oK zj6_R*S+tTQNq#}L)N@{`28J|*u)zRggq`*?$z)q{B**Yj6VrGyP9|MLJV>}+m0iByWdfbq z32VC|dk^ZGWWH(&VZ)!;IxULhi4c!h&eMCTsU)mKkiib(5pd?vy3ib!GY#c`rZ6F? zt~c*rsoCAMwyZ!JaHH1aAYMzHHQuj(Wz%^g$Ns1qAy;IEjn%r z$0$z>S*~TX;HxjpNy~Et>OHrk5pq?L;FaA88K(p%^aw-nJm;lJXM^l~g|nYJ%pdM6 zAeO1G$TbtLYRNmhK~&Y$Ad)&i(!)sGX#!uu18}6-k zntGlBg`sR2t%(fdN`l1pa55SOVe<^`p%}gNM(||AeaOlhzQCOrlC3r!-g(P{YbP2@ z6(kEC@IArXeB`%&InIJTZ-<6A+M(kybRtqG4~YE5YqIwYEBYZ9mr+U|BA-o;pe_&> zPzCfT)It+XsP+a-s}EzHYYY?q(AJ}%uhS!N{e2#tgCXT$;uY^9S~Nl7ULZU&PGy(v zfuMM`Oh+wnXaEnQ#g-C63-fZMBZUs?Iy zsIz>Bvihu^2pL2Upo-=o5NH9Mj$8(+2;{~A9xF~<#j!`_i|8ucPu1%Cu?0z=hYy_O z<}RS+R3w|CQY_a^y`Z)5gpqVkt#awtTMhS+*CCWYvry!JnTQ-pmoIXC4S4qfOQX?sHo&n~v z4;xM27>r{6h&C-u=&tYuCs4V}&n%EGCYy(fb6W}^r3jbiN(BGKK<_}mZKrJShruQr zmNd-T%#`C*FQ&x*6uSGp|8$3vj}0JoFi73xSgd6wdShVC4~QWKf+;Z(Fk@n@3KJ*X zo(+ZqAFe_8xY7~(?f4Kpi+Ec!iwGTx#bFzY0AEf%98Y~ga2>JdPiX;h<&1h#aNX#R zQG(p$WAPezo<>_CsR>h`yH>vm=E3S`% z9SAYqX`)JUd*FoJ1_6S?JVy=2KPu zjfj>UXj2uhM#!WVkN($pN$d)@S8_(}Ex3aqK}mNi`o=khD@Ogt)=a7yWLwAv$~v}z z;<}ypaDNHsInIkE{8}HNN-94-v6M}e`m86{(fhon^BkMM4)bOgTdF$G`)(^qUbVZh zz^IIHe* zF|bObCrtphvV`69H!4Ty!jF6zhiBPlL*OvJX}1bW8&5#*r@K|pilxnKtFj=J9F*Ua?cc;oi#ZTT z=sWb^ad_2`QdElClc`hA&(jz6wLP_I@e!Sf*CN&GF^AiCSd;^$u5GAV^+?V+bL(&u z6I&Qs*=$Bm#4q366lQE-+2-p@&^|fxjznw}wAK((r@o)riuCnu zV^m}~ccLt#b8zqCD~W_?2=PslXoc(tet9)t@CbseAaj_B!V0bG5mt#Be!s^WL`UhT z*JKyA@QHXMA%zkj5|UbN3)6U2u?ua2C7ZdH~gBCW>it%6oyzhJGfqMKJ$ zS&Ta{dNR&Ts&a{IOU`@fEX0lv-A5c&5m(DE72lU=^Bxc{Ao;V zb0i$@5@N}qua{s!y(J9iU}y1kgZV07isXAWB<%CSc)NOs&+_GhDlkbo^but&Yo$bu0GvwPgE+{t}P zN2o|?PToibE?(%_Oue*TOnNP zC^9(0Gee)J@7S+A&8N&ihmLnNB}MG_CQEXOmK#?QH6$+w6lX~9@>VnzuPPEMDc zuR0VB$DUxY$s8AL(jVvMdNqy3+hb=Y6T{J{rCVHA6XHxoqxX?|N8-QCKR7Hg5tp8W zjJ*s)GVz8VCXd^bDBATv$iRl#5n8~X8v^5vw=U<%NmpRi!0a=p8)CkrBR5#O>7!@% z-lb>8dq9|)S}U{KzZCOQl%#Qp2wv#XsP_J1ILa!$j2jiji&B7T2)%TKiB@dQ^y!Ew z@0g+p@tjHfM9+H{IbliRTO$h>#G2H0gu1*uPpDgRY-_w5sH)R>fRmZ; z0!-XM-8;9FXYCdJ4J?0$sqo!eFSw6H4{9Y?%1A|?q~X0-x-80_P%0%tb<(TVj!*Q^ z=#JY6K}2X@6oWZ*c=ndhaN(zIX^u|R(Ww~9J6sM2W*XXvS^7sxFPg6^cX-H5&I+tz zD}TT^6@>mlfl&1d*riWCK9>nYAgK+o(OkYp$9x?T(Gl=%urZ;?by-5iLg1IGqeQ2$ zwG_YJoGA|bHbJ%Wi(1QS@A~(LJI=UdoHVPz32BZ9)w8fzFC}iJX2a|?!lkJl&b150 z(~0E$37endg0td>0;%ew2K#HyXafTxF+L1VR$)h9$hQ7^i4b}iH38c>8N{kuyNZj(d_0U``n17Rb6S;RCg%3yoY*x7Jz}lQcZuz@a z3?yVX8j_$Q*`jkT{7SqBWByr&%~-^a?EDALO%({<;lP_z(2muQT<8%BC(l$UHXntb zmw&MR)~#z>9~m)Ty1`nAoV`dhBRIT#`gY7!#uGh!>I=pr;2(+b_(KieuNsd|I>~=o z?<_)iOvk8#w%Rwko)B;omljpHN7RG;I>v)nI82y8W$>8>JuS^SYPsvJRL z%?#TT3nt2lMaK%t$npCuu=``d^BtAAU3~+Kh}ug(vZSL(_a4zK#W zLD#XI$Ou;9@6ezB!OMjU(~q~UVyN&>H)D2~^e0)7_Q4F^@gMr{p4YUJGi&em1Sz@a zu#PBD67W#xzK*sWMm?;vO_+k2Pai9O*?nFJ* zzY=($9+~J(La!@7N<7{AwhmL_kO5I{F|E;iIYP2y_zner-4t%)k6Y@^7ID zbf#N0@^KrkugOK=5bk?bK&>lqx+%k6(7Dvm^FV|5EiwnNcQCI!q;h=*prmF zAeZD%y94q^4t*XnBpLOD1TG~`~(pRLoVIRA{1)be)ZgPJ+qe&Ow6i5OuDzf-Ln!8UJ%Z?a+)bBmlp3JP5Q?+mZvS@Ez=G+v)L0(3%}VN=s4 zFuJ`FwZ9_L@6MIhmv96_2rO=d>EknY=ts=^6{^;%ZnNR#vjJ|6l17n$uSHLg(Qtys zeby>V5&utzRtjIqT_eS}LP7+$y%^u0n)ZQ=Z|XsNx97nOMpe8RcRfoeYNBiJIt?PG z8V*hWjBAxctdD2CQSG(uf+W}OqEjtQwP?%|;MoDPrgu$^m_X1snhTH&nNBr>KK7U^ z!A@JSBg;oiPULCb)(aH^W&-dl)fb>i21_b2 zg|MmZg_E?twP$MJgBUn(=&nY5SAK9-f*^Gw2n|H|3M6)Z>_8LFLD;HCPIXC2BJe@D zoP0?Yv50X_$`4>?W5)@<^3H;GyV)I1y8;6sy>n3}cOaH+PigvLINJ%l>;%3AlQ5XH zZykhY0Lm;n^IKCSYyIi5Q^KeMKTannb3C23POs?%2iU~*bftc$dE!3skb+8g@a`rg zORhrRu+!{8HImv4kk`(L8~}bfD|JUGDp5r+Sj-CI6qIvoMIwHE6loUV<)o!Z_j0w78qwRv$2-cAXk0BkjIb%he>|O;S5l7mgZhrSZUGExF`# z3^tF^i1syn)l~Uc(RCe)?qMQ#m?vj^AJXI}xPxnz>J=TxY(xpQWs^C1JvXFyK`-?V zF=;w`aMGH##|Svi;3nis^$xmm*xkfRn6xNf+$Q4(!0UETkxqW6^{US%`9R))Bu0aj zp3RHjX4p|%eouE%fFX3kK63`{xd{C^w+iIyhyNXxrnMJ4HZ88F`0ZH|WKwaw;3aFxeEM-HcKK{rO_ZHm7srgiZvf=c#8HRITc zC}4vt?R0@(pCZ(9vQuTnl{rUcXtIV=D?&hc4r`OU`BEDVvVAcvLW}zjUq2$Q`_8Q6 z$^O9-<$u?=BPHrAV@#56rkA{zdcXaX0n264vXNWJq27S*OZ zy~4x7lc2Fakmc=rHi~c3=*)z}JR8VAbF3Y>kEOC!pF=e;iqR(KeCj(OwWm4sS5AH_ zSj{ljgK=isnZdr()t9GUkP|ziWsQDDzfaZciz5jZRHjbQ{!VY?Dmc2MHW?eHp#}Rz zyD$Wq-B;eyiZHjItSu7=ps$*p*c5xqQNQTB%hm-Oq^JyCV~0xKtM7ecktP|bD>~Yi zDG2KqQ}Z5&KQx5!)FxeY9WXK?( z23PE;f-1; zt>-tsA$sS2!9Z|o!B}bbueei-i?j0}6|#*|vl+!AVy|oS0ohdF*MfLL`@ka9OcXlK zNm9HFSQvly<`fYD{{U1L{1TpuH?_|m3yG>sJV;~s_crErTHlI81x?o>EF(2Ju~IOM zb>rWi`%$S+Q}f?&ET@kXi&)tUD-;5#9tw($j zunVuccVOL1oQO(Ap~~SC+Xurs2`>_U1=J+8K7l4wL6g!G#AQhl8g#S7ZT#DQM`<)3 zG5YWAZ}1nWorD62TH1=8M{?}8)J7O0=?E=R2#MwFX#?J5HRiV}Un5~fl5LwM4R{Ww zd-qTdNmGgYGnlnUBOSMjTb~rVTV4jAonSenfHO_A^ zMsh(TN&ROdBhE#r-a~O}ylAz0Rb`ZA>LJ0q$l|tJ?{=cT{6iW3pGQVp0V2nRV}X zwLAXS-|sv{wlKw-hoc=Sk5^I zXNSOL^7^B{(R_e9DF|*bdmDHy;Pq(-RvwVEcoXAYt{{f0i%Yu5h+3*c?NzixNG<$i zZ4v-U+gH|8InTh$FI^r^|9WDp#hT6P%RGsW9Dcy-v^-+S>(1oYcok^yP&fABm4>CS zQ4K8e^f%frOC1m|WMJ!@gadwcQ}g;|mDbo>^EdQ9_A)+((6STQ>@Y1MP`h8#oB$dZ ztI<}09FqH~AjS6C3pJPeBMSwIM3B~b(zgtYQ;JP|>#LO+@C=fK*uP&%E}ieyK$wZF z;BwkAFXW3^Kpdq1OlkX2m!C2h!^=h9gs^7s6oIO3GbP1`^~vRpO@Lny#}4@i|P^uI8D*DeyXv9P^lTx}5Jue+s^1h7*?qAwDY)juKoYx7#8(2ixz2!G9Y{$)Sj;BIc|Gk{Id!TzyznCqVHkFA-w@DZSa460 zotybsFTC^fH9V9fAdf1ivxs{E(zscA_;iAW%t6y+OjZlr`u@E?1suM?9qcI`<+mV0rwJcmFq#*NPRP{pfLmYw|8ub(%0Rbf|MIg)`tg`5#+; zmmdiJ$DGtzH7^uagIH*C!$VqiBVlwvB-ZlJou@P31``v6sMm(NIq%?X6W>=R-7FA<$SJPL(z*SlX~EQ!z}C z5D7Bzd=Mh@rH6}l1($TRAhxG6`w^{zm+gvYO-u_?l#Amz#qT`#3hCY)3InP%BDTkP zfq0$v8P=Vr!2AOv^{~a&w4QeG>Vlim5M51{Pgrx5odW$z3WM-QX(nfhkw*)y{ z`qO^>NLkv`tWuwW2c)88g#lK_ZN^+w;#~ZBY-G3-*)d^7&sUa)Tg^2zVH}7Y=7>DvD zUS|kH5YUr|J}-V94o&(J!Fpsn!MM`RelHX|kRTC++EbhrNfuA^#8FS_-At!sAh~$2 zZp~Il-(}(CvtJOYK#s6F88V9Axt^*z@!CERHK?YuZ~crh3j_@HFa7?5X{QtX_I3`_ z_HNu{!)|(eZ{q*O16e^TBpj;B?k5^a(l@y8RQ9(p2IXZW;n{_wTQhilvy$+FLxCq+ zzS9#Y8cepuBaz@K6205E|19UXE5Gf;aTP-=q%ScNy7V zxa{9|M@DTDH-srI{)E<`%LdsWvO^Zh6I+06L-tY^rHX2M(z<-{7L(JeEhc=pZ7w_+ z^L6x3cH0!=cluN?A_&yWAP1R52&>jab%R!|yQq7Q!lP zdP{I3r>QI+35;?33{d$@Exl}e`>(2ROCKeS*3YU{)+~C>EtEjt#@~1n941vq-x_B7 z!RE*2k>wV4BI5GXVWDNUaj!xIcVdFjgP|^kyyCeE!Yxog5NndXn%!hbIWWkq zJ-IkM{U$a@g6LtnC-#u(ITf?qO@JM$JL=4t03|gP_22|9n#U7v0?_Yp>kr)A+`{0m z5|!s!=zo6L6QJZCU&@$`AeipPJyPzD=QO<+g1yFGvYdD{zfj=rdD&6ieg|>gC}3aq zZps$;?DHrUdU|?6M$%y}luX+CFKSuz`gI$nQ4^74K*Bz07U#kVj} zz1XkGt*DuFdEl@zpV;n^qX*42!~ife&gPV2ydDdIA4z{P&w{rCjZI8q=*7m2;k_ms z_MgT(rX=q~}6nQ!JgIEZb`M=K~E49B20s&=-!f_E%%peaWcKd z07nt^AQnK64apy2kj!q1+3SIA@8%HZN35N?c(b8FI8#V_td8=3u_Rfqolpga6X;Wk zzY^7FgoOR@Z`p-#cYMelDLCo29KA2f{al_d)UGEKZp1~Zi|S3}QLFs`(Lvc=#jKXA zA$xP}#lCRSw?)~JJ@$NuZQJg(fvhk5DU)*kX1%-p&;uXz^KmFp2#*z0#%dAc_mQ&5 zFbVQ=MB9J2_LP&&A)jzUcK2fFk6l0eEmo-o5E!q${4KX>L;tWcglY#gyC}lW%S8Ph zsR_cfP!RE3t^h)$n;Y0T-s+tqo|bk!vX)xnQ-cpzsoj&&aI zSae!R4a9t3!>nqe0P17*Bv(QVZ#O|BjswEkOH5(wp>f^oN(#nqJ$QI=o7RnlxIkK8 z=R>}e1k+CeQE;Y+X@UbQ)g1$fE(FRN(H@#$&JoQ5o4m+_AUUzQ^PRtm#`Pv9{Fzu{ z@?>#!OPCE?p8)%|t_Y@gZ(tbLYos?L^<;ROc`5x+C-j|Sdjwkc@9g7tQq{+BYLM1rYIin%GAVoS^4H`r`K!N;LY#ORY?7Jc{H;@&rn?20?_273lyU*F7+cxUIGJnp2!R*&E1h2cHZaDI*To615wnWhZjV$qgP#J{X7Ys#Qaw5#tDc3$A~ zI~T*2!lkAuC`0gwoamMyXhjiBo%7uH=dR7}p>H#Yl9L*BKCtRd1u<6F(Q&~ zgP}_yv$&Wb%v7(@$A1=i;Vr(Jn!Hbi8}6mUhD1=$GvHDv7z>8$LOs#7ig2-wZZ);6 za}+r*o95o@D^tmre@l9;rJ({jzD1zbpAVvw-PbjL-5g=(6JK9=IXl2!Os-lN6TFSN z#Ziy-TKYw2Cb)4kb80zn0@a;LEG&%&kJ@5HBVTP%Sx(~RA8#>#f60No_mcz05r?QE zd)HoE`#0sxvvgNrh@1WIe%sd|=DEeTL2UHUojZir_hlc>tEFk5o5k%wOx4)Q*!e$LRm-=m~@ zvh1EFGb^lwq82)a3nxmhz}55mlPu*V!&&AE55qrcrgcAjMP^IpRQQ!M`VcFY9F2$r zlSuw$JxN>`Qbd#0qjYA==FS@5lo-s!iV1Gd_rSk8lGn&rltdmdJ^xQ(1E;1Cpu*T`=uKC7y$jjU>wr@Q-3 z#Nxvip5uAD9y^zP_*%uPlZRza=j5hno;0V-L}9+JI5RYd2z<%wx+W`71D9$k6WMLr zt3Jms^BD^du;85d1>8iGJvN^+Ny62IQeq}jNWO7#n^k!aIQ5}Vbv$1cJIytZ56zXc zm3Cv}oWmk4G!H*ABr^QHEycm`gyDgz3WKbR<$4gInE)9c;F00UU=V@hTDffDV-Mj^ z$BvhhdZ9;Z9ogArB0x**ozRml<}%j=4oY%a~{~!|BeQ8t{~x zKDM|ZkMCABz?)Atz|_*CHoB~5tD%%=Y?|YA;wLsl^637ENQ%|chf4o#=l1b^qac1| zSZp8lz>Q(dvZLrI0>>iyzKW&X&H%j78KB*F5FFNrLTj&5W(sBcFm&TqKJ6jo$erB%gD;0N=PN2V3ypi z%5kVs1DX?;Mrh|P)B2d68fJB~+%$ihrFV~lqj=PQO<1eDARs}6_xxS-^6_VrgnO*% z&1KLr+`ULElUB2Yfs|UEej?_u6zfs1me;obQFn7_{$PnM`*4+e8%|+UktK{x?kpi! zVchrD-_KDbx##d$SQ}4bO!w@l?c*WCYQrUBKbrkKdsjz1*#c0B>3A;>^zw|!5b+g% z4KHF9-YLzJ0n#_q+pX482W<)M!Ru$kX89v`;r|e8B0{KjwYE!q{@e~FJ(LiQwlo-P z)web*cX^=4Fy?JMN?*-Zs1RO`Pv&x3nz#p0x|Xp-H_ za-I#MZu}XZ9N5~gX+-f#lvU4-p4o#k`9Ezse~+kh5^Ah(qu$+J{r%&7plG?Kf88aO z2BNLL2|0zR5d5|VSEuB3#}$vdNbFUaQD8MY5S+dCU1B%d~u&MZ@C(Cg)31<}rb zPCt3Jf`2aAr!eXKKsKvwJ-J$ji79@Cpe?Wnbyq&Ddin&`%553(^yzE3i&fOy+lAyj zXT>-kbU>ELW&tt1}6$cdQavq-T zp#{-g_9Kn$i&K&F$LBZDjZkZ{6tQI%N`;Q&J-s&f53&P4o?7w3EzdY<0@@{fZl``2 z+$KkNifznUcM%$Vww4|tg4hn0f+#GkjQmsAHK6C*-kNL~u~ER>$%1-&C{=VODhaC1 zbP?R)b^&jF9d2AY_3`;1D~T)4n`Sn5@+cf$wJ#1#*KDT@79r>KvjOML%Vv;2SI$A8 zR{eBfMHmhusi6Qh4ib%1;fX@Uuo{6wf^M8wElE*)qait$TI9VtC0XgYk2@lzC zslf3! z9jDIj$q~h*$Q8pUS?S8MlpFNcHa?}IWRdGx=-uJFJ?~S6zx*WR&OAC-1Eam4mX&&k zjnhQk5DHA-`jU7=o?9EW9TS>lB0SctO?|)Nvt1Nn83&UmsB@2?R=0M(uuV9b~;PU zLNDI4?VpTIpYsOAgUP#pr=f}@Wk-nhl}rAc_il7!z)uaAH8So^a&^tNaM-t`pUP4| z^H(%T+Y+Lwya(W5;i&Xpi7|D4&()=;GJ{0`FVL@_)R{AGExUzO5lr`2y?gs3*y>DX zZ!h**f8XL-&E7u_K}KB8bw$ceLWRIU_TSgg#N03I^zV%6D^N5Y*N5nX8JQr7+x7TA z<47b-fF*Bm8QGKe(=gVs;J^zs{%KG7!E{sYPmz}sW$)0gMo7Owf?7)c-714+oTuye#bipN;=TH(HngQph|YEGF!{-?@a-Oqxmx3PK1? z6+r+~b+Ps`mC*OUaM|$kCH@~kj}nPG6Lvc2imzGS6==1P=*mADCVqTLJ>0%bnZ-0)5p2=8N@niIcAYD8Zx;YCp6ydie2K=I*am9{?WZ zR%F&cgq0RxFLW0ty>2}gtDpU;JMXiq&zkw)`MQu_4*@N4_rLBe`P2}*6WBR(c|ivV z;F~^KrGancQa&KQnVtF*AT_*De} z%0go>D?^^~4Bf0~GIy1Hqc1>}E{S3$T z+_mQTgV(o_H^rWFlT^40z}O6K=Q43c&-T)h*7lLkqvPhi0uGLf=wmkj(l5^bB_G%G z`tEMWC-GlR3bzRn&peZq0BGr~?=a{2H3BOlwP#u0Yyv>xj#Y9zOu6 z`oMk5BKuChVvOdDsg?&F09`4~>GWGMCCeU~87}+T%m7gLv(b0b1MI!=AGlothmJc; zo%VPdw|_n! zoxqq#jK>h&f!9+tBgU*1aFk}|s;Mpnjzd>Yi36rT(AXlZhq~AamFEBiLP{9(JESYc zQKZlj5X;ivA$ zt0Tk0!?OU03wpcmSl!`T>}#BImfC&X_kT2_&#k9j+^0o#LQu|so&s?Bfv#;*g2}l* zO3fhLh${dOxO|ysZ^kVd&dxm^?fO>^%@gxArs;Zjm!|eikaS9-<>^9X+<(Qix`K88NFj|Mfo@#rwAAovYicUbt;4A=TABv=V{$63xBw( z>{J%k=Z}IaI{`{RR774>L63Irx0p|8L+rudI1SeKnPCh4B>lcDjh{5 zhBn*fFAl2h*MTiV3BVh&4>14s)v56vP?fVy(?L2ubG?0f6*3jLA9DJkzEdipko$K5 zaQ{(gSn#;MBlCCL)nD*ug8*OgCHMik_fvY^m*CaL2++8lAO3TUN{uP63VKXcoPaR- zQ`dZ*izuoPSd6(=cp&n<+o&t21P9!T<>Q#(%S0?ZaX?SrxS?!KB7R})XN1zKL=BIvszaY8ZQ0rItXir=LR&Q>8NfQmz%PhX zvXOYB9&&RMfPSA%*0R*HpPPkemCKq}S3&;h|2-#X_q|L%zec?hPqOSa+NF%5uQvY1c3IB8F&m<*007yH( z7=rg{e=?+o>K#VCa0w|Lr^F@U7cF*ypze>1J1gcR4iVWK-CtTerVnXP_x47fPVKCf z-+uRB(=d?D=cmf@bN%G~*}*)birxKmum;|eEp@uE)gLHQ88 z96DBJ04OoQ*m<~7yd)zl!BE+7zhkt*ROJ-q#1*5I)I`-aC5{bVTt-~zyt<0IOw3tz zdmGPVb2c#aGPQEIvEp=dH8s~G>K!u!V?ApZqKTmkQYR!VT1XuLEHyqXUOOT>B+BoE zsfXnW7>FDSI7`ygLEzAPe{bFav|GQgrDa^p$^CERTS9VIb|M7ev(htu&VSF(`h2~z z<~3lieN{TUzCV=yzO1AHw{c8wTP6}4-hHa9eE0n6!=1aIkYM{SwDHgP-+zXFWM6xo z3&6dp|N7cGTiY7H+)6D?O#B1D=IG(h>fZj&Xq!3G`=3l>L#utvF_m6h#7e8w$!QBL1S!g}m!`{>p=#JMf(0$2XJjU%!0} z!s3?Z*4C!x#j)u}1=ljus*Y#2{?(_4&sNjxOX{mWy{fJQ_;)X!PtqPed-$w$Y&`oV z0AH^TwcH#UYWeT#Q2)&@e|iDv{G8O*-PQUtucP^AT1)FO%^7($wY)pBIkvk|J$X2> zSH%IY`D7>NC4XIbcr>#Gm|pKJaU-3eJa$}AdBDuIY z#+!K2LgFSy7(9o|i+`74V!!|>ln8;~0SQHf=6mxH03N2T>2%CjC=Ksk72SXT_WkPK z&g8+aW-aW5gLk- zC!zpS@}#P^cibt0hESKFSRf2Ums?rLNC}*g^_8%2wF8Z;%!cMl zoQia#sX#Dr2$oAT_VAW5o(Sg^?1f@61Zg*84+9gLlZTnDfu5zIBH4vi-Yo}$LE^ZJ zORwXQqi{Tg6N6?%5V4SB5pxsCu|k4ypf{m>hCX+t(GXE6t_popMcLTUL03Z^i-UcE zU@$WLjT~p9FJJPP@N4#;e-z^#$z;GSkM8F7@r^xRn{IzQ?;GWFDNxKWURdFVfG58; z|7G^G@zK%&h?vWlO+rH6nh2ghVr;6Bjz8n)zodCVdP|xx@FXJU?1|t&=0H>47;YgT z{?Sm)Fv2^5kL%0@k*KplrdJ;Adt>6_JvcKiM4Z!w0C2<(AW4ub5Ko8|L=GarWXVKf zTwt7HwqnLfx=LFcebq2xPg5rw5Ab9Ks3{xmaAPZd92v8_AjbR zH`Mx?`^suD(fP8&sHgtn^1HP2*D{uMZrO0O3|rREetBxsHE$skSi2i5@midyeP$@7 z7QE79jB|Q1O}J4P?G*H+Nd1&J?7Oq@*AC86kqt(_tD%Wv&*-*<;Z!9xorMn?WphL0 zR5?PWrDf|%$McEx>%(wEf{}YyOzM|EpO+6AwHLo!5zV9gu)9BA3p@1q@8Y?@(ZQp$ zY?pn~uurWYPcT1aPtVCQaH`iaWff|xj~ejJ^;z%t4tu=K{_$~n=x;SOl_`pUtK~EX;IXDyVvgDX!y%qvQYTW^bBQG`YjUM_)WQ36v|;A*%?y8Npp;(-46#(_zpu@0YK?sx9## z&h7rMPOFTGL+iFM6rI7{-KDq`ckAG81%~3#DHH~0aCevjg`yXyFi4>kcPsAhR;HnK~|HVNqjo$hv&52zwi#3QYA5w*i_Sx3&uqetST7hRg* z_HgC%$f^-Q-7%{L`BRVY6H%!89?oSN zC;$!4s4T*YNJ1|aONUp3&Ccm}o@8>0-hXG>h0P?hIA*=(0+Rh?ccT=%wN^MlRTl@Y z^yv%+#&z7;59BZiav5)ms1gX``odhttg=H{US4s+O$)zjb27&jN8VDXqjP`_(#Ns+ z$g-kUi?Iqhene@>coMW8xl+Fy(a;y*`)SWMsMEzTlIzI~fxUe>4f9)LS7NCmw^})T z`6hfHpXldTQjl+F=w{ahE^P{QisZtckyXG%A_4F_SqHW_@#-4!9Ue@9^T#*zOP13U zx)U{xPQ}#tq@9x{-$0tSdlJ2`ET#&t0PG$zbS6MM8@WmjsWK@wo?BjeD7t*-`fj=n zKJoR>4u!>rW^fX#v1Np^6U4gRUgsP{whs{+^x5#q~3J9AB}&+35|b_3M0|#T`T)pDeSva?J7{r;YcJba|-6z<1tbhK?zssP1-Fdy3qh`rZ)| zs>rxy8xOQ7q0FiV-1Dr*ep#QiSUH`fdfl zbX2+ID5f#9Q6}9X7q*=#;_ZzzsiTN@KI5=WXwfsgO&H}q-fU)qxmH4Ww#<>7Wv)}g z7`A;3(Hu(@;tXsebd$e=1ePY$J9d=lcZGfyd0h~lV4$kM2VHG9#AYH=*v7lfOKN?S za0*o;FJwM{y0ldZKujuM4A`SDjx$3>fMvaL5%GHYd*SW*G#^R5Mcg9zHD?iJ9W$lTI~8rq zBa#LCv|g3kDF&LL+CMM%EM&}XBnp%>k2p+0i>xTQoA2f0wy_y`?v1M2-FQWw0Qr!6 zR%64_Jm&(AltgwES%iOE)jb!O{E~rAX20IM(wUr|X0d@Qh|kNe#jFlkhyV#pii zG4HdgUpShd_E0kfY@-O!e;mDyg7{Jv+=FW-ZJXCfiKoYCeyBfL+-itb%u9}D)0nb! z*nz*GnwsyJh$aL^pe5AH5iQV+`NI$$77tpxCBGd`a7GZ>4+=UlLhCx?E@txnaL8=n zn2zS~5L10Ypd&aUP$W&mT01Ke87e?QJPsagpUI_Qv-oL zJe*r9<6ghW$gcNBk??EoV@|pFeN2zbD+x@_MrgY?^KIu{uq!uAQ_`zgim^XAY9x35 z^!J2*)$%(J=B7*_ph8Gmc2bKINAC5ak)@%!Oht|?y9IuOfAJC%g?it;_t=)gp!PHv z8k!r;XVl$zOLRB!yWzZ-G87*pfaW1F;l`zqgIeM{%RW;u^u%ut9ke1 z4d0BTS1@nVVMm6-r^`itSQTZbkR^RmH3LHXGe0jhFvE9NiRSRW+fjQ|s*N(nfM|VQ zleD@k@Pog`(NWo$-LPmf9TN;W0b804tJIo@EeO0P$t~sV9@Bu$_62 z-x&8=ka`p?W}yeA5;>u~?NZvggesfbKDm)(yi^oz`Q$}5ACqzv*)m*=g#10pQ=BFy z+4Ow(#NVsr(jlH=AOh&IMi0js={?V}LMWYCSUIhtjv}!NQpV&B@4%BWz3x8!H449Z za-SXsP|wY#ke(}7*>4U{L2FIX{;{BKQgl{P3J7F{V{bbR>!fO2Ggq`-He=a@#5o73 zeLGD!2{p(rYOH}+^5UOGSGCv}uhvspjBv?uE^mVr383bMxTzWOx%Wz5Q=okxWYK*{^8YJ3 zputXw9vS!NM$%X&RFj8lfnfJJ4ze@&)Mb5bL&5*4ymXi+OVd)e@ep;2y<|w+?0lUe zR<9m!@osE;6<@9)x&otD$*?z_h09gDb}Ov`bR@)vgXDz$QSJk;(sq z>4k7qcK}}iH?6UBJrAhrlg6E=nj`GZ0LgEwPbY~#P&crvw*vR3{@m))#JDY9Emlq& zrA*hgl%!sOl~z%AIKP3s#|;tA=_J`sDBokuJCMAfOWo`vMhqRF5JA+h1nguq zxf_awPmMROY(--UExgvWa*k?RH%$t7Ca<#b4O5+y z&t=rrg!Prne(y6t&z3m?W2XWo@RpvCCK>2j$-bG9h6qdvV?~ese5#P34n!%NT(cym zO;WryJhGCQ#Z>Mp)8Ij$4m!ElWbRdMz9c+~zb=dBoT6I&E06rQ1nR}nB#>c_{C&$W zKfM0!1VOb`6TBENWn^i1wwCr&?BQ2kKE zLl&tLH>^R?71FSQ35-Q6P&L=i(coj!9ahKjLmAPLojUUP#LS3GjDYS!oG+C>;voK= zec`8M+^>p}6I;L7xcL4~K{f@~hrS6DVM9JWG$}`$q+E>_`ZhN&=m*{X&8jH;kKZ99 zMq_Sne4HVAcHtRlC@8>ZzoRFwt_7CY`j6cq%jen<*rGHhKlJL3!ABBWne}IA3#xOP z609d#6qTxx0k2nOF$;LMUB}VjC@VSUujP*5@*zyxTYkU}JkG?LQb+W;?XgN%aO(s{ zS~#wuHrz{ln`j^wv&?|Xb;?wJ&w_ne4N#2-iiQ7Bo0M~CQ{GnUsnnQx!+;a^yU~4@ z5qur+xJkkA1#6peP>PXfsku$UPFPeK&5G%6%FbD1LOh}SqFuAgeBWe$J7AqG_-}!& z3SjyWbI_PU94?s3-EoctZ%>tR-=j6r?Qr~Fe1<>YMw^hi#m5ZKQ&ff}f!*+zg9;>Wh7a zFWHV2E2RA5okB24&KDL7e=YHis4uq@4aGDT@Xl69ef#g5b>B(7RLMM;Ytb5J| zub+8?^GqGEywd+N=emWbue6~fXrEig-&v5Iv)I|0#lIK7Nb1?_wrikfs#jj;bE(;1RsD#Z&eG8Ao$(Zf`osrfERl4`(ck(!;vz1&LOVgef# z&OJOWCY>Iv>UyG`1 zR_A3@Vw-xOE>+%g9Nh(eZ5O;;v~f9Sqg#*~-+QFBsc$n??UK3%zcPYm*K^_rNY%%I z-s+NPqh{DHB=hy)a$*tWQt3{0=6bpl0`47)==lZz%Gf{s&fcOh(%(Yf(`A`UV4~>5 zNL#}NfFmA;!R)IeP6lGMH=84({e!62is<8bh1C8BQMKWGKQ~{^Tx>j4OJ0abVKeTE zeA#$0;Zk`)nu(cfg5@AylT@mIpgS1*MNINf3?206AVOTk2-XK_0cs69y7EOOAL}hY zoM{rggzQ5?<^epvz9`ZIZ{c)VdOWh+HQ`sA!tS(;$n%u2CT^a)v+Tx7gsy`M+Rjqu zXl@vWfl5td3bieA*OixpUQ8N&DYTS4UmpzBU>&uA?(tgJf1z~OP$ROScOB?R$GONe zNdMSE>Vk>4>OHvDPrjQNQ_9XxM%BJGZjSt$BTt6A2*3C#hD*PUNEw`Lf7ceRGRbDFX|Q zjH3%#66X7IJL=nfi#KNPjGfTSi*GW_Yc52*ZLwD8YkB3R`HPDVbqomh9Rnj1U;?LR zDjIAi`vD_9)Fjd_cz|BCodwVfb&gue*ZXOqU`Rr0ApB9%w2su(6_3dcW^VwY398dk zz@y1+ii$z+--~DewNaq;IRMEA_#Uq9xdRFM<6aDo$_ccmRo~Ibx~eO!MV!GiP8-*{ zQAw#)dIj-tAXKwAe&sE8*K>L;acE-WKF4gg;P*3JLB;Jy%OCX0=d2_XVqS{=bxIKW z+C}FBYkyc6XzqmPm(-vn{r*?~(DK-Pe1shUshj5bImdUng28;pkGEU3qR5sv$*DK1 zR0)J;CCFXrWMW>YT~H-hx&7_icy>c7&Iz?CcEImd0MVg&LjtsaO=6c!XHkvypcZ0 do begin + if Bytezahl<=Rest then Recordzahl := Bytezahl else Recordzahl := Rest; + BlockRead(Quelle, Puffer, Recordzahl); + BlockWrite(Ziel, Puffer, Recordzahl); + Rest := Rest-Recordzahl; + end; + Close(Quelle); + Close(Ziel); + end; +end. diff --git a/HACKING/smsar.pas b/HACKING/smsar.pas new file mode 100644 index 0000000..c26b9da --- /dev/null +++ b/HACKING/smsar.pas @@ -0,0 +1,54 @@ +program SMSArchiverDecode; + +uses Crt, DOS; + +const ifile='smsar.dat'; + +var data: array[1..10] of string; + i,coe: integer; + f: text; + k: char; + cx,cy: integer; + +function Decode(x: string): string; +var i,y: integer; + tmp: string; +begin + tmp := ''; + for i:=1 to Length(x) do begin + y := Ord(x[i]); + tmp := tmp + Chr(y+coe); + end; + Decode := tmp; +end; + +procedure Get10Lines; +var i: integer; +begin + for i:=1 to 10 do ReadLn(f,data[i]); +end; + + +begin + ClrScr; + Write('Opening ',ifile,' ... '); + Assign(f,ifile); + Reset(f); + WriteLn('OK.'); + Write('Getting 10 lines ... '); + Get10Lines; + WriteLn('OK.'); + cx := WhereX; + cy := WhereY; + repeat + ClrScr; + for i:=1 to 10 do WriteLn(Decode(data[i])); + WriteLn('Coefficient: ',coe); + k := ReadKey; + if k='+' then coe:=coe+1; + if k='-' then coe:=coe-1; + until k=#27; + Write('Closing file ... '); + Close(f); + WriteLn('OK.'); +end. diff --git a/HTMLVIEW.HTM b/HTMLVIEW.HTM new file mode 100644 index 0000000..f42182c --- /dev/null +++ b/HTMLVIEW.HTM @@ -0,0 +1,12 @@ +Text blablabla...bla +Herzen: <3<3<3<3<3 :nezreH + + +BOLD TEXTNormalItalic text +Normal text +Underlined text +Normal text +Hyperlink +Font-Tag mit Color #FFFFFF und Face Comic Sans MS Ð Þ þ +fontNormal +© 1997 by RoboCop of nOOb (dä Rächä mit dém Bächa) diff --git a/HTMLVIEW.PAS b/HTMLVIEW.PAS new file mode 100644 index 0000000..03acd7a --- /dev/null +++ b/HTMLVIEW.PAS @@ -0,0 +1,202 @@ + program HTML_Viewer; { geschrieben von RoboCop of nOOb a.k.a. Markus Birth } + +uses Crt, Logo, BasicStrings, HTML, Statusbar, CursorOnOff, HTMLV_Unit; + +var ViewTags: boolean; { Tags anzeigen - BOOLEAN } + ShowCols: boolean; { Farben zeigen - BOOLEAN } + WordWrap: boolean; { Wortumbruch - BOOLEAN } + ConvEntit: boolean; { Entity-Konv. - BOOLEAN } + IK: char; { gedrckte Taste } + skipped: longint; { Zeilen, die vom Dokument bersprungen wurden (alle, die schon weggescrollt wurden) } + SwitchToNormal: boolean; { Soll ich nach dem nchsten '>' in die Normalfarbe wechseln? } + +procedure SetPrefs; { Voreinstellungen festlegen } +begin + ViewTags := false; + ShowCols := true; + WordWrap := false; + ConvEntit:= true; + Color_Normal := 11; + Color_Comments := 7; + Color_Bold := 14; + Color_Italic := 15; + Color_Underlined := 13; + Color_Anchor := 12; + Color_Font := 10; +end; + +procedure About; { Der Kommentar, der bei fehlendem Parameter ausgegeben wird } +begin + WriteLogo; + TextColor(15); + WriteLn('-= HTML Viewer =-'); + WriteLn; + TextColor(7); + WriteLn('Entfernt HTML-Tags aus Dateien und zeigt sie an.'); + WriteLn('Geschrieben von RoboCop of nOOb'); + WriteLn; + WriteLn('Dies ist noch die ''dumme'' Version. Sie entfernt alles, was zwischen'); + WriteLn('< und > steht. Eine intelligente Version wird auch noch folgen!'); + WriteLn; + WriteLn('Syntax: '+ParamStr(0)+' '); + Halt +end; + +procedure UpdateStatus; { Schreibt Statusleiste } +begin + WriteStatusItem( 1,'Hilfe'); + if ViewTags then WriteStatusItem(2,'k.Tags') else WriteStatusItem(2,'Tags'); + if ShowCols then WriteStatusItem(3,'k.Farb') else WriteStatusItem(3,'Farben'); + if WordWrap then WriteStatusItem(4,'k.Wrap') else WriteStatusItem(4,'Wrap'); + if ConvEntit then WriteStatusItem(5,'Entity') else WriteStatusItem(5,'Umlaut'); + WriteStatusItem( 6,''); + WriteStatusItem( 7,''); + WriteStatusItem( 8,''); + WriteStatusItem( 9,''); + WriteStatusItem(10,'Ende'); { Hier nur 5 Zeichen verwutzen, da sonst die Statusleiste eins hher rutscht } +end; + +function IsCloseTag(T: string): boolean; { Prft, ob T ein Schlie-Tag ist und gibt je nachdem TRUE oder FALSE zurck } +var C3: string[3]; + C4: string[4]; + C5: string[5]; +begin + C3 := Left(T,3); + C4 := Left(T,4); + C5 := Left(T,5); + if ( (C3='-->') + or (C4='') + or (C4='') + or (C4='') + or (C4='') + or (C5='4 then PART := Mid(Temp,i,5); + C3 := Mid(Temp,i,3); + C4 := Mid(Temp,i,4); + if IsCloseTag(PART) then SwitchToNormal:=true; + if C3='' then MakeColor:=Color_Bold + else if C3='' then MakeColor:=Color_Italic + else if C3='' then MakeColor:=Color_Underlined + else if C3='' } + t:=true; { Ja, es ist ein Tag } + if ShowCols then nc:=MakeColor(Temp,i) else nc:=0; { Wenn Farben AN, dann Tag-Farbe --> nc } + end; + if ((not t) and ((lc<=80) or (WordWrap))) then begin { Wenn kein Tag und Ausgegebene Zeichen noch nicht 80 } + Write(si); { mom. Zeichen ausgeben } + Inc(lc); { Ausgegebene Zeichen += 1 } + end else if ((ViewTags) and ((lc<=80) or (WordWrap))) then begin { sonst, wenn Tags AN und Ausg. Z. noch nicht 80 } + if ((not SwitchToNormal) and (nc<>0)) then TextColor(nc); { Wenn nicht SwitchToNormal und new color != 0, dann TC=nc } + Write(si); { mom. Zeichen ausgeben } + Inc(lc); { Ausgegebene Zeichen += 1 } + end; + if ((si='>') or (Mid(Temp,i-3,3)='!--')) then begin { Wenn Zeichen == '>' oder die letzten 3 == '!--' } + t := false; { Nein, es ist kein Tag mehr } + if nc<>0 then TextColor(nc); { Wenn new color != 0, dann TC=nc } + if SwitchToNormal then begin { Wenn SwitchToNormal } + SwitchToNormal := false; { Nee, kein SwitchToNormal mehr, einmal reicht } + TextColor(Color_Normal); { Textfarbe auf Normal } + end; + end; + end; + if WhereX<>1 then for i:=WhereX to 80 do Write(' '); { Rest der Zeile mit Leerzeichen auffllen } +end; + +procedure RebuildScreen; { Schreibt den Bildschirm neu - OHNE CLRSCR } +var i,j: integer; +begin + window(1,2,80,25); + TextBackground(1); + TextColor(11); + GotoXY(1,1); + for i:=1 to 23 do begin + if Screen[i]<>'' then WriteLine(Screen[i]); + end; + for i:=WhereY to 23 do for j:=1 to 80 do Write(' '); + window(1,1,80,25); +end; + +procedure ShowData; { Liest Datei ein } +var Temp: string; + i: integer; +begin + window(1,2,80,24); + TextColor(11); + TextBackground(1); + while not Eof(HTMLFile) do begin + ReadLn(HTMLFile,Temp); + Inc(i); + if i>23 then begin + ShiftScreen; + Screen[23]:=Temp; + end; + WriteLine(Temp); + end; + window(1,1,80,25); +end; + +procedure WaitForInput; { Wartet auf Eingabe und fhrt je nach Taste verschiedene Operationen aus } +label ExitWFI, Again; +begin +Again: + IK := ReadKey; + case IK of + #000: begin { Funktionstaste oder Sondertaste erwischt! } + IK := ReadKey; + case IK of + #059: ShowAbout; { F1 } + #060: if ViewTags then ViewTags := false else ViewTags := true; { F2 } + #061: if ShowCols then ShowCols := false else ShowCols := true; { F3 } + #062: if WordWrap then WordWrap := false else WordWrap := true; { F4 } + #063: if ConvEntit then ConvEntit := false else ConvEntit := true; { F5 } + #068: goto ExitWFI; { F10 } + end; + end; + #027: goto ExitWFI; { ESC } + else Sound(1200); Delay(100); NoSound; { andere Taste } + end; + UpdateStatus; + RebuildScreen; + goto Again; +ExitWFI: +end; + +begin + if ParamCount=0 then About; + OpenHTML; { Datei ffnen } + SetPrefs; { Voreinstellungen setzen } + MakeScreen; { Bildschirm aufbauen } + UpdateStatus; { Statuszeile aufbauen } + CursorOff; { Weg mit dem Blinker } + ShowData; { Daten anzeigen } + WaitForInput; { Auf Taste warten } + Close(HTMLFile); { Datei schlieen } + window(1,1,80,25); { WINDOW wieder setzen } + TextColor(7); { Alte DOS-Farben } + TextBackground(0); { wiederherstellen } + ClrScr; { Bildschirm nochmal lschen - LETZTE LUNG } + CursorOn; { Und Cursor wieder rumblinken lassen - Elektro Schocks} +end. diff --git a/INIFILET.PAS b/INIFILET.PAS new file mode 100644 index 0000000..72f91ba --- /dev/null +++ b/INIFILET.PAS @@ -0,0 +1,120 @@ +program INIFile_Test; + +uses Crt, INIFile; + +const Heading=15; + Struct =9; + Files =11+blink; + Descr =10; + Values =14; + Quest =10; + +begin + ClrScr; + INIFileDebug := False; + OpenINI('C:\WINNT\SYSTEM.INI'); + TextColor(Struct); Write(' '); + TextColor(Heading); + WriteLn('Einige Informationen ber Ihre FENSTER ....'); + TextColor(Struct); WriteLn(''); Write(' '); + TextColor(Files); + WriteLn('SYSTEM.INI'); + +{ Computer-Typ } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Computer-Typ: '); + TextColor(Values); WriteLn(INIGet('boot.description','system.drv')); + +{ Maus } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Maus : '); + TextColor(Values); WriteLn(INIGet('boot.description','mouse.drv')); + +{ Grafikkarte } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Grafikkarte : '); + TextColor(Values); WriteLn(INIGet('boot.description','display.drv')); + +{ Tastatur } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Tastatur : '); + TextColor(Values); WriteLn(INIGet('boot.description','keyboard.typ')); + + CloseINI; + OpenINI('C:\WINNT\WIN.INI'); + TextColor(Struct); Write(' '); + TextColor(Files); + WriteLn('WIN.INI'); + +{ Land } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Land : '); + TextColor(Values); WriteLn(INIGet('intl','sCountry')); + +{ Whrung } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Whrung : '); + TextColor(Values); WriteLn(INIGet('intl','sCurrency')); + +{ Standard-Drucker } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Std.-Drucker: '); + TextColor(Values); WriteLn(INIGet('windows','device')); + +{ Hintergrund-Bild } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('HG-Bild : '); + TextColor(Values); WriteLn(INIGet('Desktop','Wallpaper')); + + CloseINI; + OpenINI('C:\WINDOWS\SYSTEM\OEMINFO.INI'); + TextColor(Struct); Write(' '); + TextColor(Files); + WriteLn('OEMINFO.INI'); + +{ Computer-Modell } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Computer-Typ: '); + TextColor(Values); WriteLn(INIGet('general','Model')); + +{ Hersteller } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Hersteller : '); + TextColor(Values); WriteLn(INIGet('general','Manufacturer')); + +{ Support Informationen } + TextColor(Struct); Write(' '); + TextColor(Files); WriteLn('Support Informationen'); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile1: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line1'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile2: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line2'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile3: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line3'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile4: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line4'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile5: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line5'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile6: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line6'),1,63)); + + CloseINI; + WriteLn; + TextColor(Quest); + Write('Bitte Taste drcken .... '); + ReadKey; + WriteLn('danke!'); + TextColor(7); +end. \ No newline at end of file diff --git a/ITG/AUGENZ.PAS b/ITG/AUGENZ.PAS new file mode 100644 index 0000000..74b01b7 --- /dev/null +++ b/ITG/AUGENZ.PAS @@ -0,0 +1,53 @@ +program Augensumme; + +uses Crt; + +const p: char='|'; + +var A: array[1..12] of longint; + n: longint; + +procedure Progress; +begin + case p of + '|': p:='/'; + '/': p:='-'; + '-': p:='\'; + '\': p:='|'; + end; + GotoXY(WhereX-1,WhereY); + Write(p); +end; + +procedure Calc; +var x: byte; +begin + x := Random(6)+Random(6)+2; + Inc(A[x]); + Inc(A[1]); +end; + +procedure Auswertung; +var x: byte; +begin + for x:=2 to 12 do begin + WriteLn(x:2,' Augen: ',A[x]:7,' Treffer = ',(A[x]/A[1])*100:6:2,'%'); + end; +end; + + +begin + WriteLn('<====*====>'); + Write('Drcken Sie eine Taste, um den Versuch zu beenden. '); + repeat + Calc; + if A[1]/50000=A[1] DIV 50000 then Progress; + until keypressed; + ReadKey; + GotoXY(WhereX-1,WhereY); WriteLn(' '); + WriteLn; + Auswertung; + WriteLn; + WriteLn('Bitte eine Taste drcken'); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/AUSFLUG.PAS b/ITG/AUSFLUG.PAS new file mode 100644 index 0000000..994fdb5 --- /dev/null +++ b/ITG/AUSFLUG.PAS @@ -0,0 +1,76 @@ +program Bahnausflug; + +{ Ein Club plant einen Ausflug mit einer Privatbahn. Dort kostet ein + Tarifkilometer 20 Pf und bei Gruppenreisen hat jeder 6. Reisende eine + Freifahrt. Es ist ein Programm zu schreiben, da die Fahrtkosten pro + Person fr eine beliebige Anzahl von Reisenden und Kilometern ermittelt, + wobei die Gesamtkosten auf alle Teilnehmer gleichmig umgelegt werden. } + +uses Crt,VFx; + +const money=0.20; + +var people,km: longint; + + +procedure Init; +var mon: string; +begin + TextBackground(0); + ClrScr; + DrawBorder(40,12,15,1,5); + FXWriteC('-=+ Bahnkostenberechnung +=-',14); + WriteLn; + TextColor(10); + Str(money:0:2,mon); + WriteCLn('Der Preis pro Tarifkilometer betrgt '+mon+' DM.'); + TextColor(11); + WriteLn; + ReadyBeep; +end; + +procedure GetData; +begin + Write('Okay, wieviel Leutchens sollen''s denn werden? '); + ReadLn(people); + AckBeep; + if people=1 then Write('Und wieviel Kilometer will diese Person fahren? ') + else Write('Und wieviel Kilometer wollen diese ',people,' Personen fahren? '); + ReadLn(km); + WriteLn; + AckBeep; +end; + +procedure PrintData; +var freepeople,restpeople: longint; + geldges,geldpro: extended; +begin + TextColor(15); + freepeople := people div 6; + case freepeople of + 0: CWriteLn('Es fhrt niemand kostenlos! %%12#(NICHTS IST UMSONST!!)%%15#'); + 1: WriteLn('Es fhrt eine Person kostenlos.'); + else + WriteLn('Es fahren ',freepeople:0,' Personen kostenlos.'); + end; + restpeople := people - freepeople; + if restpeople=1 then Write('Und diese eine Person mu ') + else Write('Und ',restpeople,' der ',people,' Personen mssen insgesamt '); + geldges := restpeople * km * money; + WriteLn(geldges:0:2,' DM hinblttern.'); + geldpro := km * money; + if restpeople>1 then WriteLn('Das heit, jeder mu ',geldpro:0:2,' DM hinlegen.'); + WriteLn; + TextColor(7); + WriteLn('Vielen Dank, da Sie dieses Program benutzt haben.'); + WaitBeep; + WriteLn; + CWriteLn('%%142#=== Drcken Sie eine Taste! ===%%7#'); + ReadKey; +end; + +begin + Init; + GetData; + PrintData; +end. \ No newline at end of file diff --git a/ITG/BINSRCH.PAS b/ITG/BINSRCH.PAS new file mode 100644 index 0000000..fcc3777 --- /dev/null +++ b/ITG/BINSRCH.PAS @@ -0,0 +1,24 @@ +function bin_searchrekursiv(left, right, key: word): word; +var x: word; +begin + if left>right then bin_searchrekursiv:=0 + else begin + x := (left+right) DIV 2; + if key < F[x] then bin_searchrekursiv(left, x-1, key) + else if key > F[x] then bin_searchrekursiv(x+1,right, key) + else bin_searchrekursiv := x; + end; +end; + +function bin_searchiterativ(key: word): word; +var left, right, x: word; +begin + left := 1; + right := max; + repeat + x := (left + right) DIV 2; + if keyright); + if key=F[x] then bin_searchiterativ := x; + else bin_searchiterativ := 0; +end; diff --git a/ITG/CODING.PAS b/ITG/CODING.PAS new file mode 100644 index 0000000..d08f745 --- /dev/null +++ b/ITG/CODING.PAS @@ -0,0 +1,66 @@ +program Coding; + +uses Crt; + +const satz='ICH BIN HIER UND DU BIST DA! NUN BIN ICH DA UND DU BIST HIER. BLI BLA BLO BL '; + +var A: array[1..40,1..40] of char; + + +procedure Init; +var i,j: byte; +begin + TextMode(co80+Font8x8); + for i:=1 to 40 do begin + for j:=1 to 40 do begin + A[i,j] := ' '; + end; + end; +end; + +procedure Ausgabe; +var i,j: byte; +begin + for i:=1 to 40 do begin + for j:=1 to 40 do begin + GotoXY(j,i); + Write(A[j,i]); + end; + end; + ReadKey; +end; + +procedure Code(x: string); +var i,j: byte; +begin + Randomize; + for j:=1 to 40 do begin + A[j,j] := x[j]; + A[41-j,j] := x[40+j]; + end; + for i:=1 to 40 do begin + for j:=1 to 40 do begin + if A[i,j]=' ' then A[i,j]:=Chr(65+Random(26)); + end; + end; +end; + +procedure Decode; +var i: byte; +begin + ClrScr; + for i:=1 to 40 do begin + GotoXY(i,1); + Write(A[i,i]); + GotoXY(40+i,1); + Write(A[41-i,i]); + end; +end; + +begin + Init; + Ausgabe; + Code(satz); + Ausgabe; + Decode; +end. diff --git a/ITG/DISTANCE.PAS b/ITG/DISTANCE.PAS new file mode 100644 index 0000000..31f1644 --- /dev/null +++ b/ITG/DISTANCE.PAS @@ -0,0 +1,402 @@ +program Distances; { Autor: Markus Birth } + +uses Crt, Graph, GUI; + +type ttabelle = array[1..10,1..10] of word; + cityrec = record + x: integer; + y: integer; + n: string[20]; + end; + xyrec = record + x: integer; + y: integer; + end; + +const tabelle: ttabelle=(( 0,530,555,289,378,370,569,584,616,596), + (530, 0,249,385,207,478, 68,638,700,513), + (555,249, 0,495,193,588,189,395,457,294), + (289,385,495, 0,307, 93,422,782,844,777), + (378,207,193,307, 0,400,249,482,544,475), + (370,478,588, 93,400, 0,515,875,937,870), + (569, 68,189,422,249,515, 0,578,640,453), + (584,638,395,782,482,875,578, 0,179,139), + (616,700,457,844,544,937,640,179, 0,310), + (596,513,294,777,475,870,453,139,310, 0)); + + map: array[1..52] of xyrec=((x:33;y: 4),(x:36;y: 5),(x:37;y: 5), + (x:38;y: 7),(x:40;y: 7),(x:41;y: 8), + (x:37;y:13),(x:41;y:14),(x:41;y:22), + (x:42;y:23),(x:41;y:24),(x:40;y:24), + (x:30;y:29),(x:33;y:33),(x:38;y:37), + (x:38;y:40),(x:35;y:42),(x:37;y:46), + (x:32;y:45),(x:27;y:46),(x:22;y:46), + (x:21;y:47),(x:16;y:45),(x:10;y:47), + (x: 8;y:46),(x: 9;y:40),(x:12;y:38), + (x: 3;y:33),(x: 2;y:30),(x: 4;y:28), + (x: 1;y:25),(x: 3;y:21),(x: 2;y:19), + (x: 4;y:18),(x: 7;y:15),(x: 5;y:14), + (x: 7;y:11),(x: 6;y: 9),(x: 8;y: 8), + (x: 9;y: 7),(x:12;y: 7),(x:14;y: 8), + (x:15;y: 6),(x:17;y: 6),(x:18;y: 1), + (x:22;y: 2),(x:23;y: 7),(x:28;y: 6), + (x:27;y: 8),(x:28;y:10),(x:31;y: 6), + (x:33;y: 4)); + mapfact: xyrec = (x:7;y:7); + citycount: byte=10; + city: array[1..10] of cityrec=((x:36;y:16;n:'Berlin'), + (x: 7;y:23;n:'Essen'), + (x:15;y:31;n:'Frankfurt am Main'), + (x:23;y:12;n:'Hamburg'), + (x:18;y:22;n:'Kassel'), + (x:24;y: 9;n:'Kiel'), + (x: 8;y:27;n:'Kln'), + (x:27;y:43;n:'Mnchen'), + (x:36;y:40;n:'Passau'), + (x:20;y:41;n:'Ulm')); + desktopcolor=3; + +var xmax, ymax, xmed, ymed: word; + cityrp: array[1..10] of xyrec; + WP: array[1..50] of byte; + WPuptodate: boolean; + buttondown: boolean; + +{ V2S(x) - Liefert angegebenen Word-Wert als String mit 3 Stellen + Input: word + Output: string } +function V2S(x: word): string; +var tmp: string; +begin + Str(x:3,tmp); + V2S := tmp; +end; + +{ Dist(c1,c2) - Liefert Entfernung zwischen Stdteindizes c1 und c2 + Input: byte, byte + Output: integer } +function Dist(wp1,wp2: byte): integer; +begin + Dist := tabelle[wp1,wp2]; +end; + +{ WPmax - Liefert Index des letzten Wegpunktes im WP-Array + Input: none + Output: byte } +function WPmax: byte; +var i: byte; +begin + for i:=1 to 50 do if (WP[i]=255) then WPmax := i-1; +end; + +{ UpdateDist - Refreshed die Entfernungsanzeige + Input: none + Output: none } +procedure UpdateDist; +var i: byte; + dst: integer; + dis: string; +begin + dst := 0; + if (WPmax>1) then for i:=1 to WPmax-1 do begin + dst := dst + Dist(WP[i],WP[i+1]); + end; + SetFillStyle(SolidFill,7); + SetColor(0); + Bar(53,398,247,457); + SetViewPort(53,398,247,457,ClipOn); + SetTextStyle(TripleXFont,HorizDir,4); + SetTextJustify(RightText,CenterText); + Str(dst:4,dis); + dis := dis + ' km'; + OutTextXY(187,17,dis); + SetViewPort(0,0,639,479,ClipOff); +end; + +{ ShowGermany - Zeichnet/refreshed die Deutschlandkarte + Input: none + Output: none } +procedure ShowGermany; +const xd=7; + yd=22; +var k,x,y: integer; +begin + Frame(8,26,312,362,0,0,7,1,false); + SetColor(15); + for k:=1 to 51 do line((map[k].x*mapfact.x)+xd,(map[k].y*mapfact.y)+yd,(map[k+1].x*mapfact.x)+xd,(map[k+1].y*mapfact.y)+yd); + SetTextJustify(CenterText,TopText); + SetTextStyle(SmallFont,HorizDir,4); + for k:=1 to 10 do begin + x:=city[k].x*mapfact.x+xd; + y:=city[k].y*mapfact.y+yd; + cityrp[k].x:=x; + cityrp[k].y:=y; + PutPixel(x,y,15); + PutPixel(x+1,y,7); + PutPixel(x-1,y,7); + PutPixel(x,y-1,7); + PutPixel(x,y+1,7); + PutPixel(x-1,y-1,8); + PutPixel(x-1,y+1,8); + PutPixel(x+1,y-1,8); + PutPixel(x+1,y+1,8); + if (WP[1]=k) then SetColor(10) + else if (WP[WPmax]=k) then SetColor(12) + else SetColor(11); + OutTextXY(x+2,y+2,city[k].n); + if (WP[WPmax]=k) OR (WP[1]=k) then OutTextXY(x+3,y+2,city[k].n); + end; +end; + +{ UpdatePath - Refreshed die Weglinien + Input: none + Output: none } +procedure UpdatePath; +var i: byte; +begin + ShowGermany; + MoveTo(cityrp[WP[1]].x,cityrp[WP[1]].y); + SetColor(9); + for i:=2 to WPmax do begin + if (i=WPmax) then SetColor(12); + LineTo(cityrp[WP[i]].x,cityrp[WP[i]].y); + end; +end; + +{ UpdateWP - Refreshed die Wegpunkte-Liste + Input: none + Output: none } +procedure UpdateWP; +var i: byte; +begin + if (NOT WPuptodate) then begin + SetFillStyle(SolidFill,7); + Bar(328,30,527,397); + SetViewPort(328,30,527,397,ClipOn); + SetColor(0); + for i:=1 to WPmax do begin + SetTextJustify(RightText,CenterText); + SetTextStyle(SmallFont,HorizDir,4); + OutTextXY(19,i*9-5,V2S(i)+'.'); + SetTextJustify(LeftText,CenterText); + OutTextXY(20,i*9-5,city[WP[i]].n); + OutTextXY(21,i*9-5,city[WP[i]].n); + SetTextJustify(RightText,CenterText); + SetTextStyle(SmallFont,HorizDir,4); + if i>1 then begin + OutTextXY(160,i*9-5,V2S(Dist(WP[i],WP[i-1]))); + end else begin + OutTextXY(160,i*9-5,'---'); + end; + Rectangle(167,i*9-8,192,i*9); + SetTextStyle(SmallFont,HorizDir,2); + SetTextJustify(CenterText,CenterText); + OutTextXY(179,i*9-5,'CLEAR'); + end; + SetViewPort(0,0,639,479,ClipOff); + UpdateDist; + UpdatePath; + WPuptodate := true; + end; +end; + +{ AddWP(x) - Hngt Wegpunkt bei Stadt x an das WP-Array an + Input: byte + Output: none } +procedure AddWP(what: byte); +var wpm: byte; +begin + wpm := WPmax; + if (wpm+1>1) then begin + if (WP[wpm]<>what) then begin + if (wpm<49) then begin + WP[wpm+1] := what; + WP[wpm+2] := 255; + WPuptodate:=false; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end; + end else begin + WP[1] := what; + WP[2] := 255; + WPuptodate:=false; + end; + UpdateWP; +end; + +{ RemoveWP(x) - Entfernt den Wegpunkt mit Index x aus WP + Input: byte + Output: none } +procedure RemoveWP(which: byte); +var i: byte; +begin + for i:=which to 49 do WP[i] := WP[i+1]; + WPuptodate:=false; + UpdateWP; +end; + +{ Init - Alles, was initialisiert werden mu, grundlegende Vardefs + Input: none + Output: none } +procedure Init; +var grDriver, grMode: integer; + BGIPath: string; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + BGIPath := 'D:\BP\BGI\'; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + WP[1] := 255; + WPuptodate := false; + buttondown := false; + om := 0; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +{ Outit - Alles, um wieder auf Normalwerte zu kommen ... + Input: none + Output: none } +procedure Outit; +var i,ad,wpm: integer; +begin + wpm := WPmax; + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + if wpm>1 then begin + ad := 0; + Write('Strecke: '); + for i:=1 to wpm do begin + if (i>1) then Write(', ',city[WP[i]].n) else Write(city[WP[i]].n); + if (i1) then WriteLn(' Viel Vergngen in ',city[WP[wpm]].n,'!') else WriteLn; +end; + +{ StartScreen - Zeichnet Anfangs-Logo und nach Tastendruck den Mainscreen + Input: none + Output: none } +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'Entfernungstabelle'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'geschrieben von Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initialisiere Farbpalette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Bitte drcken Sie irgendeine Taste (Maus oder Tastatur)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); + ClearStatus; + SetTextStyle(SmallFont,HorizDir,4); + SetColor(15); + OutTextXY(570,440,'Beenden durch Drcken'); + OutTextXY(570,448,'einer Taste oder beider'); + OutTextXY(570,456,'Maustasten gleichzeitig.'); + MakeWindow(325,5,530,400,'Wegpunkte'); + MakeWindow(50,370,250,460,'Entfernung'); + MakeWindow(5,5,315,365,'Deutschlandkarte'); +end; + +{ CheckMouse - berprfung der Mausposition und evtl. Subroutinen-Ausfhrung + Input: none + Output: none } +procedure CheckMouse; +var i: byte; + over: boolean; + nst: string; +begin + if (mb<>0) then begin + if (NOT buttondown) then ShowMouse(false); + end else buttondown:=false; + over := false; + (* if (mb=0) then Status('X:'+V2S(mx)+' Y:'+V2S(my)); *) + for i:=1 to 10 do begin + if MouseOver(cityrp[i].x-5,cityrp[i].y-5,cityrp[i].x+5,cityrp[i].y+5) then begin + nst:=city[i].n+' (Klicken, um in Wegliste einzufgen)'; + if (oldstat<>nst) then Status(nst); + over := true; + if (mb=1) AND (NOT buttondown) then begin + AddWP(i); + buttondown:=true; + end; + end; + end; + for i:=1 to WPmax do begin + if MouseOver(495,22+i*9,520,30+i*9) then begin + nst:='Klicken, um '+city[WP[i]].n+' aus der Wegliste zu entfernen'; + if (oldstat<>nst) then Status(nst); + over := true; + if (mb=1) AND (NOT buttondown) then begin + RemoveWP(i); + buttondown:=true; + end; + end; + end; + if (NOT over) AND (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +begin + Mousereset; + Init; + StartScreen; + ShowGermany; + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckMouse; + until (keypressed) OR (mb=3); + if (keypressed) then ReadKey; + FadeOut; + Outit; +end. diff --git a/ITG/DREIECK.PAS b/ITG/DREIECK.PAS new file mode 100644 index 0000000..c9d1228 --- /dev/null +++ b/ITG/DREIECK.PAS @@ -0,0 +1,64 @@ +program Dreiecke; + +uses Crt; + +var a,b,c: real; + +procedure GetData; +begin + Write('Geben Sie die Lnge der Seite a ein: '); ReadLn(a); + Write('Und nun Seite b: '); ReadLn(b); + Write('Und jetzt noch c: '); ReadLn(c); + WriteLn('Danke!'); +end; + +function ProoveANG(x,y,z: real): boolean; +var j,k: real; +begin + j := Sqr(x); + k := Sqr(y); + if j+k>Sqr(z) then ProoveANG:=true else ProoveANG:=false; +end; + +function ProovePYT(x,y,z: real): boolean; +var j,k: real; +begin + j := Sqr(x); + k := Sqr(y); + if j+k=Sqr(z) then ProovePYT:=true else ProovePYT:=false; +end; + +function Gleichseitig: boolean; +begin + if ((a=b) AND (b=c)) then Gleichseitig:=true else Gleichseitig:=false; +end; + +function Gleichschenklig: boolean; +begin + if ((a=b) OR (b=c) OR (a=c)) then Gleichschenklig:=true else Gleichschenklig:=false; +end; + +function Rechtwinklig: boolean; +begin + if ((ProovePYT(a,b,c)) OR (ProovePYT(b,c,a)) OR (ProovePYT(a,c,b))) then Rechtwinklig:=true + else Rechtwinklig:=false; +end; + +function Spitzwinklig: boolean; +begin + if ((ProoveANG(a,b,c)) AND (ProoveANG(b,c,a)) AND (ProoveANG(a,c,b))) then Spitzwinklig:=true + else Spitzwinklig:=false; +end; + +begin + ClrScr; + GetData; + WriteLn; + if Gleichseitig then WriteLn('Das Teil ist gleichseitig!'); + if Gleichschenklig then WriteLn('Das Ding ist gleichschenklich!!'); + if Rechtwinklig then WriteLn('Und rechtwinklig ist es auch noch!'); + if Spitzwinklig then WriteLn('Spitzwinklig ist es! Ja, Spitzwinklig!'); + WriteLn; + WriteLn('Ich habe dem nix hinzuzufgen!'); + WriteLn('Fertich, Meister!'); +end. \ No newline at end of file diff --git a/ITG/EXPLODER.PAS b/ITG/EXPLODER.PAS new file mode 100644 index 0000000..3dacc31 --- /dev/null +++ b/ITG/EXPLODER.PAS @@ -0,0 +1,175 @@ +program Exploder; + +{ + #016 > filled + #017 < filled + +} + +uses Crt, DOS, Numbers, VFx; + +const StartPath='.\'; + +var cur: SearchRec; + + +procedure Init; +begin + TextMode(co80 + Font8x8); + TextBackground(0); + TextColor(7); +end; + +procedure SWindow(x1,y1,x2,y2: integer; fg, bg: byte; BType: byte); +var i,j: integer; + Border: string[8]; +begin + if BType=1 then Border := 'ڿٳ'; + if BType=2 then Border := 'ɻȼ'; + if BType=3 then Border := 'ոԾ'; + if BType=4 then Border := 'ַӽ'; + if BType=5 then Border := ''; + if BType=6 then Border := 'ڷԼ'; + DWrite(x1,y1,fg,bg,Border[1]); + DWrite(x2,y1,fg,bg,Border[2]); + DWrite(x1,y2,fg,bg,Border[3]); + DWrite(x2,y2,fg,bg,Border[4]); + for i:=y1+1 to y2-1 do begin + DWrite(x1,i,fg,bg,Border[5]); + DWrite(x2,i,fg,bg,Border[6]); + end; + for i:=x1+1 to x2-1 do begin + DWrite(i,y1,fg,bg,Border[7]); + DWrite(i,y2,fg,bg,Border[8]); + end; + for i:=x1+1 to x2-1 do + for j:=y1+1 to y2-1 do begin + DWrite(i,j,fg,bg,' '); + end; +end; + +procedure TurnAround(var x: string); +var i: integer; + tmp: string; +begin + tmp := ''; + for i:=Length(x) downto 1 do begin + tmp := tmp + x[i]; + end; + x := tmp; +end; + +function GetName(x: string): string; +var i: byte; + it: boolean; +begin + it := false; + if (x[1]='.') then begin + GetName:=x; + Exit; + end; + for i:=1 to Length(x) do + if x[i]='.' then begin + GetName := Copy(x,1,i-1); + it := true; + end; + if NOT it then GetName := x; +end; + +function GetExt(x: string): string; +var i: byte; + it: boolean; +begin + it := false; + for i:=1 to Length(x) do + if x[i]='.' then begin + GetExt := Copy(x,i+1,Length(x)-i); + it := true; + end; + if NOT it then GetExt := ''; +end; + + +function Fill(x: string): string; +var i: byte; + tmp: string; +begin + tmp := ''; + for i:=Length(GetName(x))+1 to 8 do tmp := tmp + ' '; + Fill := tmp; +end; + +function Fill2(x: string): string; +var i: byte; + tmp: string; +begin + tmp := ''; + for i:=Length(GetExt(x))+1 to 3 do tmp := tmp + ' '; + Fill2 := tmp; +end; + + +{ Attribute list in binary + + 1st ReadOnly + 2nd Hidden + 3rd System + 4th VolumeID + 5th Directory + 6th Archive + 7th AnyFile } + +procedure Add(var x: string; y: string); +begin + x := x + y; +end; + +procedure WriteFile(f: SearchRec); forward; + +procedure List; +var binattr: string; + strattr: string; +begin +{ ChDir(StartPath); } + FindFirst('*.*',AnyFile,cur); + while DosError<>18 do begin + binattr := Dec2Bin(cur.attr); + TurnAround(binattr); + if (binattr[5]='1') then TextColor(15) + else if (binattr[2]='1') then TextColor(8) + else if (binattr[3]='1') then TextColor(12) + else if (binattr[1]='1') then TextColor(10) + else if (binattr[4]='1') then TextColor(11) + else TextColor(7); + WriteFile(cur); + WriteLn; + FindNext(cur); + end; +end; + +procedure WriteFile(f: SearchRec); +var binattr: string; + strattr: string; +begin + binattr := Dec2Bin(cur.attr); + TurnAround(binattr); + strattr := ''; + if (binattr[5]='1') then Add(strattr,'D') else + if (binattr[4]='1') then Add(strattr,'V') else Add(strattr,'-'); + if (binattr[6]='1') then Add(strattr,'A') else Add(strattr,'-'); + if (binattr[1]='1') then Add(strattr,'R') else Add(strattr,'-'); + if (binattr[2]='1') then Add(strattr,'H') else Add(strattr,'-'); + if (binattr[3]='1') then Add(strattr,'S') else Add(strattr,'-'); + + Write(GetName(cur.name),Fill(cur.name),' ',GetExt(cur.name),Fill2(cur.name),''); + if (binattr[5]='1') then Write(#017,' DIR ',#016) else + if (binattr[4]='1') then Write(#017,' VOL ',#016) else Write(cur.size:7); + Write('',strattr); +end; + +begin + Init; + SWindow(1,1,80,50,15,1,2); + Window(3,2,78,49); + List; +end. diff --git a/ITG/FAKULT.PAS b/ITG/FAKULT.PAS new file mode 100644 index 0000000..6a4c93f --- /dev/null +++ b/ITG/FAKULT.PAS @@ -0,0 +1,27 @@ +program Fuck_ultaet; + +var which: integer; + +function Fak_Ite(m: integer): longint; +var i: integer; + tmp: longint; +begin + tmp := 1; + for i:=1 to m do begin + tmp := tmp * i; + end; + Fak_Ite := tmp; +end; + +function Fak_Rek(m: integer): longint; +begin + if m=1 then Fak_Rek := 1 else Fak_Rek := m * Fak_Rek(m-1); +end; + + +begin + WriteLn('======================'); + Write('Enter n: '); ReadLn(which); + WriteLn('Iterative: ',Fak_Ite(which)); + WriteLn('Recursive: ',Fak_Rek(which)); +end. \ No newline at end of file diff --git a/ITG/FENSTER1.PAS b/ITG/FENSTER1.PAS new file mode 100644 index 0000000..115ec28 --- /dev/null +++ b/ITG/FENSTER1.PAS @@ -0,0 +1,20 @@ +program Fenster1; + +uses crt; + +procedure Ueberschrift(Text:string; VF,HF: byte); +begin + window(1,1,80,1); + TextColor(VF); + TextBackground(HF); + ClrScr; + GotoXY(40-(length(Text) DIV 2),1); + Write(Text); +end; + +begin + TextBackground(0); + ClrScr; + Ueberschrift('Mal sehen was passiert, wenn die berschrift die Zeilenlnge sprengt Test Test',10,1); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/FIBONACC.PAS b/ITG/FIBONACC.PAS new file mode 100644 index 0000000..a7cf21b --- /dev/null +++ b/ITG/FIBONACC.PAS @@ -0,0 +1,35 @@ +program Fibonacci; + +{ Die Fibonacci-Folge ist wie folgt aufgebaut: Jeder Wert wird aus der Summe + der zwei vorhergehenden Werte errechnet. Gegeben sind die ersten beiden + Zahlen: 0 und 1. + Der Anfang der Folge sieht so aus: 0,1,1,2,3,5,8,13,21,34,55,89,144,233, + 377,610,987,1597,2584,4181,6765,.... } + +uses crt; + +var i: integer; + +function Fibonacci_Loop(n: integer): longint; +var tmp,last1,last2,i: longint; +begin + last1:=0; last2:=0; tmp:=1; + if n>=2 then begin + for i:=1 to n do begin + tmp:=tmp+last2; last2:=last1; last1:=tmp; + end; + Fibonacci_Loop:=tmp; + end else Fibonacci_Loop:=n; +end; + +begin + TextMode(C80 + Font8x8); + Window(1,1,40,50); + for i:=0 to 48 do begin + WriteLn(Fibonacci_Loop(i)); + end; + Window(40,1,80,50); + for i:=49 to 97 do begin + WriteLn(Fibonacci_Loop(i)); + end; +end. \ No newline at end of file diff --git a/ITG/FIBONA_F.PAS b/ITG/FIBONA_F.PAS new file mode 100644 index 0000000..20ece5c --- /dev/null +++ b/ITG/FIBONA_F.PAS @@ -0,0 +1,35 @@ +program Fibonacci_FOR; + +{ Die Fibonacci-Folge ist wie folgt aufgebaut: Jeder Wert wird aus der Summe + der zwei vorhergehenden Werte errechnet. Gegeben sind die ersten beiden + Zahlen: 0 und 1. + Der Anfang der Folge sieht so aus: 0,1,1,2,3,5,8,13,21,34,55,89,144,233, + 377,610,987,1597,2584,4181,6765,.... } + +uses crt; + +var i: integer; + +function Fibonacci_Loop(n: integer): longint; +var tmp,last1,last2,i: longint; +begin + last1:=0; last2:=0; tmp:=1; + if n>=2 then begin + for i:=1 to n do begin + tmp:=tmp+last2; last2:=last1; last1:=tmp; + end; + Fibonacci_Loop:=tmp; + end else Fibonacci_Loop:=n; +end; + +begin + TextMode(C80 + Font8x8); + Window(1,1,40,50); + for i:=0 to 48 do begin + WriteLn(Fibonacci_Loop(i)); + end; + Window(40,1,80,50); + for i:=49 to 97 do begin + WriteLn(Fibonacci_Loop(i)); + end; +end. \ No newline at end of file diff --git a/ITG/FIBONA_R.PAS b/ITG/FIBONA_R.PAS new file mode 100644 index 0000000..8d97c57 --- /dev/null +++ b/ITG/FIBONA_R.PAS @@ -0,0 +1,33 @@ +program Fibonacci_rekursiv; + +{ Die Fibonacci-Folge ist wie folgt aufgebaut: Jeder Wert wird aus der Summe + der zwei vorhergehenden Werte errechnet. Gegeben sind die ersten beiden + Zahlen: 0 und 1. + Der Anfang der Folge sieht so aus: 0,1,1,2,3,5,8,13,21,34,55,89,144,233, + 377,610,987,1597,2584,4181,6765,.... } + +uses crt; + +var take: integer; + +procedure Fibonacci_Recursive(a,b: longint); +begin + Inc(take); + WriteLn(a:10); + if take<47 then Fibonacci_Recursive(b,a+b); +end; + +function Fibo(a: integer): longint; +begin + if (a=1) OR (a=2) then Fibo := 1 + else if a=0 then Fibo := 0 + else Fibo := Fibo(a-1)+Fibo(a-2); +end; + + +begin + TextMode(C80 + Font8x8); + take := 0; + Fibonacci_Recursive(0,1); + WriteLn(Fibo(20)); +end. \ No newline at end of file diff --git a/ITG/GAUSS.PAS b/ITG/GAUSS.PAS new file mode 100644 index 0000000..b9e9298 --- /dev/null +++ b/ITG/GAUSS.PAS @@ -0,0 +1,66 @@ +program GAUSS; + +uses Crt; + +type GaRec=record + x: integer; + y: integer; + end; + +var n: integer; + P: array[1..500] of GaRec; + A: real; + +procedure Init; +var i: integer; +begin + for i:=1 to 500 do begin + P[i].x:=0; + P[i].y:=0; + end; +end; + +procedure Input; +var i: integer; + tmp,t2: string; +begin + i:=1; + repeat + Str(i:0,t2); + tmp := 'P'+t2+'('; + Write(tmp); + ReadLn(P[i].x); + Str(P[i].x:0,t2); + tmp := tmp+t2+'|'; + GotoXY(1,WhereY-1); + Write(tmp); + ReadLn(P[i].y); + Str(P[i].y:0,t2); + tmp := tmp+t2+')'; + GotoXY(1,WhereY-1); + WriteLn(tmp); + Inc(i); + until (P[i-1].x=P[1].x) AND (P[i-1].y=P[1].y) AND (i>2); + n := i-2; +end; + +procedure Calc; +var i: integer; +begin + A := 0; + for i:=1 to n do A := A + (P[i].x*P[i+1].y - P[i+1].x*P[i].y); + A := A / 2; +end; + +procedure Output; +begin + WriteLn; + WriteLn('Flcheninhalt: ',A:0:5,' quadratsonstwas'); +end; + +begin + Init; + Input; + Calc; + Output; +end. diff --git a/ITG/GEWICHT.PAS b/ITG/GEWICHT.PAS new file mode 100644 index 0000000..b52549d --- /dev/null +++ b/ITG/GEWICHT.PAS @@ -0,0 +1,39 @@ +{ Var Geschl:Char; +'Gre, Gewicht, Geschlecht angeben' +VAR Gr,Gew,Geschl eingeben +Geschl='m' ? +nein: Ideal := (gr-100)*0.9 + +ja: Ideal=(Gr-100)*0.95 + Gew <= Ideal*0.98 + Ja: 'Fliegengew' + Var Ideal ausgeben + Nein: Gew >= Ideal*1.02 + Ja: 'Alter Sack-zu schwer!' + VAR Ideal ausgeben + Nein: 'Gratulation' } + +program Gewicht; + +uses Crt; + +var Gr, Gew, Ideal: real; + Geschl: char; + +begin + Write('Gre: '); + ReadLn(Gr); + Write('Gewicht: '); + ReadLn(Gew); + Write('Geschlecht (m/w): '); + Geschl := ReadKey; + WriteLn(Geschl); + WriteLn; + if Geschl='m' then Ideal := (Gr-100)*0.95 else Ideal := (Gr-100)*0.9; + if Gew <= Ideal*0.98 then WriteLn('Fliegengewicht! Idealgewicht: ', Ideal:3:5) + else if Gew >= Ideal*1.02 then WriteLn('Alter Sack-zu schwer! Idealgewicht: ', Ideal:3:5) + else WriteLn('Gratulation!'); + WriteLn; + WriteLn('Bitte Taste drcken...'); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/G_U_I.PAS b/ITG/G_U_I.PAS new file mode 100644 index 0000000..309ed2c --- /dev/null +++ b/ITG/G_U_I.PAS @@ -0,0 +1,335 @@ +program RekGUI; + +uses Crt, Graph, DOS, GUI, RekGraph; + +const desktopcolor=3; + skier_len: integer=120; + skier_edge: integer=10; + skier_globangle: integer=0; + skier_fixedinit: boolean=true; + haken_len: integer=150; + haken_angle: integer=45; + haken_globangle: integer=0; + haken_fixedinit: boolean=true; + quadrat_len: integer=150; + quadrat_angle: integer=90; + quadrat_globangle: integer=0; + quadrat_fixedinit: boolean=true; + spirale_len: integer=10; + spirale_angle: integer=25; + spirale_globangle: integer=0; + spirale_fixedinit: boolean=true; + +var xmax, ymax, xmed, ymed: word; + ExitAll, ExitSetupAll: boolean; + +procedure Init; +var grDriver, grMode: integer; + BGIPath: string; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + BGIPath := '..\..\BGI\'; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + om := 0; + ExitAll := false; + ExitSetupAll := false; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +procedure InitGraphs; +begin + skier_del := 50; + haken_del := 50; + quadrat_del := 100; + spirale_del := 50; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x:3,tmp); + V2S := tmp; +end; + +procedure ShowSkier; +begin + globangle := skier_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(180,370); + Skier(skier_len,skier_edge); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowHaken; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Haken(haken_len,haken_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowQuadrat; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Quadrat(quadrat_len,quadrat_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + + +procedure ShowSpirale; +begin + globangle := spirale_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Spirale(spirale_len,spirale_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure Palette; +const tx=50; + ty=31; +var i,j: integer; +begin + for j:=1 to 16 do begin + SetTextJustify(RightText,CenterText); + SetColor(0); + OutTextXY(tx,ty+(j-1)*10+5,V2S((j-1)*16)); + for i:=0 to 15 do begin + SetFillStyle(SolidFill,(j-1)*16+i); + SetColor((j-1)*15+i); + Bar(tx+i*10,ty+(j-1)*10,tx+i*10+10,ty+(j-1)*10+10); + end; + SetTextJustify(LeftText,CenterText); + SetColor(0); + OutTextXY(tx+162,ty+(j-1)*10+5,V2S((j-1)*16+15)); + end; +end; + +procedure CheckSetupStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(15,405,525,425) then begin + Status('Hiermit wird die Konfiguration so gespeichert'); + case mb of + 1: begin + ExitSetupAll := true; + end; + end; + end else if MouseOver(527,405,625,425) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(527,405,625,425,'EXIT'); + ExitSetupAll:=true; + ExitAll:=true; + Delay(buttondelay); + MakeButton(527,405,625,425,'EXIT'); + Exit; + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure SetupData; +var sx,sy,sb: integer; +begin + MakeWindow(10,10,630,430,'Konfiguration'); + MakeButton(15,405,525,425,'Einstellungen so bernehmen'); + MakeButton(527,405,625,425,'EXIT'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckSetupStat; + StatusTime(false); + until (mb=3) OR (ExitSetupAll); + if (mb=3) then ExitAll := true; + ShowMouse(false); +end; + +procedure BuildWindows; +begin + MakeWindow(10,10,500,400,'Hauptfenster'); + MakeWindow(505,10,600,400,'Optionen'); + MakeButton(510,385,595,395,'EXIT'); + MakeButton(510,373,595,383,'CLEAR'); + MakeButton(510,34,595,54,'Skierp.'); + MakeButton(510,56,595,76,'Haken'); + MakeButton(510,78,595,98,'Quadrat'); + MakeButton(510,100,595,120,'Spirale'); + MakeButton(510,350,595,371,'SETUP'); +end; + +procedure CheckStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(510,385,595,395) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(510,385,595,395,'EXIT'); + ExitAll:=true; + Delay(buttondelay); + MakeButton(510,385,595,395,'EXIT'); + Exit; + end; + end; + end else if MouseOver(510,373,595,383) then begin + Status('Damit wird das Hauptfenster gelscht!'); + case mb of + 1: begin + MakeBeveledButton(510,373,595,383,'CLEAR'); + SetFillStyle(SolidFill,7); + Bar(13,31,497,397); + Delay(buttondelay); + MakeButton(510,373,595,383,'CLEAR'); + end; + end; + end else if MouseOver(510,350,595,371) then begin + Status('Hier kann man die Einstellungen ndern!'); + case mb of + 1: begin + MakeBeveledButton(510,350,595,371,'SETUP'); + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,500,400); + Delay(buttondelay DIV 2); + Bar(505,10,600,400); + Delay(buttondelay DIV 2); + ExitSetupAll := false; + SetupData; + if NOT ExitAll then begin + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,630,430); + BuildWindows; + end; + end; + end; + end else if MouseOver(510,34,595,54) then begin + Status('Fr unsere Wintersportler!'); + case mb of + 1: begin + MakeBeveledButton(510,34,595,54,'Skierp.'); + ShowSkier; + Delay(buttondelay); + MakeButton(510,34,595,54,'Skierp.'); + end; + end; + end else if MouseOver(510,56,595,76) then begin + Status('Und das ist fr die Angler!'); + case mb of + 1: begin + MakeBeveledButton(510,56,595,76,'Haken'); + ShowHaken; + Delay(buttondelay); + MakeButton(510,56,595,76,'Haken'); + end; + end; + end else if MouseOver(510,78,595,98) then begin + Status('Sehen Sie schon viereckig?'); + case mb of + 1: begin + MakeBeveledButton(510,78,595,98,'Quadrat'); + ShowQuadrat; + Delay(buttondelay); + MakeButton(510,78,595,98,'Quadrat'); + end; + end; + end else if MouseOver(510,100,595,120) then begin + Status('Ist was verstopft?'); + case mb of + 1: begin + MakeBeveledButton(510,100,595,120,'Spirale'); + ShowSpirale; + Delay(buttondelay); + MakeButton(510,100,595,120,'Spirale'); + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'Rekursive Grafikfunktionen'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'geschrieben von Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initialisiere Farbpalette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Bitte drcken Sie irgendeine Taste (Maus oder Tastatur)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); +end; + +begin + Init; + InitGraphs; + StartScreen; + BuildWindows; + MouseReset; + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckStat; + StatusTime(false); + until (mb=3) OR (ExitAll); + ShowMouse(false); + FadeOut; + Outit; +end. diff --git a/ITG/HANOI.INI b/ITG/HANOI.INI new file mode 100644 index 0000000..f025059 --- /dev/null +++ b/ITG/HANOI.INI @@ -0,0 +1,21 @@ +[Hanoi_Main] +Items=5 + +[Hanoi_Board] +Board_X=600 +Board_Middle=400 +Board_Y=10 +Board_Color=10 + +[Hanoi_Poles] +Tower_X=10 +Tower_Color=12 + +[Hanoi_Coins] +Item_MaxX=130 +Item_MinX=35 +Item_Y=20 +Item_Color=14 + +[Hanoi_Texts] +Text_Color=15 diff --git a/ITG/HANOI.PAS b/ITG/HANOI.PAS new file mode 100644 index 0000000..45228bc --- /dev/null +++ b/ITG/HANOI.PAS @@ -0,0 +1,290 @@ +program Towers_of_Hanoi; + +uses Crt, Graph, INIFile, BGIP; + +const { Hmax=5; } + Gray50: FillPatternType=($AA, $55, $AA, $55, $AA, $55, $AA, $55); + Sound_ON=false; + +var xmax, ymax, xmed, ymed: word; + Code: integer; + Hanoi: array[1..3,1..100] of byte; + Item_X: array[1..100] of word; + Board_Up, Board_Down: word; + Tower_Y: word; + Input: char; + Mv_From, Mv_To: byte; + Step: longint; + tmp1,tmp2: string; + T_Center: array[1..3] of word; + Hmax: byte; + Board_X,Board_Middle,Board_Y: word; + Board_Color: byte; + Tower_X: word; + Tower_Color: byte; + Item_MaxX, Item_MinX, Item_Y: word; + Item_Color, Text_Color: byte; + +function V2S(x: longint): string; +var tmp: string; +begin + Str(x:0,tmp); + V2S := tmp; +end; + +function S2V(x: string): integer; +var tmp,code: integer; +begin + Val(x,tmp,code); + if (code<>0) then begin + WriteLn('Error while VAL ''',x,''': ',code); + Halt; + end else S2V:=tmp; +end; + +procedure Init; +var grDriver, grMode: integer; + i,j: byte; +begin + INIFileDebug := false; + OpenINI('D:\LANG\src\bp\itg\hanoi.ini'); + Hmax := S2V(INIGet('Hanoi_Main','Items')); + Board_X := S2V(INIGet('Hanoi_Board','Board_X')); + Board_Middle := S2V(INIGet('Hanoi_Board','Board_Middle')); + Board_Y := S2V(INIGet('Hanoi_Board','Board_Y')); + Board_Color := S2V(INIGet('Hanoi_Board','Board_Color')); + Tower_X := S2V(INIGet('Hanoi_Poles','Tower_X')); + Tower_Color := S2V(INIGet('Hanoi_Poles','Tower_Color')); + Item_MaxX := S2V(INIGet('Hanoi_Coins','Item_MaxX')); + Item_MinX := S2V(INIGet('Hanoi_Coins','Item_MinX')); + Item_Y := S2V(INIGet('Hanoi_Coins','Item_Y')); + Item_Color := S2V(INIGet('Hanoi_Coins','Item_Color')); + Text_Color := S2V(INIGet('Hanoi_Texts','Text_Color')); + CloseINI; + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + T_Center[1] := xmed-(Board_X DIV 4); + T_Center[2] := xmed; + T_Center[3] := xmed+(Board_X DIV 4); + Board_Up := Board_Middle-(Board_Y DIV 2); + Board_Down := Board_Middle+(Board_Y DIV 2); + Tower_Y := (Hmax+1)*Item_Y; + Step := 0; + for i:=1 to 3 do begin + for j:=1 to Hmax do begin + Hanoi[i,j] := 0; + Hanoi[1,j] := Hmax-j+1; + Item_X[Hmax-j+1] := Trunc(((Hmax-j)/(Hmax-1))*(Item_MaxX-Item_MinX))+Item_MinX; + end; + end; +end; + +procedure DrawBoard; +var i,j: byte; +begin + ClearDevice; + for i:=1 to 3 do begin + SetColor(Tower_Color); + SetFillPattern(Gray50,Tower_Color); + Rectangle(T_Center[i]-(Tower_X DIV 2),Board_Up-Tower_Y,T_Center[i]+(Tower_X DIV 2),Board_Up); + FloodFill(T_Center[i],Board_Middle-(Board_Y DIV 2)-(Tower_Y DIV 2),Tower_Color); + SetColor(Text_Color); + SetTextJustify(CenterText, CenterText); + OutTextXY(T_Center[i],Board_Down+10,V2S(i)); + SetTextJustify(LeftText, TopText); + end; + SetColor(Board_Color); + Rectangle(xmed-(Board_X DIV 2),Board_Up,xmed+(Board_X DIV 2),Board_Down); + SetFillPattern(Gray50,Board_Color); + FloodFill(xmed,Board_Middle,Board_Color); + + for i:=1 to 3 do begin + for j:=1 to Hmax do begin + if Hanoi[i,j]<>0 then begin + SetColor(Item_Color); + SetFillPattern(Gray50,Item_Color); + Rectangle(T_Center[i]-(Item_X[Hanoi[i,j]] DIV 2),Board_Up-(Item_Y*(j-1)),T_Center[i]+(Item_X[Hanoi[i,j]] DIV 2), + Board_Up-(Item_Y*j)); + FloodFill(T_Center[i],Board_Up-(Item_Y*j)+(Item_Y DIV 2),Item_Color); + end; + end; + end; +end; + + +function WhatsLast(Tower: byte): byte; +var i: integer; + tmp: byte; +begin + tmp := 0; + for i:=Hmax downto 1 do begin + if Hanoi[Tower,i]<>0 then begin + tmp := Hanoi[Tower,i]; + Break; + end; + end; + if (tmp=0) then tmp:=255; + SetTextJustify(CenterText, CenterText); + OutTextXY(T_Center[Tower],Board_Down+20,V2S(tmp)); + SetTextJustify(LeftText, TopText); + WhatsLast := tmp; +end; + +function TakeLast(Tower: byte): byte; +var i: integer; + tmp: byte; +begin + for i:=Hmax downto 1 do begin + if Hanoi[Tower,i]<>0 then begin + tmp := Hanoi[Tower,i]; + Hanoi[Tower,i] := 0; + Break; + end; + end; + TakeLast := tmp; +end; + +procedure PutOnto(Which,Tower: byte); +var i: integer; +begin + for i:=1 to Hmax do begin + if Hanoi[Tower,i]=0 then begin + Hanoi[Tower,i]:=which; + Break; + end; + end; +end; + +procedure MoveFromTo(Mv_From, Mv_To: byte); +var temp: byte; +begin + if (WhatsLast(Mv_To)>WhatsLast(Mv_From)) then begin + PutOnto(TakeLast(Mv_From),Mv_To); + Inc(Step); + if (Sound_ON) then begin + Sound(1200); + Delay(75); + NoSound; + end; + end else begin + if (Sound_ON) then begin + Sound(800); + Delay(150); + NoSound; + end; + SetTextJustify(CenterText,CenterText); + SetColor(LightRed); + OutTextXY(xmed,40,'Can''t move Item on Tower '+V2S(Mv_From)+' to Tower '+V2S(Mv_To)+'.'); + Delay(1000); + end; +end; + +function All(what: byte): word; +var tmp: word; +begin + if what=1 then All:=1 else All:=what+All(what-1); +end; + +function CheckWon: boolean; +var i,j: byte; + sum: word; + tmp: boolean; +begin + for i:=2 to 3 do begin + if (WhatsLast(i)=1) then begin + sum := 0; + for j:=1 to Hmax do begin + sum := sum + Hanoi[i,j]; + end; + if (sum=All(Hmax)) then begin + tmp:=true; + Break; + end; + end else tmp:=false; + end; + CheckWon := tmp; +end; + +procedure Outit; +var i: byte; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + for i:=1 to Hmax do begin + WriteLn('Tower_X ',i,': ',Item_X[i]); + end; + WriteLn('Steps needed: ',Step:0); + WriteLn; + if (CheckWon) then WriteLn('Programm siegreich beendet.') else WriteLn('Programm grundlos beendet.'); +end; + +begin + Init; + repeat + DrawBoard; + if (CheckWon) then begin + if (Sound_ON) then begin + Sound(1000); + Delay(100); + NoSound; + Delay(200); + Sound(1000); + Delay(50); + NoSound; + Delay(100); + Sound(1000); + Delay(50); + NoSound; + Delay(100); + Sound(1400); + Delay(750); + NoSound; + end; + Break; + end; + SetColor(LightGreen); + SetTextJustify(CenterText,BottomText); + OutTextXY(xmed,ymax,'Press X to exit'); + SetTextJustify(LeftText,TopText); + SetColor(Text_Color); + Str(Step:3,tmp1); + OutTextXY(550,10,'Step: '+tmp1); + tmp1 := 'Move Item from Tower '; + OutTextXY(10,10,'Press 1, 2 or 3 to select a tower.'); + OutTextXY(10,20,tmp1); + Input := ReadKey; + if (Input='1') OR (Input='2') OR (Input='3') then begin + Val(Input,Mv_From,Code); + Str(Mv_From:0,tmp2); + tmp1 := tmp1 + tmp2 + ' to Tower '; + OutTextXY(10,20,tmp1); + Input := ReadKey; + if (Input='1') OR (Input='2') OR (Input='3') then begin + Val(Input,Mv_To,Code); + Str(Mv_To:0,tmp2); + tmp1 := tmp1 + tmp2 + ' ...'; + OutTextXY(10,20,tmp1); + MoveFromTo(Mv_From,Mv_To); + end else if (Input<>'x') AND (Input<>'X') then begin + if (Sound_ON) then begin + Sound(800); + Delay(150); + NoSound; + end; + end else Break; + end else if (Input<>'x') AND (Input<>'X') then begin + if (Sound_ON) then begin + Sound(800); + Delay(150); + NoSound; + end; + end; + until (Input='x') OR (Input='X'); + Outit; +end. \ No newline at end of file diff --git a/ITG/HANOIT.PAS b/ITG/HANOIT.PAS new file mode 100644 index 0000000..cdb9b07 --- /dev/null +++ b/ITG/HANOIT.PAS @@ -0,0 +1,29 @@ +program Bewege_Test; + +uses Crt; + +var howmuchcanyoutake: integer; + step: integer; + +procedure Bewege(n: integer; p1,p2,p3: char); +begin + if n=1 then begin + WriteLn(p1,' --> ',p2); + Inc(step); + end else begin + Bewege(n-1,p1,p3,p2); + Bewege(1,p1,p2,p3); + Bewege(n-1,p3,p2,p1); + end; +end; + +begin + ClrScr; + Step := 0; + TextMode(CO80+Font8x8); + Write('Wieviel Mnzen? '); + ReadLn(howmuchcanyoutake); + Bewege(howmuchcanyoutake,'1','2','3'); + WriteLn('Schritte: ',step); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/HASHING.PAS b/ITG/HASHING.PAS new file mode 100644 index 0000000..06ba3ee --- /dev/null +++ b/ITG/HASHING.PAS @@ -0,0 +1,66 @@ +program Hashing; + +uses Crt; + +const max=25; + +var mem: array[0..max] of integer; + x,pos: integer; + +procedure Init; +var i: integer; +begin + for i:=0 to max do mem[i] := 255; +end; + +procedure OutArray; +var i: integer; +begin + for i:=0 to max do begin + if (i/2)=(I DIV 2) then TextColor(10) else TextColor(12); + GotoXY(i*3+1,3); Write(i:3); + GotoXY(i*3+1,4); if (mem[i]<>255) then Write(mem[i]:3); + end; +end; + +function Hash(v: integer): integer; +begin + Hash := v MOD 13; +end; + +procedure MakeFree(var v: integer); +begin + if (mem[v]<>255) then begin + repeat + Inc(v); + until (mem[v]=255) OR (v>max); + end; + if (v>max) then begin + ClrScr; + TextColor(12); + WriteLn('Array berschritten! Das Feld ist VOLL!'); + Halt; + end; +end; + +procedure ReadAndSort; +var i: integer; +begin + for i:=1 to 15 do begin + GotoXY(5,5); + ReadLn(x); + pos := Hash(x); + MakeFree(pos); + mem[pos] := x; + OutArray; + end; +end; + +begin + TextBackground(0); + TextColor(15); + ClrScr; + Init; + OutArray; + ReadAndSort; +end. diff --git a/ITG/ISBN.PAS b/ITG/ISBN.PAS new file mode 100644 index 0000000..5fc7f07 --- /dev/null +++ b/ITG/ISBN.PAS @@ -0,0 +1,39 @@ +program ISBNGrab; + +uses Crt; + +var UrISBN: string; + i,j,co: integer; + +function BNS(ISBN: string;which: integer): string; +var NR: array[1..10] of string; + x,lastx,i: integer; + j: string; +begin + i := 1; + lastx := 0; + for x:=0 to Length(ISBN) do begin + if ISBN[x]='-' then begin + NR[i] := Copy(ISBN,lastx+1,x-lastx-1); + Inc(i); + lastx := x; + end; + end; + NR[i] := Copy(ISBN,lastx+1,Length(ISBN)); + if which<>0 then BNS := NR[which] else begin + Str(i:0,j); + BNS := j; + end; +end; + + +begin + Write('ISBN eintippen: '); + ReadLn(UrISBN); + Write('ISBN: ',BNS(UrISBN,1)); + Val(BNS(UrISBN,0),j,co); + for i:=2 to j do Write('-',BNS(UrISBN,i)); + WriteLn(' (',BNS(UrISBN,0),' Gruppen)'); + WriteLn('Buchnr.: ',BNS(UrISBN,3)); + ReadKey; +end. diff --git a/ITG/KLAU1_02.PAS b/ITG/KLAU1_02.PAS new file mode 100644 index 0000000..1e8f25c --- /dev/null +++ b/ITG/KLAU1_02.PAS @@ -0,0 +1,12 @@ +var a,b,cs,max: integer; + +begin + Write('max: '); + ReadLn(max); + for a:=1 to max do begin + for b:=a to max do begin + cs := Sqr(a)+Sqr(b); + if Sqrt(cs)=Int(Sqrt(cs)) then WriteLn(a,'+',b,'=',Sqrt(cs):0:0,''); + end; + end; +end. diff --git a/ITG/LOTTO.PAS b/ITG/LOTTO.PAS new file mode 100644 index 0000000..9c9cf5c --- /dev/null +++ b/ITG/LOTTO.PAS @@ -0,0 +1,114 @@ +program Lotto_Ziehung; + +uses Crt, CursorOnOff, Dos; + +const prog:char='/'; + freq=30; + pfreq=10; + +var lotto: array[1..49] of longint; + fulr: array[1..freq] of real; + fuls: byte; + pers: byte; + full: real; + isec: longint; + h,m,s,ss: word; + +procedure StartClock; +begin + GetTime(h,m,s,ss); + isec := h*3600+m*60+s; +end; + +function RunSec: longint; +var nh,nm,ns,nss: word; + nsec: longint; +begin + GetTime(nh,nm,ns,nss); + nsec := nh*3600+nm*60+ns; + RunSec := nsec-isec; +end; + +procedure Progress(how,much: real); +var wx,wy: word; + secs,tfull,rest: real; + i: byte; + fsum: real; +begin + secs := RunSec; + if (fuls0) then rest := full - secs else rest := 0; + end else begin + fsum := 0; + for i:=1 to freq do fsum := fsum + fulr[i]; + full := fsum / freq; + rest := full - secs; + fuls := 0; + end; + if (pers>pfreq) then begin + Write(prog,' [',(how/much)*100:6:2,'%] (',secs:4:0,'/',full:4:0,' ',rest:4:0,' left)'); + pers := 0; + end else begin + Write(prog); + GotoXY(WhereX+11,WhereY); + Write('(',secs:4:0); + end; + Inc(pers); + GotoXY(14,WhereY); + case prog of + '/': prog:= '-'; + '-': prog:= '\'; + '\': prog:= '|'; + '|': prog:= '/'; + end; +end; + + +procedure init; +var i:byte; +begin + { clrscr; } + fuls := 0; + full := 0; + pers := 0; + writeLn; + Randomize; +{ RandSeed := 123; } + for i:=1 to 49 do Lotto[i]:=0; +end; + +procedure Ziehung; +var i,n: longint; +begin + write('Wieviel Ziehungen? '); ReadLn(n); + StartClock; + CursorOff; + write('Berechne ... '); + for i:=1 to n do begin + if i MOD 100000=0 then Progress(i,n); + inc(Lotto[Random(49)+1]); + end; + GotoXY(wherex-1,wherey); WriteLn(' fertig! '); + CursorOn; +end; + +procedure Auswertung; +var z,i,max: byte; +begin + WriteLn('Die 6 hufigsten Ziehungen:'); + for z:=1 to 6 do begin + max:=1; + for i:=2 to 49 do if Lotto[i]>Lotto[max] then max:=i; + WriteLn(z:1,': ',max:2,' [',Lotto[max],']'); + Lotto[max]:=0; + end; +end; + +begin + init; + Ziehung; + auswertung; +end. diff --git a/ITG/MENGELOT.PAS b/ITG/MENGELOT.PAS new file mode 100644 index 0000000..8b24a8e --- /dev/null +++ b/ITG/MENGELOT.PAS @@ -0,0 +1,46 @@ +uses crt; + +type TMenge = SET of 1..49; +var Tip1, Tip2, Tip3: TMenge; + +procedure Init(var Menge: TMenge); +begin + (**) Menge := []; (**) +end; + +procedure LottoZiehung(var Zahlen: TMenge); +var anzahl, ZufZahl: byte; +begin + anzahl := 0; + repeat + repeat + ZufZahl := random(49)+1; + until NOT (**) (ZufZahl IN Zahlen) (**) ; + (**) Zahlen := Zahlen + [ZufZahl] (**) ; + (**) Inc(anzahl) (**) ; + until anzahl = 6; +end; + +procedure Ausgabe(Zahlen: TMenge); +var i: byte; +begin + for i:= (**) 1 to 49 (**) do + (**) if i IN Zahlen then write(i, ' ') (**) ; + (**) writeln (**) ; +end; + +begin + clrscr; Randomize; + + Init( (**) Tip1 (**) ); + LottoZiehung( (**) Tip1 (**) ); + Ausgabe( (**) Tip1 (**) ); + + Init( (**) Tip2 (**) ); + LottoZiehung( (**) Tip2 (**) ); + Ausgabe( (**) Tip2 (**) ); + + Init( (**) Tip3 (**) ); + LottoZiehung( (**) Tip3 (**) ); + Ausgabe( (**) Tip3 (**) ); +end. \ No newline at end of file diff --git a/ITG/MIRROR.PAS b/ITG/MIRROR.PAS new file mode 100644 index 0000000..aee105f --- /dev/null +++ b/ITG/MIRROR.PAS @@ -0,0 +1,95 @@ +program Mirroring; + +uses Crt, Graph, GUI, BGIP; + +var xmax,ymax: integer; + omx, omy, omb: integer; + lx,ly,rx,ry: integer; + orx,ory: integer; + ls,rs: boolean; + +procedure GraphInit; +var grDriver, grMode : integer; +begin + grDriver := VGA; + { VGAlo 640x200x16 + VGAmed 640x350x16 + VGAhi 640x480x16 } + grMode := VGAhi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } +end; + +procedure GraphOutit; +begin + TextMode(co80 + Font8x8); +end; + +function Num2Str(x: longint): string; +var tmp: string; +begin + Str(x:3,tmp); + Num2Str := tmp; +end; + +procedure SetRect; +begin + omx := 0; + omy := 0; + omb := 0; + lx := 0; ly := 0; + ls := false; + rs := false; + repeat + repeat + MouseStat(mx,my,mb); + until (mx<>omx) OR (my<>omy) OR (mb<>omb); + if (mb=1) AND NOT (ls) then begin + repeat + MouseStat(mx,my,mb); + until (mb=0); + lx := mx; + ly := my; + ls := true; + end; + rx := mx; + ry := my; + if (lx<>0) AND (ly<>0) AND ((rx<>orx) OR (ry<>ory)) AND NOT (rs) then begin + ShowMouse(false); + SetColor(0); + Rectangle(lx,ly,orx,ory); + SetColor(15); + Rectangle(lx,ly,rx,ry); + ShowMouse(true); + orx := rx; + ory := ry; + end; + if (lx<>0) AND (ly<>0) AND (rx<>0) AND (ry<>0) AND (mb=1) then begin + rs := true; + repeat + MouseStat(mx,my,mb); + until (mb=0); + end; + omx := mx; + omy := my; + omb := mb; + Bar(1,1,150,30); + OutTextXY(1,1,'X:'+Num2Str(mx)+' Y:'+Num2Str(my)+' Buttons:'+Num2Str(mb)); + until (ls) AND (rs); +end; + +begin + GraphInit; + fo_del := 0; + InitPalette; + MouseReset; + ShowMouse(true); + SetFillStyle(SolidFill,0); + SetTextStyle(SmallFont,HorizDir,4); + SetColor(15); + SetRect; + Alert('Fertich!!'); + FadeOut; + GraphOutit; +end. diff --git a/ITG/MITARB.PAS b/ITG/MITARB.PAS new file mode 100644 index 0000000..16ea7ea --- /dev/null +++ b/ITG/MITARB.PAS @@ -0,0 +1,86 @@ +program Mitarbeiter; + +uses Crt; + +{ 1..8 = Abteilung + 1..6 = Altersgruppe: + 1 - 16-19 + 2 - 20-24 + 3 - 25-35 + 4 - 36-49 + 5 - 50-60 + 6 - >60 + 1..2 = Geschlecht: + 1 - mnnlich + 2 - weiblich } + +var Arbeiter: array[1..8,1..6,1..2] of byte; + +procedure InitArray; +var i,j: byte; +begin + Randomize; + for i:=1 to 8 do + for j:=1 to 6 do begin + Arbeiter[i,j,1] := Random(250); + Arbeiter[i,j,2] := Random(250); + end; +end; + +function GetMalesFromAbt(abt: byte): integer; +var i: byte; + m: integer; +begin + m := 0; + for i:=1 to 6 do begin + m := m + Arbeiter[abt,i,1]; + end; + GetMalesFromAbt := m; +end; + +function GetFemsFromAbt(abt: byte): integer; +var i: byte; + f: integer; +begin + f := 0; + for i:=1 to 6 do begin + f := f + Arbeiter[abt,i,2]; + end; + GetFemsFromAbt := f; +end; + +function GetPeopleInAbt(abt: byte): integer; +var i: byte; + a: integer; +begin + a := 0; + for i:=1 to 6 do a := a + Arbeiter[abt,i,1] + Arbeiter[abt,i,2]; + GetPeopleInAbt := a; +end; + +procedure GetInfo; +var i,j: byte; + m,w: integer; +begin + m := 0; + w := 0; + for i:=1 to 8 do + for j:=1 to 6 do begin + m:=m+Arbeiter[i,j,1]; + w:=w+Arbeiter[i,j,2]; + end; + WriteLn('Anzahl mnnlicher Mitarbeiter firmenweit: ',m); + WriteLn('Anzahl weiblicher Mitarbeiter firmenweit: ',w); + for i:=1 to 8 do WriteLn('Mitarbeiter in Abteilung ',i:1,': ',GetPeopleInAbt(i):4, + ' (',GetMalesFromAbt(i):4,' Mnner/',GetFemsFromAbt(i):4,' Frauen)'); +end; + + +begin + InitArray; + ClrScr; + GetInfo; + ReadKey; + + +end. \ No newline at end of file diff --git a/ITG/NUMLOOSE.PAS b/ITG/NUMLOOSE.PAS new file mode 100644 index 0000000..9afcb33 --- /dev/null +++ b/ITG/NUMLOOSE.PAS @@ -0,0 +1,19 @@ +program NumberLoose; + +var input: string; + +function Zahl(S: string): longint; +var i: integer; + tmp: longint; +begin + tmp := 0; + for i:=1 to Length(s) do + if Ord(s[i]) IN [48..57] then tmp:=tmp*10+Ord(s[i])-48; + Zahl := tmp; +end; + +begin + Write('blabla eingeben: '); + ReadLn(input); + WriteLn('Ord vom blabla: ',Zahl(input)); +end. diff --git a/ITG/PACKEN.PAS b/ITG/PACKEN.PAS new file mode 100644 index 0000000..c51abca --- /dev/null +++ b/ITG/PACKEN.PAS @@ -0,0 +1,36 @@ +uses Crt; + +const personen: array[1..10] of string=('Bert','','Ernie','Wilma','','Fred','Barney','','Gerllheimer','Horst'); + +procedure Zaehle; +begin + +end; + +procedure Ausgabe; +var i: byte; +begin + WriteLn('<==*==>'); + for i:=1 to 10 do WriteLn(personen[i]); + ReadKey; +end; + +procedure Packe; +var i,a: integer; +begin + for i:=1 to 10 do begin + if (personen[i]='') then begin + for a:=i to 10 do begin + personen[a]:=personen[a+1]; + end; + end; + Write(i,': '); Ausgabe; + end; +end; + + +begin + Zaehle; + Packe; + Ausgabe; +end. diff --git a/ITG/PUMPE.PAS b/ITG/PUMPE.PAS new file mode 100644 index 0000000..1e553dc --- /dev/null +++ b/ITG/PUMPE.PAS @@ -0,0 +1,201 @@ +program Pumpensteuerung; + +uses Crt; + +const Full=''; + Half=''; + Empt=' '; + timemult: integer=10; + B1E: boolean=true; + B2E: boolean=true; + B1D: integer=4; + B2D: integer=4; + B1: real=2950; + B2: real=2750; + +var Y1,Y2,Y3,A,B,C,D: boolean; + x: char; + +{ 1 Behlter = 5700 l = in 2 Minuten voll } + +procedure Init; +begin + ClrScr; + TextColor(7); + GotoXY(20,18); Write('1 - B1',#127,' an/aus'); + GotoXY(20,19); Write('Q - B1',#127,'max +600'); + GotoXY(20,20); Write('A - B1',#127,'max -600'); + GotoXY(50,18); Write('2 - B2',#127,' an/aus'); + GotoXY(50,19); Write('W - B2',#127,'max +600'); + GotoXY(50,20); Write('S - B2',#127,'max -600'); + GotoXY(35,22); Write('^ - Ventil umschalten'); + GotoXY(35,23); Write('E - Zeitraffer +1'); + GotoXY(35,24); Write('D - Zeitraffer -1'); + GotoXY(33,25); Write('ESC - Simulation beenden'); + Randomize; + Y1 := false; + Y2 := false; + Y3 := false; +end; + +procedure SetLEDs; +var a: byte absolute 0:1047; +begin + a := 0; + if Y1 then Inc(a,32); + if Y2 then Inc(a,64); + if Y3 then Inc(a,16); +end; + +procedure ResetLEDs; +var a: byte absolute 0:1047; +begin + a := 32; +end; + +procedure DrawPumpe; +var i: integer; +begin + GotoXY(1,1); if Y1 then TextColor(14) else TextColor(8); Write('Y1 (NUM)'); + GotoXY(1,2); if Y2 then TextColor(14) else TextColor(8); Write('Y2 (CAPS)'); + GotoXY(1,3); if Y3 then TextColor(14) else TextColor(8); Write('Y3 (SCROLL)'); + GotoXY(1,5); if (B1E) then TextColor(15) else TextColor(8); + Write('B1',#127,'max: ',B1D*600:5,' l/min'); + GotoXY(1,6); if (B2E) then TextColor(15) else TextColor(8); + Write('B2',#127,'max: ',B2D*600:5,' l/min'); + TextColor(15); + GotoXY(1,8); Write('Zeitraffung: ',timemult:2,'x'); + + if (Y1) OR (Y2) then TextColor(11) else TextColor(7); + GotoXY(40, 5); Write(''); + if (Y1) OR (Y2) then TextColor(10+blink); Write('(P)'); + TextColor(15); + if NOT (Y1) AND NOT (Y2) then Write(' [0 l/min] '); + if NOT (Y1) AND (Y2) then Write(' [750 l/min] '); + if (Y1) AND NOT (Y2) then Write(' [1450 l/min] '); + if (Y1) AND (Y2) then Write(' [2850 l/min] '); + if (Y1) OR (Y2) then TextColor(11) else TextColor(7); + GotoXY(40, 6); Write(''); + GotoXY(39,7); if Y3 then Write(' ') else Write(' '); + + GotoXY(25,7); + if NOT (Y3) AND ((Y2) OR (Y1)) then TextColor(11) else TextColor(7); + Write(''); + GotoXY(42,7); + if (Y3) AND ((Y2) OR (Y1)) then TextColor(11) else TextColor(7); + Write('Ŀ'); + + for i:=1 to 7 do begin + if (B1E) then TextColor(15) else TextColor(8); + GotoXY(20,7+i); Write(''); + if (B1>=950*(8-i)) then Write(Full) + else if (B1>=950*(8-i)-475) then Write(Half) + else Write(Empt); + Write(''); + if (B2E) then TextColor(15) else TextColor(8); + GotoXY(50,7+i); Write(''); + if (B2>=950*(8-i)) then Write(Full) + else if (B2>=950*(8-i)-475) then Write(Half) + else Write(Empt); + Write(''); + end; + + if (B1E) then TextColor(15) else TextColor(8); + GotoXY(19,15); Write('[',B1:4:0,'l]'); + GotoXY(19,16); Write(''); + if (B2E) then TextColor(15) else TextColor(8); + GotoXY(50,15); Write('[',B2:4:0,'l]'); + GotoXY(61,16); Write(''); + + GotoXY(31,9); if (A) then TextColor(14) else TextColor(8); Write(' A'); + GotoXY(31,12); if (C) then TextColor(14) else TextColor(8); Write(' C'); + GotoXY(47,9); if (B) then TextColor(14) else TextColor(8); Write('B '); + GotoXY(47,12); if (D) then TextColor(14) else TextColor(8); Write('D '); +end; + +procedure CalcSensors; +begin + if (B1>=5700) then A := true else A := false; + if (B1>=2850) then C := true else C := false; + if (B2>=5700) then B := true else B := false; + if (B2>=2850) then D := true else D := false; +end; + +procedure CalcSteering; +begin + if (A) AND (B) AND (C) AND (D) then begin + Y1 := false; + Y2 := false; + end; + if NOT (A) AND NOT (B) AND NOT (C) AND NOT (D) then begin + Y1 := true; + Y2 := true; + end; + if ((A) AND NOT (B)) OR (NOT (A) AND (B)) AND (C) AND (D) then begin + Y1 := false; + Y2 := true; + end; + if (NOT (A) AND NOT (B) AND (C) AND (D)) + OR ((A) AND NOT (B) AND (C) AND NOT (D)) + OR (NOT (A) AND (B) AND NOT (C) AND (D)) then begin + Y1 := true; + Y2 := false; + end; + + if (A) AND NOT (B) then Y3 := true; + if (B) AND NOT (A) then Y3 := false; + if (C) AND NOT (D) then Y3 := true; + if (D) AND NOT (C) then Y3 := false; +end; + +procedure NimmWas; +var x: integer; +begin + if (B1E) then begin + x := Round(Random(B1D*2)/2)*timemult; + if (B1-x<0) then B1 := 0 else B1 := B1 - x; + end; + if (B2E) then begin + x := Round(Random(B2D*2)/2)*timemult; + if (B2-x<0) then B2 := 0 else B2 := B2 - x; + end; +end; + +procedure Pump; +var sp: real; +begin + if NOT (Y1) AND NOT (Y2) then sp := 0; + if NOT (Y1) AND (Y2) then sp := 750 / (600/timemult); + if (Y1) AND NOT (Y2) then sp := 1450 / (600/timemult); + if (Y1) AND (Y2) then sp := 2850 / (600/timemult); + + if (Y3) then B2 := B2 + sp else B1 := B1 + sp; +end; + +begin + Init; + repeat + CalcSensors; + CalcSteering; + SetLEDs; + NimmWas; + DrawPumpe; + Pump; + Delay(100); + if (keypressed) then x := ReadKey else x := #000; + if (x<>#000) then begin + case x of + '1','!': if (B1E) then B1E := false else B1E := true; + '2','"': if (B2E) then B2E := false else B2E := true; + 'q','Q': if B1D<20 then Inc(B1D); + 'a','A': if B1D>0 then Dec(B1D); + 'w','W': if B2D<20 then Inc(B2D); + 's','S': if B2D>0 then Dec(B2D); + '^','': if (Y3) then Y3 := false else Y3 := true; + 'e','E': if timemult<50 then Inc(timemult); + 'd','D': if timemult>1 then Dec(timemult); + end; + end; + until x=#027; + ResetLEDs; +end. diff --git a/ITG/QUERSUM.PAS b/ITG/QUERSUM.PAS new file mode 100644 index 0000000..f4c1dd9 --- /dev/null +++ b/ITG/QUERSUM.PAS @@ -0,0 +1,23 @@ +program Quersumme; + +var Zahl: longint; + +function Quer(zahl: longint): integer; +var conv: string; + i,q,tmp,ec: integer; + +begin + Str(zahl,conv); + q := 0; + for i:=1 to Length(conv) do begin + Val(conv[i],tmp, ec); + if ec=0 then q:=q + tmp; + end; + Quer := q; +end; + +begin + Write('Tipp ''ne Ganzzahl ein: '); + ReadLn(Zahl); + WriteLn('Quersumme von ',Zahl:0,' ist ',Quer(Zahl),'.'); +end. \ No newline at end of file diff --git a/ITG/QUICKSOR.PAS b/ITG/QUICKSOR.PAS new file mode 100644 index 0000000..8f6f8d7 --- /dev/null +++ b/ITG/QUICKSOR.PAS @@ -0,0 +1,23 @@ +procedure quicksort(anfang,ende : integer; var f : feldtyp); +var links, rechts : integer; + h, vgl : elementtyp; +begin + links := anfang; rechts := ende; vgl := f[(links+rechts) div 2]; + + if links < rechts then + begin + repeat + while f[links]< vgl do inc(links); + while f[rechts]> vgl do dec(rechts); + if links <= rechts then + begin + h:=f[links]; + f[links]:= f[rechts]; + f[rechts]:=h; + inc(links); dec(rechts); + end; + until links > rechts; + quicksort(anfang,rechts,f); + quicksort(links,ende,f); + end; +end; diff --git a/ITG/RECORDS.PAS b/ITG/RECORDS.PAS new file mode 100644 index 0000000..c46d976 --- /dev/null +++ b/ITG/RECORDS.PAS @@ -0,0 +1,12 @@ +program Records; + +uses Crt; + +type TAdr=record + N,V: string; + A: byte; + end; + +var Adr1, Adr2: TAdr; + +begin diff --git a/ITG/REKGRAF1.PAS b/ITG/REKGRAF1.PAS new file mode 100644 index 0000000..8bcfd44 --- /dev/null +++ b/ITG/REKGRAF1.PAS @@ -0,0 +1,93 @@ +Uses CRT,Graph; +var globalwinkel:integer; + graphdriver,graphmode:integer; + +Procedure GrafikAn; +begin + graphdriver:=detect; + initgraph(graphdriver,graphmode,'F:\SPRACHEN\BP\BGI'); + setgraphmode(graphmode); +end; +Procedure GrafikAus; +begin + clearviewport; + restorecrtmode; + closegraph; +end; +Procedure Init; +begin + clearviewport; + setcolor(14); + moveto (230,400); + globalwinkel:=0; +end; + +Procedure turnleft (var winkel:integer); +begin + globalwinkel:=(globalwinkel-winkel) mod 360 +end; +Procedure turnright (var winkel:integer); +begin + globalwinkel:=(globalwinkel+winkel) mod 360 +end; +Procedure forwd (strecke:integer); +var hilf:real; +begin + hilf:=globalwinkel*pi/180; + linerel(round(strecke*cos(hilf)), + round(strecke*sin(hilf))) +end; + +Procedure Haken(Laenge,Winkel : integer); +begin + if Laenge > 1 then + begin + Haken(Laenge - 1, Winkel); + Forwd(Laenge); + TurnLeft(Winkel); + end; +end; + +Procedure Quadrat(Laenge,Winkel:integer); +Var seite:integer; +begin + if laenge >1 then + begin + for Seite := 1 to 4 do + begin + forwd(laenge); + Turnleft(winkel); + end; + quadrat((Laenge*3) div 4,Winkel); + end; +end; + +procedure spirale(laenge,winkel:integer); +begin + Forwd(Laenge div 2); + Turnright(Winkel); + if laenge < 80 then Spirale(laenge+1,winkel); +end; + +procedure skier(laenge,ecke:integer); +var n : byte; + w : integer; +begin + w := 360 div ecke; + if laenge > 30 then + for n := 1 to ecke do + begin + forwd(laenge); + turnleft(w ); + skier(laenge div 2,ecke); + end; +end; + +begin + GrafikAn; + init; skier(120,10); readkey; + init; Haken(150,45); readkey; + init; Quadrat(150,90); readkey; + init; Spirale(10,25); readkey; + GrafikAus; +end. \ No newline at end of file diff --git a/ITG/REPSTRNG.PAS b/ITG/REPSTRNG.PAS new file mode 100644 index 0000000..0002234 --- /dev/null +++ b/ITG/REPSTRNG.PAS @@ -0,0 +1,33 @@ +program ConvUmlaut; + +uses Crt; + +var mystr: string; + +procedure ChangeAll(var text: string; what, targ: string); +var x: byte; +begin + while Pos(what,text) > 0 do begin + x := Pos(what,text); + Delete(text,x,1); + Insert(targ,text,x); + end; +end; + +begin + ClrScr; + mystr := 'x'; + while mystr<>'' do begin + Write('Dein Text mit Umlauten: '); + ReadLn(mystr); + ChangeAll(mystr,'','ae'); + ChangeAll(mystr,'','oe'); + ChangeAll(mystr,'','ue'); + ChangeAll(mystr,'','AE'); + ChangeAll(mystr,'','OE'); + ChangeAll(mystr,'','UE'); + ChangeAll(mystr,'','ss'); + Write('Dein Text ohne Umlaute: '); + WriteLn(mystr); + end; +end. \ No newline at end of file diff --git a/ITG/ROBOCARD.PAS b/ITG/ROBOCARD.PAS new file mode 100644 index 0000000..b7767d3 --- /dev/null +++ b/ITG/ROBOCARD.PAS @@ -0,0 +1,91 @@ +program RoboCarder; + +{ MOD-10 algorithm + + first digit: kind of credit card ( 3-AMEX, 4-VISA, 5-MC ) + + length + ------ + AMEX - 15 digits + VISA - 16 digits, sometimes 13 + all other - 16 digits + + validation + ---------- + begin at the rightmost digit and go to the left. + the odd digits are all sum'd up. the even (every 2nd) digits are + multiplied by 2. if the result is greater than 9, 9 is substracted. + this resulting value is added to the sum. + + sum MOD 10 must be 0. + +} + + +uses Crt; + +const bigdigit: array[0..9,1..3] of string[5] = ( ('23332','10001','03330'), + { 1 } ('02100','00100','00300'), + { 2 } ('33332','23330','33333'), + { 3 } ('33332','03332','33330'), + { 4 } ('10010','33313','00030'), + { 5 } ('13333','33332','33330'), + { 6 } ('23333','13332','03330'), + { 7 } ('33313','02300','30000'), + { 8 } ('23332','23332','03330'), + { 9 } ('23332','03331','33330')); + +var inp: string[16]; + +procedure CheckValidity(x: string); +var i,sum,tmp,ec: integer; +begin + WriteLn('Number length: ',Length(x)); + Val(x[1],tmp,ec); + case tmp of + 3: WriteLn('Type: American Express'); + 4: WriteLn('Type: VISA'); + 5: WriteLn('Type: MasterCard'); + end; + sum := 0; + for i:=1 to Length(x) do begin + Val(x[Length(x)-i+1],tmp,ec); + if i MOD 2=0 then tmp := tmp*2; + if tmp>9 then tmp := tmp-9; + sum := sum + tmp; + end; + WriteLn('Quersumme: ',sum); + if sum MOD 10=0 then WriteLn('VALID') else WriteLn('INVALID!!!'); +end; + +procedure BigWrite(w: string;x,y: word); +var i,j,k,ec: integer; + tmp: byte; +begin + for k:=1 to Length(w) do begin + for j:=1 to 3 do begin + GotoXY(x+(k-1)*6,y+j-1); + for i:=1 to 5 do begin + Val(w[k],tmp,ec); + case bigdigit[tmp,j][i] of + '0': Write(' '); + '1': Write(''); + '2': Write(''); + '3': Write(''); + end; + end; + end; + end; +end; + +begin + ClrScr; + GotoXY(1,7); + Write('Enter Credit Card number: '); + ReadLn(inp); + BigWrite(Copy(inp,1,8),1,1); + BigWrite(Copy(inp,9,8),1,4); + GotoXY(1,8); + CheckValidity(inp); + ReadKey; +end. diff --git a/ITG/SATZANAL.PAS b/ITG/SATZANAL.PAS new file mode 100644 index 0000000..6be0965 --- /dev/null +++ b/ITG/SATZANAL.PAS @@ -0,0 +1,87 @@ +program Sentencizer; + +uses Crt, VFx; + +type TZeichenMenge = Set of Char; + +var Ziffern, Buchstaben, Sonstige, + Vokale, Konsonanten, Urmenge, Umlaute: TZeichenMenge; + Zi, Bu, So, Vo, Um, Leer, i : byte; + Satz : String[80]; + + +procedure Input; +begin + Write('Bitte den Satz eingeben: '); + ReadLn(Satz); + WriteLn(' ==> Dankeschn!'); + Zi := 0; + Bu := 0; + So := 0; + Vo := 0; + Um := 0; + Leer := 0; + Ziffern := ['0'..'9']; + Buchstaben := ['a'..'z','A'..'Z']; + Sonstige := ['!'..'}']-(Ziffern + Buchstaben); + Vokale := ['a','e','i','o','u','A','E','I','O','U']; + Umlaute := ['','','','','','']; + Konsonanten := Buchstaben - Vokale; + Urmenge := []; +end; + +procedure Analyze; +begin + Write(MultiChar('-',80)); + Write('Analyse luft: Durchzhlen ... '); + for i:=1 to Length(Satz) do begin + if Satz[i] IN Buchstaben then Inc(Bu) + else if Satz[i] IN Ziffern then Inc(Zi) + else if Satz[i] IN Umlaute then Inc(Um) + else if Satz[i]=' ' then Inc(Leer) + else Inc(So); + if Satz[i] IN Vokale then Inc(Vo); + Urmenge := Urmenge + [Satz[i]]; + end; + Write('Ausstreichen ... '); + Vokale := Vokale * Urmenge; + Konsonanten := Konsonanten * Urmenge; + Ziffern := Ziffern * Urmenge; + Umlaute := Umlaute * Urmenge; + Sonstige := Sonstige * Urmenge; + WriteLn('fertig!'); +end; + +procedure OutputSet(which: TZeichenMenge); +var Ch: char; +begin + for Ch:=' ' to '' do + if Ch IN which then Write(Ch); + WriteLn; +end; + +procedure Output; +begin + Write(MultiChar('-',80)); + WriteLn('Originalsatz: ',Satz); + WriteLn('Anzahl Buchstaben: ',Bu); + WriteLn('Anzahl Vokale : ',Vo,' -- Konsonanten: ',Bu-Vo); + WriteLn('Anzahl Umlaute : ',Um); + WriteLn('Anzahl Ziffern : ',Zi); + WriteLn('Anzahl Leerzeichn: ',Leer); + WriteLn('Anzahl sonstiges : ',So); + WriteLn; + Write('Vokale : '); OutputSet(Vokale); + Write('Konsonanten: '); OutputSet(Konsonanten); + Write('Umlaute : '); OutputSet(Umlaute); + Write('Ziffern : '); OutputSet(Ziffern); + Write('sonstiges : '); OutputSet(Sonstige); +end; + + +begin + ClrScr; + Input; + Analyze; + Output; +end. \ No newline at end of file diff --git a/ITG/SEARCH.PAS b/ITG/SEARCH.PAS new file mode 100644 index 0000000..d24844d --- /dev/null +++ b/ITG/SEARCH.PAS @@ -0,0 +1,75 @@ +program Searches; + +const max=30000; + +var F: array[1..max] of word; + S4: word; + sp: integer; + comp: integer; + +procedure Init; +var x: word; + i: word; +begin + comp := 0; + x := 0; + for i:=1 to max do begin + x := x + Random(3) + 1; + F[i] := x; + end; +end; + +procedure SearchFor; +var x: integer; +begin + WriteLn('Geben Sie die Arrayposition des zu suchenden Elements ein!'); + Write('(Zahl zwischen 1 und ',max:0,'): '); + ReadLn(x); + S4 := F[x]; + Write('Suche jetzt nach ',S4,' '); +end; + +function bin_searchrekursiv(left, right, key: word): word; +var x,n: word; +begin + Inc(comp); + Write('.'); + if left>right then bin_searchrekursiv:=0 + else begin + x := (left+right) DIV 2; + if key < F[x] then bin_searchrekursiv:=bin_searchrekursiv(left, x-1, key) + else if key > F[x] then bin_searchrekursiv:=bin_searchrekursiv(x+1,right, key) else bin_searchrekursiv := x; + end; +end; + +function bin_searchiterativ(key: word): word; +var left, right, x: word; +begin + left := 1; + right := max; + repeat + x := (left + right) DIV 2; + if keyright); + if key=F[x] then bin_searchiterativ := x + else bin_searchiterativ := 0; +end; + +procedure Stats; +begin + WriteLn(' gefunden an Stelle ',sp:0); + Write(comp:0,' Vergleichsoperation'); + if (comp>1) then WriteLn('en') else WriteLn; +end; + +begin + Randomize; + Init; + SearchFor; + { sp := bin_searchiterativ(S4); } + sp := bin_searchrekursiv(1,max,S4); + Stats; + WriteLn('<=======****=======>'); +end. diff --git a/ITG/SECHSER.PAS b/ITG/SECHSER.PAS new file mode 100644 index 0000000..b728aea --- /dev/null +++ b/ITG/SECHSER.PAS @@ -0,0 +1,50 @@ +program Sechsen; + + +var take: longint; + sixs: longint; + thrw: longint; + succ: boolean; + +function Throw: byte; +begin + Throw := Random(6)+1; +end; + +procedure TripleThrowUntilSix; +var i,t: byte; +begin + Write(take:5,'#',sixs:5,'#',thrw:8,' : '); + succ := false; + for i:=1 to 3 do begin + t:=Throw; + Write(t,' '); + Inc(thrw); + if t=6 then begin + WriteLn; + Inc(sixs); + Inc(take); + Exit; + end; + end; + Inc(take); + WriteLn; +end; + +begin + sixs := 0; + thrw := 0; + take := 0; + Randomize; + repeat + TripleThrowUntilSix; + until take=1000; + WriteLn(' TAKE sixes throws : # # #'); + WriteLn('<===========>'); + WriteLn('Takes: ',take); + WriteLn('Sixes: ',sixs); + WriteLn('Fails: ',thrw-sixs); + WriteLn('Thrws: ',thrw); + WriteLn('Quota of throws: ',(sixs/thrw)*100:3:2,' per cent'); + WriteLn('Quota of takes : ',(sixs/take)*100:3:2,' per cent'); +end. diff --git a/ITG/SORT.PAS b/ITG/SORT.PAS new file mode 100644 index 0000000..1f5b5d7 --- /dev/null +++ b/ITG/SORT.PAS @@ -0,0 +1,202 @@ +program Sorts; + +uses Crt, VFx; + +const max = 200; + +type elementtype = integer; + Arraytype = array[0..max] of elementtype; + +var count: integer; + xarr: arraytype; + oarr: arraytype; + +procedure Banner(what: string); +begin + drwdmax:=0; + DrawBorder(Length(what) DIV 2+5,3,15,1,6); + Write(' ',what); + ReadKey; + Window(1,1,80,50); + TextBackground(0); + ClrScr; +end; + +procedure Check(var f:arraytype); +var i,cnt: integer; +begin + i:=0; + cnt:=0; + repeat + Inc(i); + Inc(cnt); + until (F[i]=0) AND (F[i-1]=0); + F[0] := cnt; +end; + +procedure Init; +begin + TextMode(co80 + Font8x8); + Randomize; +end; + +(*************************************************************************** + ************ Array-Initialisierungen ************************************** + ***************************************************************************) + +procedure Init_clear(var f:arraytype); +var i: integer; +begin + for i:=1 to max do F[i]:=0; +end; + +procedure Init_Random(var f:arraytype); +var i: integer; +begin + { for i:=1 to max do f[i]:=(Random(65535)-32767); } + for i:=1 to max do f[i]:=Random(32768); + F[0]:=max; +end; + +procedure Init_Inc(var f:arraytype); +var i: integer; +begin + for i:=1 to max do F[i]:=i; + F[0]:=max; +end; + +procedure Init_Dec(var f:arraytype); +var i: integer; +begin + for i:=1 to max do F[i]:=max-i+1; + F[0]:=max; +end; + + + +procedure OutArray(f: arraytype; var fo: arraytype); +const maxlines=50; +var i: integer; +begin + for i:=1 to F[0] do begin + if i<=maxlines then GotoXY(1,i) + else if i<=maxlines*2 then GotoXY(20,i-maxlines) + else if i<=maxlines*3 then GotoXY(40,i-maxlines*2) + else if i<=maxlines*4 then GotoXY(60,i-maxlines*3); + TextColor(7); + Write(i:3,': '); + if (F[i]<>Fo[i]) then TextColor(14) else TextColor(7); + Write(F[i]:10); + { Delay(5); } + end; + fo := f; +{ ReadKey; } + Delay(100); +end; + +procedure Swap(var x1,x2: elementtype); +var tmp: elementtype; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + + +procedure Sort_Bubblesort(var f:arraytype); +var i: integer; + canswap: boolean; + tmp: elementtype; +begin + repeat + canswap:=false; + for i:=1 to F[0]-1 do begin + if F[i]>F[i+1] then begin + Swap(F[i],F[i+1]); + canswap := true; + end; + end; + until (NOT canswap); +end; + +procedure Sort_Simple(var f:arraytype); +var i,j: integer; + tmp: elementtype; +begin + for i:=1 to F[0]-1 do + for j:=i+1 to F[0] do + if F[j]2) then Dec(j) else exit; + end; + f[j+1] := h; + OutArray(xarr,oarr); + end; +end; + +procedure Sort_Shellsort(n: integer; var f:arraytype); +var i,j,k,m: integer; + goon: boolean; + hilf: elementtype; +begin + m := n DIV 2; + repeat + for i:=1 to n-m do begin + while f[i+m] < f[i] do begin + hilf := f[i+m]; + j := i; + goon := true; + while (j>0) AND goon do begin + if hilf0 then halt(1); +END; + +{Zufallszahlen erzeugen} +PROCEDURE zufall(n : integer;var a : feld_); +VAR i : integer; + BEGIN + randomize; + for i:=1 to n do + a[i]:=random(n)+1; + END; + + + { "Je nachdem, wie tief die Spalte geht!" (Zitat: Frbel) } +PROCEDURE combsortdar; +VAR x : feld_; + s,s1,s2 : string; + sorted : boolean; + i,j,top,gap,h,n,z,z1,z2 : integer; + + BEGIN + n:=25;z:=0;z1:=0;z2:=0; + setfillstyle(1,0);setcolor(15); + bar(0,0,getmaxx,getmaxy); + zufall(n,x); + for i:=1 to n do begin + str(x[i],s); + if x[i]<10 then s:='0'+s; + outtextxy(50+i*20,100,s); + end; + outtextxy(70,320,'Vergleichsabstand : 25'); + outtextxy(70,300,'Durchgang : 00'); + outtextxy(70,350,'Vertauschungen : 00'); + outtextxy(70,360,'Vergleiche : 00'); + gap:=n; + repeat + inc(z); + gap:=trunc(gap/1.3); { Neue Schrittweite } + if gap=0 then gap:=1 + else + if (gap=9) or (gap=10) then gap:=11; + setcolor(red); + str(gap,s);if gap<10 then s:='0'+s; + bar(230,320,250,330);outtextxy(230,320,s); + setcolor(15); + str(z,s);if z<10 then s:='0'+s; + bar(230,300,250,310);outtextxy(230,300,s); + sorted:=true; { Variable auf "sortiert" setzen } + top:=n-gap; { Obergrenze fr Sortieren festlegen } + for i:=1 to top do begin + inc(z1); + setcolor(15); + str(z1,s);if z1<10 then s:='0'+s; + bar(230,360,250,370);outtextxy(230,360,s); + setcolor(blue); + str(x[i],s1);if x[i]<10 then s1:='0'+s1; + outtextxy(50+i*20,100,s1); + str(x[i+gap],s2);if x[i+gap]<10 then s2:='0'+s2; + outtextxy(50+(i+gap)*20,100,s2); + setcolor(green); + line(60+i*20,95,60+i*20,80); + line(60+(i+gap)*20,95,60+(i+gap)*20,80); + line(60+i*20,80,60+(i+gap)*20,80); + bar(20,65,600,75); + outtextxy(16+round((i+gap/2)*20),65,'VERGLEICHEN'); + delay(100); + bar(20,65,600,75); + if x[i]>x[i+gap] then begin { Vergleich von Elementen im Abstand "gap" } + inc(z2); + setcolor(15); + str(z2,s);if z2<10 then s:='0'+s; + bar(230,350,250,358);outtextxy(230,350,s); + setcolor(green); + outtextxy(16+round((i+gap/2)*20),65,'VERTAUSCHEN'); + for j:=100 to 120 do begin + setcolor(blue); + outtextxy(50+i*20,j,s1); + outtextxy(50+(i+gap)*20,50+j div 2,s2); + delay(1); + bar(50+i*20,j,70+i*20,j+10);bar(50+(i+gap)*20,50+j div 2,70+(i+gap)*20,60+j div 2); + end; + for j:=1 to (gap*20) do begin + setcolor(blue); + outtextxy(50+i*20+j,120,s1); + outtextxy(50+(i+gap)*20-j,110,s2); + delay(1); + bar(50+i*20+j,120,70+i*20+j,130);bar(50+(i+gap)*20-j,110,70+(i+gap)*20-j,120); + end; + for j:=120 downto 100 do begin + setcolor(blue); + outtextxy(50+i*20,j,s1); + outtextxy(50+(i+gap)*20,50+j div 2,s2); + delay(1); + bar(50+i*20,j,70+i*20,j+10);bar(50+(i+gap)*20,50+j div 2,70+(i+gap)*20,60+j div 2); + end; + bar(20,65,600,75); + h:=x[i];x[i]:=x[i+gap];x[i+gap]:=h; { Vertauschung, wenn "falsch" } + sorted:=false; { Variable auf "nicht fertig sortiert" setzen } + end; + setcolor(0); + line(60+i*20,95,60+i*20,80); + line(60+(i+gap)*20,95,60+(i+gap)*20,80); + line(60+i*20,80,60+(i+gap)*20,80); + setcolor(15); + str(x[i],s1);if x[i]<10 then s1:='0'+s1; + outtextxy(50+i*20,100,s1); + str(x[i+gap],s2);if x[i+gap]<10 then s2:='0'+s2; + outtextxy(50+(i+gap)*20,100,s2); + end; + until sorted and (gap=1); + END; + +PROCEDURE auswahl; +VAR c : char; + BEGIN + repeat + setfillstyle(1,0); + bar(0,0,getmaxx,getmaxy); + setcolor(15); + outtextxy(260,100,'C O M B S O R T'); + outtextxy(260,120,'###############'); + outtextxy(220,200,'1...DEMONSTRATION'); + outtextxy(220,220,'2...ENDE'); + + repeat + c:=readkey; + until c<>''; + case c of + '1': combsortdar; + end; + until c='2'; + END; +BEGIN + graf; + auswahl; + closegraph; +END. diff --git a/ITG/TEST1_02.PAS b/ITG/TEST1_02.PAS new file mode 100644 index 0000000..e289e40 --- /dev/null +++ b/ITG/TEST1_02.PAS @@ -0,0 +1,29 @@ +program SortName; + +uses Crt; + +var Nam: array[1..3] of string; + i: integer; + +procedure Swap(var i1,i2: string); +var tmp: string; +begin + tmp := i1; + i1 := i2; + i2 := tmp; +end; + +begin + for i:=1 to 3 do begin + Write('Geben Sie den ',i,'. Namen ein: '); + ReadLn(Nam[i]); + end; + if Nam[3]ylen then max:=xlen else max:=ylen; + DDel:=400 DIV max; + for i:=0 to max do begin + tox:=(xlen*i) DIV max; + toy:=(ylen*i) DIV max; + + for j:=0 to 100 do begin + xc := (x1+(tox*(100-j) DIV 100)); + yc := (y1+(toy*j DIV 100)); + if (xc>x1) AND (yc>y1) AND (xcx1) AND (yc>y1) AND (xc=1) AND (ay<=20) AND (ax>=1) AND (ax<=20) then Write(Quadrat[ay,ax]); + case dir of + 1: Dec(ay); + 2: begin Inc(ax); Dec(ay); end; + 3: Inc(ax); + 4: begin Inc(ax); Inc(ay); end; + 5: Inc(ay); + 6: begin Dec(ax); Inc(ay); end; + 7: Dec(ax); + 8: begin Dec(ax); Dec(ay); end; + end; + Dec(i); + until i=0; + Delay(30); + TextBackground(0); + TextColor(15); +end; + +procedure Search(what: string); +var i,j,k: byte; + ox,oy: byte; + tmp: string; +begin + TextBackground(0); + ox:=1; + oy:=1; + for i:=1 to 20 do begin + for j:=1 to 20 do begin + (* Mark(j,i,1,1,9,1); *) + if (Quadrat[i,j]=what[1]) then begin + for k:=1 to 8 do begin + tmp:=Get(j,i,k,Length(what)); + (* Mark(j,i,k,Length(what),0,1); *) + if tmp=what then begin + Window(5,30,75,46); + GotoXY(ox,oy); + Inc(times); + WriteLn('Hab ''',what,''' bei (',j:2,'|',i:2,') gefunden. Richtung ',k,', Lnge ',Length(what)); + ox:=WhereX; oy:=WhereY; + Window(1,1,80,50); + Mark(j,i,k,Length(what),0,7); + Delay(50); + end; + (* Mark(j,i,k,Length(what),15,1); *) + end; + end; + (* Mark(j,i,1,1,15,1); *) + end; + end; + window(5,30,75,46); + GotoXY(ox,oy); + if (times=0) then begin + WriteLn('Hab nix gefunden - versuch'' was anderes.'); + end; +end; + +procedure ClearErg; +begin + DrawBorder(3,28,77,47,DesktopCol,DesktopCol); + DrawBorder(3,28,77,47,15,0); +end; + +begin + Init; + repeat + times:=0; + { WriteMash; } + ClearErg; + Input; + if (whats<>'') then begin + Search(whats); + WriteLn; + WriteLn('[ Taste drcken, um fort zu fahren ]'); + window(1,1,80,50); + ReadKey; + end; + until whats=''; + Outit; +end. \ No newline at end of file diff --git a/ITG/TIMECALC.PAS b/ITG/TIMECALC.PAS new file mode 100644 index 0000000..2d7e3a7 --- /dev/null +++ b/ITG/TIMECALC.PAS @@ -0,0 +1,137 @@ +program TimeCalc; { Unterrichtsstoff der 12. Klasse - Lsung von Markus Birth } + +uses Crt,Strings; + +var tstr: string[40]; + h1,m1,s1,hs1: integer; + h2,m2,s2,hs2: integer; + hf,mf,sf,hsf: integer; + +procedure GetData(which: string;var h,m,s,hs: integer); +var i,ec,tmp,oldi: integer; +begin + Write('Geben Sie die ',which,' Zeit ein [hh:mm.ss,tt]: '); + ReadLn(tstr); + oldi := 1; + for i:=1 to Length(tstr) do begin + if ((tstr[i]=':') OR (tstr[i]='.') OR (tstr[i]=',')) then begin + Val(Copy(tstr,oldi,i-oldi),tmp,ec); + oldi := i+1; + case tstr[i] of + ':': h:=tmp; + '.': m:=tmp; + ',': s:=tmp; + end; + end; + end; + Val(Copy(tstr,oldi,Length(tstr)-oldi+1),tmp,ec); + hs:=tmp; +end; + +procedure AddData(h1,m1,s1,hs1,h2,m2,s2,hs2: integer; var hf,mf,sf,hsf: integer; Add: boolean); +begin + if Add then begin + hsf := hs1 + hs2; + sf := s1 + s2; + mf := m1 + m2; + hf := h1 + h2; + + sf := sf + hsf DIV 100; + hsf := hsf MOD 100; + + mf := mf + sf DIV 60; + sf := sf MOD 60; + + hf := hf + mf DIV 60; + mf := mf MOD 60; + end else begin + hsf := hs1 - hs2; + sf := s1 - s2; + mf := m1 - m2; + hf := h1 - h2; + + while hsf<0 do begin + hsf := hsf + 100; + sf := sf - 1; + end; + + while sf<0 do begin + sf := sf + 60; + mf := mf - 1; + end; + + while mf<0 do begin + mf := mf + 60; + hf := hf - 1; + end; + end; +end; + +procedure TimeOut(h,m,s,t: integer); +begin + WriteLn(h:2,':',m:2,'.',s:2,'''',t:2,''''''); +end; + +procedure DataOut(Add: boolean); +begin + Write(' '); + TimeOut(h1,m1,s1,hs1); + if Add then Write('+') else Write('-'); + TimeOut(h2,m2,s2,hs2); + WriteLn(''); + AddData(h1,m1,s1,hs1,h2,m2,s2,hs2,hf,mf,sf,hsf,Add); + Write(' '); + TimeOut(hf,mf,sf,hsf); + WriteLn(''); +end; + +procedure SwapVals(var h1,m1,s1,t1,h2,m2,s2,t2: integer); +var tmp: integer; +begin + tmp := h1; + h1 := h2; + h2 := tmp; + + tmp := m1; + m1 := m2; + m2 := tmp; + + tmp := s1; + s1 := s2; + s2 := tmp; + + tmp := t1; + t1 := t2; + t2 := tmp; +end; + +procedure Time2Secs(h,m,s: integer; var sec: longint); +begin + sec := h*3600 + m*60 + s; +end; + +procedure Secs2Time(sec: longint; var h,m,s: integer); +begin + h := sec div 3600; + sec := sec mod 3600; + m := sec div 60; + s := sec mod 60; +end; + +begin + ClrScr; + GetData(' erste',h1,m1,s1,hs1); + GetData('zweite',h2,m2,s2,hs2); + Window(1,4,26,10); + DataOut(true); + Window(26,4,52,10); + DataOut(false); + Window(52,4,78,10); + SwapVals(h1,m1,s1,hs1,h2,m2,s2,hs2); + DataOut(false); + Window(1,1,80,25); + GotoXY(1,11); + WriteLn; + WriteLn('*** Bitte drcken Sie eine Taste ***'); + ReadKey; +end. diff --git a/ITG/VISUAL.PAS b/ITG/VISUAL.PAS new file mode 100644 index 0000000..fef841b --- /dev/null +++ b/ITG/VISUAL.PAS @@ -0,0 +1,347 @@ +program Visualization; + +uses Crt, Graph, BGIP; + +const CompareColor = 14; + HaveToSwapC = 12; + MarkDelay = 500; + Bool_Active = 11; + Bool_AText = 0; + Bool_Disabl = 9; + Bool_DText = 15; + +var xmax, ymax, xmed, ymed: word; + xarr: array[1..10] of byte; + +procedure InitGraphics; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x,tmp); + V2S := tmp; +end; + +procedure SwapVal(var x1,x2: integer); +var tmp: integer; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + +procedure SwapValB(var x1,x2: byte); +var tmp: byte; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + +procedure InitArray; +var i: byte; +begin + Randomize; + for i:=1 to 10 do xarr[i] := Random(256); +end; + +procedure MakeBox(el: byte;x,y: integer); +var tw: word; +begin + SetTextJustify(CenterText,CenterText); + tw := TextWidth(V2S(xarr[el])); + SetFillStyle(SolidFill,1); + Bar(x-tw DIV 2-2,y-5,x+tw DIV 2+2,y+5); + SetColor(11); + SetLineStyle(SolidLn,0,NormWidth); + Rectangle(x-tw DIV 2-2,y-5,x+tw DIV 2+2,y+5); + SetColor(15); + OutTextXY(x,y+1,V2S(xarr[el])); +end; + +procedure ClearBox(el: byte;x,y: integer); +var tw: word; +begin + SetFillStyle(SolidFill,0); + tw := TextWidth(V2S(xarr[el])); + Bar(x-tw DIV 2-2,y-5,x+tw DIV 2+2,y+5); +end; + +procedure OutArrayPlain(title: string); +var i: byte; +begin + ClearViewPort; + for i:=1 to 10 do begin + MakeBox(i,64*i-32,40); + SetColor(7); + OutTextXY(64*i-32,30,V2S(i)); + end; + SetColor(14); + OutTextXY(320,15,title); +end; + +procedure Mark(el,col: byte); +var tw: word; + x : integer; +begin + tw := TextWidth(V2S(xarr[el])); + x := 64*el-32; + SetColor(col); + SetLineStyle(SolidLn,0,ThickWidth); + Line(x-tw DIV 2-2,48,x+tw DIV 2+2,48); +end; + +procedure Connect(el1,el2,col,depth: byte); +var x: integer; +begin + SetColor(col); + Mark(el1,col); + Mark(el2,col); + x := 64*el1-32; + MoveTo(x,49); + SetLineStyle(SolidLn,0,NormWidth); + LineTo(x,49+depth*20); + x := 64*el2-32; + LineTo(x,49+depth*20); + LineTo(x,49); +end; + +procedure ClearConns; +begin + SetFillStyle(SolidFill,0); + Bar(5,47,635,149); +end; + +procedure Swap(el1,el2: byte); +var i: integer; + x1,x2: integer; + lo,hi: integer; + m1,m2: integer; + SwapDelay: integer; +begin + if (el1=el2) then Exit; + x1 := 64*el1-32; + x2 := 64*el2-32; + if (x20) then begin + Mark(el,10); + SetLineStyle(SolidLn,0,NormWidth); + MoveTo(64*el-32,49); + LineTo(64*el-32,320+depth*10); + LineTo(TextWidth(OT)+10,320+depth*10); + Delay(MarkDelay); + SetColor(0); + MoveTo(64*el-32,49); + LineTo(64*el-32,320+depth*10); + LineTo(TextWidth(OT)+10,320+depth*10); + SetColor(CompareColor); + MoveTo(64*el-32,49); + LineTo(64*el-32,69); + Mark(el,CompareColor); + end; +end; + +procedure Bool(text1,text2: string;what: boolean;depth: byte); +var OT: string; +begin + SetTextJustify(CenterText,CenterText); + if (what) then begin + SetFillStyle(SolidFill,Bool_Active); + SetColor(Bool_AText); + OT := text1; + end else begin + SetFillStyle(SolidFill,Bool_Disabl); + SetColor(Bool_DText); + OT := text2; + end; + Bar(320,240+(depth-1)*20,639,240+(depth)*20); + OutTextXY(480,240+(depth)*20-10,OT); +end; + +{########################################################################### + ########################################################################### + ##################### SORTIER ALGORITHMEN ################################# + ########################################################################### + ###########################################################################} + +procedure Sort_Simple; +var i,j: integer; +begin + for i:=1 to 9 do + for j:=i+1 to 10 do begin + Connect(i,j,CompareColor,1); + Delay(MarkDelay); + if xarr[j]minpos) then begin + Connect(i,minpos,HaveToSwapC,1); + Delay(MarkDelay); + ClearConns; + end; + Swap(i,minpos); + end; +end; + +procedure Sort_Bubblesort; +var i: integer; + canswap: boolean; +begin + repeat + canswap:=false; + Bool('Konnte was tauschen','Konnte (noch) nichts tauschen',canswap,1); + for i:=1 to 9 do begin + Connect(i,i+1,CompareColor,1); + Delay(MarkDelay); + if xarr[i]>xarr[i+1] then begin + Connect(i,i+1,HaveToSwapC,1); + Delay(MarkDelay); + ClearConns; + Bool('TAUSCHE','',true,1); + Swap(i,i+1); + canswap := true; + end; + Bool('Konnte was tauschen','Konnte (noch) nichts tauschen',canswap,1); + ClearConns; + end; + until (NOT canswap); +end; + + + + + + +{########################################################################### + ########################################################################### + ######################### DER LETZTE REST ################################# + ########################################################################### + ###########################################################################} + +procedure WaitForKey; +var x: byte; +begin + repeat + x := Random(16); + SetColor(x); + SetTextJustify(CenterText,CenterText); + OutTextXY(320,240,'SORTIERUNG ABGESCHLOSSEN - bitte eine Taste drcken'); + Delay(1); + until keypressed; + ReadKey; +end; + +procedure Simplest_DEMO; +begin + InitArray; + OutArrayPlain('einfachste Sortierung'); + Sort_Simple; + WaitForKey; +end; + +procedure Selection_DEMO; +begin + InitArray; + OutArrayPlain('Selectionsort'); + Sort_Selectionsort; + WaitForKey; +end; + +procedure Bubble_DEMO; +begin + InitArray; + OutArrayPlain('Bubblesort'); + Sort_Bubblesort; + WaitForKey; +end; + +begin + InitGraphics; + { Simplest_DEMO; } + Selection_DEMO; + Bubble_DEMO; + Outit; +end. diff --git a/ITG/VISUAL2.INI b/ITG/VISUAL2.INI new file mode 100644 index 0000000..fd72f29 --- /dev/null +++ b/ITG/VISUAL2.INI @@ -0,0 +1,35 @@ +D:\LANG\BP\BGI +2000 +15 +8 +5 +0 +1 +50 +1 +10 +30 +0 +1 +10 +0 + +INI-Datei fr VISUAL2.EXE (bzw. VISUAL2.PAS) + + Copyright (c)1999 by Markus Birth + + 1. Zeile: BGI-Path + 2. Zeile: Pre-Delay vor Grafikanzeige + 3. Zeile: Punktfarbe + 4. Zeile: Spurfarbe + 5. Zeile: einfachstes Sort (normal): -Faktor + 6. -Delay + 7. Zeile: einfachstes Sort (quick): -Faktor + 8. -Delay + 9. Zeile: Selectionsort: -Faktor +10. -Delay +11. Zeile: Bubblesort: -Faktor +12. -Delay +13. Zeile: Quicksort: -Faktor +14. -Delay +15. Zeile: Arraytype (0-Random, 1-aufsteigend, 2-absteigend) diff --git a/ITG/VISUAL2.PAS b/ITG/VISUAL2.PAS new file mode 100644 index 0000000..b916c5b --- /dev/null +++ b/ITG/VISUAL2.PAS @@ -0,0 +1,926 @@ +program Visualization2; + +uses Crt, Graph, VFx, BGIP; + +const cnt: byte=0; + abo: boolean=false; + firstrun: boolean=true; + Simple_quick:boolean=false; + DataFile='visual2.ini'; + Arraytypes: array[0..2] of string[20]=('zufall','aufsteigend','absteigend'); + +var xmax, ymax, xmed, ymed: word; + xarr,oarr: array[0..639] of integer; + pretime, opretime: integer; + slow_, fact_, oslow_, ofact_: array[1..11] of integer; + slow,fact: integer; + sel: byte; + DotCol, TrailCol, oDotCol, oTrailCol: byte; + {BGIPath,} oBGIPath: string; + Arraytype, oArraytype, OAT: byte; + +function GetIniString(line: byte): string; +var f: text; + i: integer; + tmp: string; +begin + Assign(f,DataFile); + {$I-} + Reset(f); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('Fehler beim Lesen der ',Datafile,' ... existiert die auch?'); + WriteLn('... und sind wir auch im richtigen Verzeichnis????'); + WriteLn; + WriteLn('Egal ... ich leg'' mir selbst eine an ... '); + Rewrite(f); + if IOResult<>0 then begin + WriteLn('Scheie ... nicht mal das geht auf diesem Sau-Rechner ...'); + WriteLn('Mut wohl doch DU das Problem lsen .... sieh'' mal zu, da'); + WriteLn('Du mehr Rechte auf dieses Verzeichnis bekommst!'); + WriteLn; + Halt; + end; + WriteLn(f,'D:\BP\BGI'); + WriteLn(f,'2000'); + WriteLn(f,'15'); + WriteLn(f,'8'); + WriteLn(f,'5'); + WriteLn(f,'0'); + WriteLn(f,'1'); + WriteLn(f,'50'); + WriteLn(f,'1'); + WriteLn(f,'10'); + WriteLn(f,'30'); + WriteLn(f,'0'); + WriteLn(f,'1'); + WriteLn(f,'10'); + WriteLn(f,'0'); + WriteLn(f,''); + WriteLn(f,'INI-Datei fr VISUAL2.EXE (bzw. VISUAL2.PAS)'); + WriteLn(f,''); + WriteLn(f,' Copyright (c)1999 by Markus Birth '); + WriteLn(f,''); + WriteLn(f,' 1. Zeile: BGI-Path'); + WriteLn(f,' 2. Zeile: Pre-Delay vor Grafikanzeige'); + WriteLn(f,' 3. Zeile: Punktfarbe'); + WriteLn(f,' 4. Zeile: Spurfarbe'); + WriteLn(f,' 5. Zeile: einfachstes Sort (normal): -Faktor'); + WriteLn(f,' 6. -Delay'); + WriteLn(f,' 7. Zeile: einfachstes Sort (quick): -Faktor'); + WriteLn(f,' 8. -Delay'); + WriteLn(f,' 9. Zeile: Selectionsort: -Faktor'); + WriteLn(f,'10. -Delay'); + WriteLn(f,'11. Zeile: Bubblesort: -Faktor'); + WriteLn(f,'12. -Delay'); + WriteLn(f,'13. Zeile: Quicksort: -Faktor'); + WriteLn(f,'14. -Delay'); + WriteLn(f,'15. Zeile: Arraytype (0-Random, 1-aufsteigend, 2-absteigend)'); + Close(f); + WriteLn('Sooo, das wre geschafft! Wenn Du jetzt das Programm nocheinmal'); + WriteLn('aufrufst, mte alles funktionieren!'); + Halt; + end; + {$I+} + for i:=1 to line do ReadLn(f,tmp); + Close(f); + GetIniString := tmp; +end; + +function Str2Val(st: string): integer; +var tmp, ec: integer; +begin + Val(st,tmp,ec); + if (ec<>0) then begin + TextMode(co80); + WriteLn('Fehler beim Umwandeln eines Strings in einen numerischen Wert.'); + WriteLn('Stimmen die Eintrge in der INI-Datei??'); + Halt; + end; + Str2Val := tmp; +end; + +procedure ReadIni; +var tmp: string; +begin + BGIPath := GetIniString(1); + pretime := Str2Val(GetIniString(2)); + DotCol := Str2Val(GetIniString(3)); + TrailCol := Str2Val(GetIniString(4)); + fact_[1] := Str2Val(GetIniString(5)); + slow_[1] := Str2Val(GetIniString(6)); + fact_[11] := Str2Val(GetIniString(7)); + slow_[11] := Str2Val(GetIniString(8)); + fact_[2] := Str2Val(GetIniString(9)); + slow_[2] := Str2Val(GetIniString(10)); + fact_[3] := Str2Val(GetIniString(11)); + slow_[3] := Str2Val(GetIniString(12)); + fact_[4] := Str2Val(GetIniString(13)); + slow_[4] := Str2Val(GetIniString(14)); + Arraytype := Str2Val(GetIniString(15)); +end; + +procedure InitGraphics; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +procedure Outit; +begin + TextBackground(0); + ClrScr; + WriteLn('Dieses Programm wurde Ihnen prsentiert von ..... nein, nicht Krombacher!'); + WriteLn('Aber dafr von Markus Birth, Schler der 12. Klasse im Jahrgang 1998/99'); + WriteLn; + WriteLn; + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x,tmp); + V2S := tmp; +end; + +procedure SwapVal(var x1,x2: integer); +var tmp: integer; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + +function InArray(what: integer): boolean; +var i: word; + tmp: boolean; +begin + tmp := false; + for i:=0 to 639 do begin + if xarr[i]=what then begin + tmp := true; + Exit; + end; + end; + InArray := tmp; +end; + +procedure InitArray; +var i: word; + tmp: integer; +begin + Randomize; + for i:=0 to 639 do begin + case Arraytype of + 0: xarr[i] := Random(480); + 1: if (i<480) then xarr[i] := i else xarr[i] := 479; + 2: if (i<480) then xarr[i] := 479-i else xarr[i] := 0; + end; + oarr[i] := xarr[i]; + end; +end; + +procedure OutArray; +var i: word; +begin + if (keypressed) then begin + abo := true; + Exit; + end; + Inc(cnt); + if (cnt>=fact) then begin + cnt := 0; + for i:=0 to 639 do begin + PutPixel(i,479-oarr[i],TrailCol); + PutPixel(i,479-xarr[i],DotCol); + oarr[i]:=xarr[i]; + end; + Delay(slow); + end; +end; + +procedure PutBigPixel(x,y: word;c: byte); +begin + PutPixel(x-1,y-1,c); + PutPixel(x-1,y,c); + PutPixel(x-1,y+1,c); + PutPixel(x,y-1,c); + PutPixel(x,y,c); + PutPixel(x,y+1,c); + PutPixel(x+1,y-1,c); + PutPixel(x+1,y,c); + PutPixel(x+1,y+1,c); +end; + + +{########################################################################### + ########################################################################### + ##################### SORTIER ALGORITHMEN ################################# + ########################################################################### + ###########################################################################} + +procedure Sort_Simple; +var i,j: integer; + yi,yj: integer; +begin + for i:=0 to 638 do begin + for j:=i+1 to 639 do begin + yi := 479-xarr[i]; + yj := 479-xarr[j]; + { PutBigPixel(j,yj,12); } + if xarr[j]xarr[i+1] then begin + SwapVal(xarr[i],xarr[i+1]); + OutArray; + canswap := true; + end; + if (abo) then Exit; + end; + until (NOT canswap) OR (abo); +end; + +{#################################} + +procedure Sort_Insertionsort; +var h,i,j: integer; +begin + for i:=2 to 638 do begin + h := xarr[i]; + xarr[0] := h; + j := i-1; + while h2) then Dec(j) else exit; + end; + xarr[j+1] := h; + if (abo) then Exit; + end; +end; + + + +procedure Sort_QuickSort(sta,sto: integer; var f: array of integer); +var li, re: integer; + h, vgl: integer; +begin + li:=sta; re:=sto; vgl:=f[(li+re) DIV 2]; + + if livgl do Dec(re); + if li<=re then begin + SwapVal(f[li],f[re]); + inc(li); dec(re); + OutArray; + end; + until (li>re) OR (abo); + if (NOT abo) then begin + Sort_QuickSort(sta,re,f); + Sort_QuickSort(li,sto,f); + end; + end; +end; + + + + + +{########################################################################### + ########################################################################### + ######################### DER LETZTE REST ################################# + ########################################################################### + ###########################################################################} + +procedure WaitForKey; +var x: byte; +begin + repeat + x := Random(16); + SetColor(x); + SetTextJustify(CenterText,CenterText); + OutTextXY(320,240,'SORTIERUNG ABGESCHLOSSEN - bitte eine Taste drcken'); + Delay(1); + until keypressed; + ReadKey; +end; + +procedure DoIt(what: byte); +begin + InitArray; + InitGraphics; + OutArray; + Delay(pretime); + slow := slow_[what]; + fact := fact_[what]; + case what of + 1: Sort_Simple; + 11: begin + Simple_quick := true; + Sort_Simple; + end; + 2: Sort_Selectionsort; + 3: Sort_Bubblesort; + 4: Sort_Quicksort(0,639,xarr); + end; + cnt := fact; + OutArray; + ReadyBeep; + ReadKey; + TextMode(co80); +end; + +function KeyValid(sel: char): boolean; +begin + if (sel IN ['A'..'E','a'..'e','s','S','X','x']) then KeyValid := true + else KeyValid := false; +end; + +procedure UpdateAType; +var ofxwd: integer; +begin + ofxwd := fxwd; + fxwd := 650; + if (OAT<>255) then begin + GotoXY(46,20); + WriteLR(Arraytypes[OAT],1); + end; + GotoXY(46,20); + WriteLR(Arraytypes[ArrayType],15); + OAT := ArrayType; + fxwd := ofxwd; +end; + +function Menu: byte; +var sel: char; +begin + OAT := 255; + TextBackground(0); + TextMode(co80 + Font8x8); + ClrScr; + DrawBorder2(1,1,79,50,11,1); + if firstrun then fxwd := 650 else fxwd := 10; + GotoXY(1,3); + TextColor(8); + CursorOff; + WriteC('--==+ Visualization 2 +==--'); + Delay(300); + FXWriteC('--==+ Visualization 2 +==--',15); + GotoXY(29,6); FXWrite('[ ] Simplesort (normal)',11); + GotoXY(29,8); FXWrite('[ ] Simplesort (quick)',11); + GotoXY(29,10); FXWrite('[ ] Selectionsort',11); + GotoXY(29,12); FXWrite('[ ] Bubblesort',11); + GotoXY(29,14); FXWrite('[ ] Quicksort',11); + GotoXY(29,20); FXWrite('[ ] Zahlenfolge: ',11); + GotoXY(29,24); FXWrite('[ ] Voreinstellungen ndern',11); + GotoXY(29,26); FXWrite('[ ] Programm beenden',11); + fxwd := 10; + GotoXY(30,6); FXWrite('A',14); + GotoXY(30,8); FXWrite('B',14); + GotoXY(30,10); FXWrite('C',14); + GotoXY(30,12); FXWrite('D',14); + GotoXY(30,14); FXWrite('E',14); + GotoXY(30,20); FXWrite('T',14); + GotoXY(30,24); FXWrite('S',14); + GotoXY(30,26); FXWrite('X',14); + if firstrun then fxwd := 650; + UpdateAType; + firstrun := false; + GotoXY(1,30); + FXWriteC('Drcken Sie einen der gelben Buchstaben (auf der Tastatur).',7); + Menu := 0; + repeat + sel := ReadKey; + if (NOT KeyValid(sel)) AND NOT (sel IN ['t','T']) then begin + Sound(400); + Delay(100); + NoSound; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + if (sel IN ['t','T']) then begin + Inc(ArrayType); + if (ArrayType>2) then ArrayType := 0; + UpdateAType; + end; + until KeyValid(sel); + case sel of + 'a','A': Menu := 1; + 'b','B': Menu := 2; + 'c','C': Menu := 3; + 'd','D': Menu := 4; + 'e','E': Menu := 5; + 'x','X': Menu := 0; + 's','S': Menu := 128; + end; +end; + +procedure WriteLet(b: char;text: string;c: byte); +begin + TextColor(c); + Write('['); + TextColor(14); + Write(UpCase(b)); + TextColor(c); + Write('] ',text); +end; + +procedure OutSetup; +begin + GotoXY(5,10); WriteLet('A','BGI-Pfad: ',10); + TextColor(15); Write(BGIPath); + GotoXY(5,12); WriteLet('B','Pre-Delay: ',10); + TextColor(15); Write(pretime:0); + GotoXY(30,12); WriteLet('C','Punktfarbe: ',10); + TextColor(15); Write(DotCol:3,' '); + TextColor(DotCol); Write(''); + GotoXY(55,12); WriteLet('D','Spurfarbe: ',10); + TextColor(15); Write(TrailCol:3,' '); + TextColor(TrailCol); Write(''); + GotoXY(5,15); WriteLet('E','einfachstes Sort (normal)',11); + GotoXY(45,15); WriteLet('F','einfachstes Sort (quick)',11); + GotoXY(5,19); WriteLet('G','Selectionsort',11); + GotoXY(45,19); WriteLet('H','Bubblesort',11); + GotoXY(5,23); WriteLet('I','Quicksort',11); + TextColor(8); + GotoXY(45,25); Write('Zahlenfolge: ',ArrayTypes[ArrayType]); + GotoXY(11,16); Write('Faktor: ',fact_[1]); + GotoXY(11,17); Write('Delay : ',slow_[1]); + GotoXY(51,16); Write('Faktor: ',fact_[11]); + GotoXY(51,17); Write('Delay : ',slow_[11]); + GotoXY(11,20); Write('Faktor: ',fact_[2]); + GotoXY(11,21); Write('Delay : ',slow_[2]); + GotoXY(51,20); Write('Faktor: ',fact_[3]); + GotoXY(51,21); Write('Delay : ',slow_[3]); + GotoXY(11,24); Write('Faktor: ',fact_[4]); + GotoXY(11,25); Write('Delay : ',slow_[4]); + GotoXY(7,47); + WriteLet('O','Eingaben bernehmen',15); Write(' '); + WriteLet('S','Eingaben sichern',15); Write(' '); + WriteLet('X','Abbrechen',15); +end; + +function Setup_KeyValid(what: char): boolean; +begin + if (what IN ['A'..'I','a'..'i','o','O','s','S','x','X']) then Setup_KeyValid:=true + else Setup_KeyValid := false; +end; + +procedure DoHelp; +begin + window(5,28,75,45); + TextBackground(1); + ClrScr; + window(6,29,74,44); + TextColor(14); + WriteLn('--==+ HILFE +==--'); + WriteLn; + TextColor(15); +end; + +procedure HelpDone; +begin + window(1,1,80,50); + TextBackground(2); +end; + +procedure ClearHelp; +begin + window(5,28,75,45); + TextBackground(2); + ClrScr; + window(1,1,80,50); +end; + +procedure Setup_GetVal(var v: integer); +var tmp: string; + tmp2, ec: integer; + wx, wy: word; +begin + wx := WhereX; + wy := WhereY; + repeat + GotoXY(wx,wy); + Write(Space(10)); + GotoXY(wx,wy); + ReadLn(tmp); + Val(tmp,tmp2,ec); + if (ec<>0) then ErrorBeep; + until (tmp='') OR (ec=0); + if (tmp<>'') then v := tmp2; + AckBeep; +end; + +procedure Setup_GetByte(var v: byte); +var tmp: string; + tmp2, ec: integer; + wx, wy: word; +begin + wx := WhereX; + wy := WhereY; + repeat + GotoXY(wx,wy); + Write(Space(5)); + GotoXY(wx,wy); + ReadLn(tmp); + Val(tmp,tmp2,ec); + if (ec<>0) then ErrorBeep; + until (tmp='') OR (ec=0); + if (tmp<>'') then v := tmp2; + AckBeep; +end; + +procedure Setup_BGIpath; +var tmp: string; +begin + GotoXY(5,10); + TextColor(10+blink); Write('[ ]'); + GotoXY(6,10); + TextColor(14+blink); Write('A'); + DoHelp; + WriteLn('Geben Sie den Pfad zu den BGI-Dateien an.'); + WriteLn; + WriteLn('Beispiel: C:\SCHULS~1\TP\BGI'); + WriteLn; + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + HelpDone; + GotoXY(19,10); Write(Space(50)); + GotoXY(19,10); + TextColor(15); + ReadLn(tmp); + if (tmp<>'') then BGIpath := tmp; + ClearHelp; + GotoXY(5,10); TextColor(10); Write('[ ]'); + GotoXY(6,10); TextColor(14); Write('A'); + GotoXY(19,10);TextColor(15); Write(BGIpath); +end; + +procedure Setup_PreDelay; +var tmp: string; + tmp2, ec: integer; +begin + GotoXY(5,12); + TextColor(10+blink); Write('[ ]'); + GotoXY(6,12); + TextColor(14+blink); Write('B'); + DoHelp; + WriteLn('Geben Sie die Zeit an, die vor der Grafikanzeige gewartet werden'); + WriteLn('soll. Dies ist bei den neueren Monitoren ntig, da sie einige'); + WriteLn('Zeit bentigen, um in den Grafikmodus zu schalten.'); + WriteLn; + WriteLn('Beispiel: 2000 - fr 2 Sekunden'); + WriteLn; + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + HelpDone; + GotoXY(20,12); TextColor(15); + Setup_GetVal(pretime); + ClearHelp; + GotoXY(5,12); TextColor(10); Write('[ ]'); + GotoXY(6,12); TextColor(14); Write('B'); + GotoXY(20,12); Write(Space(10)); + GotoXY(20,12);TextColor(15); Write(pretime:0); +end; + +procedure ColTab; +begin + WriteLn(' 0 1 2 3 4 5 6 7'); + CWriteLn('%%0#%%1#%%2#%%3#%%4#%%5#%%6#%%7#'); + CWriteLn('%%8#%%9#%%10#%%11#%%12#%%13#%%14#%%15#'); + WriteLn(' 8 9 10 11 12 13 14 15'); +end; + +procedure Setup_DotCol; +var tmp: string; + tmp2,ec: integer; +begin + GotoXY(30,12); + TextColor(10+blink); Write('[ ]'); + GotoXY(31,12); + TextColor(14+blink); Write('C'); + DoHelp; + WriteLn('Geben Sie die Farbe fr die aktiven Punkte an.'); + WriteLn; + WriteLn('Die Zahl mu zwischen 0 und 255 liegen.'); + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + WriteLn; + WriteLn('Beispiele:'); + WriteLn; + ColTab; + HelpDone; + GotoXY(46,12); TextColor(15); + Setup_GetByte(DotCol); + ClearHelp; + GotoXY(30,12); TextColor(10); Write('[ ]'); + GotoXY(31,12); TextColor(14); Write('C'); + GotoXY(46,12); Write(Space(5)); + GotoXY(46,12);TextColor(15); Write(DotCol:3,' '); TextColor(DotCol); Write(''); +end; + +procedure Setup_TrailCol; +var tmp: string; + tmp2,ec: integer; +begin + GotoXY(55,12); + TextColor(10+blink); Write('[ ]'); + GotoXY(56,12); + TextColor(14+blink); Write('D'); + DoHelp; + WriteLn('Geben Sie die Farbe fr die ehemaligen Punkte an.'); + WriteLn; + WriteLn('Die Zahl mu zwischen 0 und 255 liegen. 0 deaktiviert die Funktion.'); + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + WriteLn; + WriteLn('Beispiele:'); + WriteLn; + ColTab; + HelpDone; + GotoXY(70,12); TextColor(15); + Setup_GetByte(TrailCol); + ClearHelp; + GotoXY(55,12); TextColor(10); Write('[ ]'); + GotoXY(56,12); TextColor(14); Write('D'); + GotoXY(70,12); Write(Space(5)); + GotoXY(70,12);TextColor(15); Write(TrailCol:3,' '); TextColor(TrailCol); Write(''); +end; + +procedure Setup_Algos(x,y: word;c: char;t: string;no: byte); +var key: char; +begin + GotoXY(x,y); TextColor(11+blink); Write('[ ]'); + GotoXY(x+1,y); TextColor(14+blink); Write(c); + GotoXY(x+4,y); TextColor(15); Write(t); + GotoxY(x+2,y+1); WriteLet('1','Faktor:',11); + TextColor(15); Write(' ',fact_[no]); + GotoXY(x+2,y+2); WriteLet('2','Delay :',11); + TextColor(15); Write(' ',slow_[no]); + repeat + DoHelp; + WriteLn('Drcken Sie "1" oder "2" um den Faktor oder das Delay zu ndern.'); + WriteLn('"X", wenn Sie hier nichts ndern wollen.'); + WriteLn; + WriteLn('Faktor - ist die Beschleunigung, d.h. es wird nur noch jeder Xte'); + WriteLn(' Zustand auf dem Bildschirm ausgegeben, was die'); + WriteLn(' Bearbeitung und Visualisierung ungemein beschleunigt.'); + WriteLn; + WriteLn('Delay - die Wartedauer zwischen zwei Ausgaben. Bei schnellen Algo-'); + WriteLn(' rithmen sollte man ein Delay setzen, damit die Visuali-'); + WriteLn(' sierung in einer vernnftigen Geschwindigkeit abluft.'); + HelpDone; + key := ReadKey; + case key of + '1': begin + GotoXY(x+2,y+1); TextColor(11+blink); Write('[ ]'); + GotoXY(x+3,y+1); TextColor(14+blink); Write('1'); + GotoXY(x+6,y+1); TextColor(15); Write('Faktor:'); + GotoXY(x+14,y+1); TextColor(15); + DoHelp; + WriteLn('Der Faktor gibt an, wieviel Zustnde whrend der Visualisierung'); + WriteLn('bersprungen werden sollen. Es wird nur jeder Xte Zustand'); + WriteLn('angezeigt. Die Zahl kann im Bereich von 1 bis 32767 liegen,'); + WriteLn('aber man sollte sie nicht grer als etwa 100 whlen, da sonst'); + WriteLn('die Visualisierung etwas merkwrdig aussieht.'); + WriteLn; + WriteLn('Um den Wert nicht zu ndern, einfach [ENTER] drcken.'); + HelpDone; + Setup_GetVal(fact_[no]); + if (fact_[no]<1) then fact_[no]:=1; + GotoXY(x+2,y+1); WriteLet('1','Faktor:',11); + TextColor(15); + GotoXY(x+14,y+1); Write(Space(10)); + GotoXY(x+14,y+1); Write(fact_[no]); + end; + '2': begin + GotoXY(x+2,y+2); TextColor(11+blink); Write('[ ]'); + GotoXY(x+3,y+2); TextColor(14+blink); Write('2'); + GotoXY(x+6,y+2); TextColor(15); Write('Delay :'); + GotoXY(x+14,y+2); TextColor(15); + DoHelp; + WriteLn('Das Delay gibt an, wieviel Millisekunden zwischen der Anzeige'); + WriteLn('der einzelnen Zustnde "gewartet" werden sollen. Die Zahl kann'); + WriteLn('im Bereich von 0 bis 32767 liegen, sollte aber nie grer als'); + WriteLn('ca. 500 ( Sekunde) gewhlt werden, da man sonst Stunden vor'); + WriteLn('dem Rechner sitzen kann, ohne gro was zu sehen.'); + WriteLn; + WriteLn('Um den Wert nicht zu ndern, einfach [ENTER] drcken.'); + HelpDone; + Setup_GetVal(slow_[no]); + GotoXY(x+2,y+2); WriteLet('2','Delay :',11); + TextColor(15); + GotoXY(x+14,y+2); Write(Space(10)); + GotoXY(x+14,y+2); Write(slow_[no]); + end; + end; + until (key IN ['x','X']); + ClearHelp; + GotoXY(x,y); WriteLet(c,t,11); + TextColor(8); + GotoXY(x+2,y+1); Write(' Faktor:'); + GotoXY(x+2,y+2); Write(' Delay :'); + GotoXY(x+14,y+1); Write(Space(10)); + GotoXY(x+14,y+1); Write(fact_[no]); + GotoXY(x+14,y+2); Write(Space(10)); + GotoXY(x+14,y+2); Write(slow_[no]); +end; + +procedure Setup_SimpleSN; +var key: char; +begin + Setup_Algos(5,15,'E','einfachstes Sort (normal)',1); +end; + +procedure Setup_SimpleSQ; +begin + Setup_Algos(45,15,'F','einfachstes Sort (quick)',11); +end; + +procedure Setup_SelectionS; +begin + Setup_Algos(5,19,'G','Selectionsort',2); +end; + +procedure Setup_BubbleS; +begin + Setup_Algos(45,19,'H','Bubblesort',3); +end; + +procedure Setup_QuickS; +begin + Setup_Algos(5,23,'I','Quicksort',4); +end; + +procedure Setup_SaveVals; +var f: text; +begin + Assign(f,DataFile); + {$I-} + Rewrite(f); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('Fehler beim Schreiben der INI-Datei ... haben Sie genug Rechte?'); + WriteLn('Ist die Datei VISUAL2.INI nicht schreibgeschtzt? Ist genug Platz'); + WriteLn('vorhanden?'); + WriteLn; + Halt; + end; + {$I+} + WriteLn(f,BGIPath); + WriteLn(f,pretime:0); + WriteLn(f,DotCol:0); + WriteLn(f,TrailCol:0); + WriteLn(f,fact_[1]:0); + WriteLn(f,slow_[1]:0); + WriteLn(f,fact_[11]:0); + WriteLn(f,slow_[11]:0); + WriteLn(f,fact_[2]:0); + WriteLn(f,slow_[2]:0); + WriteLn(f,fact_[3]:0); + WriteLn(f,slow_[3]:0); + WriteLn(f,fact_[4]:0); + WriteLn(f,slow_[4]:0); + WriteLn(f,ArrayType:0); + WriteLn(f,''); + WriteLn(f,'INI-Datei fr VISUAL2.EXE (bzw. VISUAL2.PAS)'); + WriteLn(f,''); + WriteLn(f,' Copyright (c)1999 by Markus Birth '); + WriteLn(f,''); + WriteLn(f,' 1. Zeile: BGI-Path'); + WriteLn(f,' 2. Zeile: Pre-Delay vor Grafikanzeige'); + WriteLn(f,' 3. Zeile: Punktfarbe'); + WriteLn(f,' 4. Zeile: Spurfarbe'); + WriteLn(f,' 5. Zeile: einfachstes Sort (normal): -Faktor'); + WriteLn(f,' 6. -Delay'); + WriteLn(f,' 7. Zeile: einfachstes Sort (quick): -Faktor'); + WriteLn(f,' 8. -Delay'); + WriteLn(f,' 9. Zeile: Selectionsort: -Faktor'); + WriteLn(f,'10. -Delay'); + WriteLn(f,'11. Zeile: Bubblesort: -Faktor'); + WriteLn(f,'12. -Delay'); + WriteLn(f,'13. Zeile: Quicksort: -Faktor'); + WriteLn(f,'14. -Delay'); + WriteLn(f,'15. Zeile: Arraytype (0-Random, 1-aufsteigend, 2-absteigend)'); + Close(f); + AckBeep; +end; + +procedure Setup_Abort; +begin + BGIPath := oBGIPath; + pretime := opretime; + slow_ := oslow_; + fact_ := ofact_; + DotCol := oDotCol; + TrailCol := oTrailCol; + ArrayType:= oArrayType; +end; + +procedure Setup_SavePre; +begin + oBGIPath := BGIPath; + opretime := pretime; + oslow_ := slow_; + ofact_ := fact_; + oDotCol := DotCol; + oTrailCol := TrailCol; + oArrayType:= ArrayType; +end; + +procedure Setup; +var sel: char; +begin + Setup_SavePre; + DrawBorder2(2,5,78,49,15,2); + GotoXY(1,7); + FXWriteC('Voreinstellungen ndern',15); + OutSetup; + repeat + sel := ReadKey; + if NOT Setup_KeyValid(sel) then begin + Sound(400); + Delay(100); + NoSound; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + case sel of + 'a','A': Setup_BGIpath; + 'b','B': Setup_PreDelay; + 'c','C': Setup_DotCol; + 'd','D': Setup_TrailCol; + 'e','E': Setup_SimpleSN; + 'f','F': Setup_SimpleSQ; + 'g','G': Setup_SelectionS; + 'h','H': Setup_BubbleS; + 'i','I': Setup_QuickS; + 's','S': Setup_SaveVals; + 'x','X': Setup_Abort; + end; + until (sel IN ['o','O','x','X','s','S']); +end; + +begin + ReadIni; + repeat + sel := Menu; + abo := false; + case sel of + 1: Doit(1); + 2: Doit(11); + 3: Doit(2); + 4: Doit(3); + 5: Doit(4); + 128: Setup; + end; + until (sel=0); + Outit; +end. diff --git a/ITG/WAHLEN.PAS b/ITG/WAHLEN.PAS new file mode 100644 index 0000000..e2cfaa1 --- /dev/null +++ b/ITG/WAHLEN.PAS @@ -0,0 +1,5 @@ +uses Crt;const S:array[1..3,1..4] of word=((825,999,637,723),(436,638,345,451),(652,821,504,633));var B:array[1..3] of word; +P:array[1..4] of word;procedure A;var i,j:byte;begin for i:=1 to 3 do for j:=1 to 4 do begin P[j]:=P[j]+S[i,j]; +B[i]:=B[i]+S[i,j];end;end;procedure C;var i,j:byte;begin WriteLn('<=========*=========>');Write(' '); +WriteLn('ROT BLAU GELB GRN ====');for i:=1 to 3 do begin Write('Bezirk ',i,' ');for j:=1 to 4 do Write(S[i,j]:4,' '); +WriteLn(B[i]:4);end;Write('======== ');for i:=1 to 4 do Write(P[i]:4,' ');WriteLn;end;begin A;C;ReadKey;end. diff --git a/ITG/WASSRTMP.PAS b/ITG/WASSRTMP.PAS new file mode 100644 index 0000000..2c16b78 --- /dev/null +++ b/ITG/WASSRTMP.PAS @@ -0,0 +1,63 @@ +program Wassertemp; + +uses Crt; + +const un='C'; + +var l: real; + T1,T2,Tw: real; + +procedure CalcTemp(l,T1,T2,Tw: real); +var x: real; +begin + if ((Tw>T1) AND (Tw>T2)) then begin + TextColor(12); + WriteLn('Du Idiot! Hast Du ''ne Mikrowelle neben Deiner Badewanne?'); + WriteLn('Das Wasser kann doch nicht wrmer werden, wie die max. Temp!'); + Exit; + end; + if ((Tw3 then begin + Str(x,ot); + OutText(ot+';'); + Str(t,ot); + OutText(ot); + end; + oy := t; } + y := t; + +end; + +procedure DrawLine; +var i: integer; +begin + MoveTo(13,y(13)); + SetColor(8); + for i:=13 to 627 do begin + LineTo(i,y(i)); + end; +end; + +procedure BlowTorch(i: word;col: byte); +const fcol=7; { Farbe der Lampenfassung } + pcol=15; { Farbe des Kontakts } + gcol=8; { Farbe des Glas } +var j: integer; +begin + { Just a 3x3 rectangle } + { PutPixel(i-1,y(i)-1,col); + PutPixel(i-1,y(i),col); + PutPixel(i-1,y(i)+1,col); + PutPixel(i,y(i)-1,col); + PutPixel(i,y(i),col); + PutPixel(i,y(i)+1,col); + PutPixel(i+1,y(i)-1,col); + PutPixel(i+1,y(i),col); + PutPixel(i+1,y(i)+1,col); } + + { A nice lamp } + PutPixel(i,y(i)-2,pcol); { Kontakt } + + for j:=-1 to 1 do PutPixel(i-1,y(i)+j,fcol); { Sockel } + for j:=-1 to 1 do PutPixel(i,y(i)+j,fcol); + for j:=-1 to 1 do PutPixel(i+1,y(i)+j,fcol); + + PutPixel(i-2,y(i)+2,gcol); { Lampe } + PutPixel(i+2,y(i)+2,gcol); + PutPixel(i-2,y(i)+6,gcol); + PutPixel(i+2,y(i)+6,gcol); + for j:=3 to 5 do PutPixel(i-3,y(i)+j,gcol); + for j:=3 to 5 do PutPixel(i+3,y(i)+j,gcol); + for j:=-1 to 1 do PutPixel(i+j,y(i)+7,gcol); + + for j:=3 to 5 do PutPixel(i-2,y(i)+j,col); { Licht } + for j:=2 to 6 do PutPixel(i-1,y(i)+j,col); + for j:=2 to 6 do PutPixel(i,y(i)+j,col); + for j:=2 to 6 do PutPixel(i+1,y(i)+j,col); + for j:=3 to 5 do PutPixel(i+2,y(i)+j,col); +end; + +procedure AnimateTorches_LineBlink; +var i: integer; +begin + Randomize; + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,0); + end; + end; + repeat + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,Random(16)); + Delay(pdel); + end; + end; + Delay(bdel); + until keypressed; + ReadKey; +end; + +procedure AnimateTorches_RandomBlink; +var i: integer; +begin + Randomize; + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,0); + end; + end; + repeat + i := (Random(630 DIV bdis))*bdis+20; + BlowTorch(i,Random(16)); + Delay(pdel); + until keypressed; + ReadKey; +end; + +procedure AnimateTorches_ShiftBlink; +const maxt=630 DIV bdis-1; +var i: integer; + lc: array[0..maxt] of byte; +begin + Randomize; + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,0); + end; + end; + repeat + for i:=maxt downto 1 do lc[i]:=lc[i-1]; + lc[0] := Random(16); + for i:=0 to maxt do begin + BlowTorch(i*bdis+20,lc[i]); + end; + Delay(bdel); + until keypressed; + ReadKey; +end; + +begin + InitGraphics; + DrawStaffs; + DrawLine; + AnimateTorches_ShiftBlink; + OutitGraphics; +end. diff --git a/ITG/rekGui.pas b/ITG/rekGui.pas new file mode 100644 index 0000000..6c768eb --- /dev/null +++ b/ITG/rekGui.pas @@ -0,0 +1,333 @@ +program RekGUI; + +uses Crt, Graph, DOS, GUI, RekGraph, BGIP; + +const desktopcolor=3; + skier_len: integer=120; + skier_edge: integer=10; + skier_globangle: integer=0; + skier_fixedinit: boolean=true; + haken_len: integer=150; + haken_angle: integer=45; + haken_globangle: integer=0; + haken_fixedinit: boolean=true; + quadrat_len: integer=150; + quadrat_angle: integer=90; + quadrat_globangle: integer=0; + quadrat_fixedinit: boolean=true; + spirale_len: integer=10; + spirale_angle: integer=25; + spirale_globangle: integer=0; + spirale_fixedinit: boolean=true; + +var xmax, ymax, xmed, ymed: word; + ExitAll, ExitSetupAll: boolean; + +procedure Init; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + om := 0; + ExitAll := false; + ExitSetupAll := false; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +procedure InitGraphs; +begin + skier_del := 50; + haken_del := 50; + quadrat_del := 100; + spirale_del := 50; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x:3,tmp); + V2S := tmp; +end; + +procedure ShowSkier; +begin + globangle := skier_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(180,370); + Skier(skier_len,skier_edge); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowHaken; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Haken(haken_len,haken_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowQuadrat; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Quadrat(quadrat_len,quadrat_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + + +procedure ShowSpirale; +begin + globangle := spirale_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Spirale(spirale_len,spirale_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure Palette; +const tx=50; + ty=31; +var i,j: integer; +begin + for j:=1 to 16 do begin + SetTextJustify(RightText,CenterText); + SetColor(0); + OutTextXY(tx,ty+(j-1)*10+5,V2S((j-1)*16)); + for i:=0 to 15 do begin + SetFillStyle(SolidFill,(j-1)*16+i); + SetColor((j-1)*15+i); + Bar(tx+i*10,ty+(j-1)*10,tx+i*10+10,ty+(j-1)*10+10); + end; + SetTextJustify(LeftText,CenterText); + SetColor(0); + OutTextXY(tx+162,ty+(j-1)*10+5,V2S((j-1)*16+15)); + end; +end; + +procedure CheckSetupStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(15,405,525,425) then begin + Status('Hiermit wird die Konfiguration so gespeichert'); + case mb of + 1: begin + ExitSetupAll := true; + end; + end; + end else if MouseOver(527,405,625,425) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(527,405,625,425,'EXIT'); + ExitSetupAll:=true; + ExitAll:=true; + Delay(buttondelay); + MakeButton(527,405,625,425,'EXIT'); + Exit; + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure SetupData; +var sx,sy,sb: integer; +begin + MakeWindow(10,10,630,430,'Konfiguration'); + MakeButton(15,405,525,425,'Einstellungen so bernehmen'); + MakeButton(527,405,625,425,'EXIT'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckSetupStat; + StatusTime(false); + until (mb=3) OR (ExitSetupAll); + if (mb=3) then ExitAll := true; + ShowMouse(false); +end; + +procedure BuildWindows; +begin + MakeWindow(10,10,500,400,'Hauptfenster'); + MakeWindow(505,10,600,400,'Optionen'); + MakeButton(510,385,595,395,'EXIT'); + MakeButton(510,373,595,383,'CLEAR'); + MakeButton(510,34,595,54,'Skierp.'); + MakeButton(510,56,595,76,'Haken'); + MakeButton(510,78,595,98,'Quadrat'); + MakeButton(510,100,595,120,'Spirale'); + MakeButton(510,350,595,371,'SETUP'); +end; + +procedure CheckStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(510,385,595,395) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(510,385,595,395,'EXIT'); + ExitAll:=true; + Delay(buttondelay); + MakeButton(510,385,595,395,'EXIT'); + Exit; + end; + end; + end else if MouseOver(510,373,595,383) then begin + Status('Damit wird das Hauptfenster gelscht!'); + case mb of + 1: begin + MakeBeveledButton(510,373,595,383,'CLEAR'); + SetFillStyle(SolidFill,7); + Bar(13,31,497,397); + Delay(buttondelay); + MakeButton(510,373,595,383,'CLEAR'); + end; + end; + end else if MouseOver(510,350,595,371) then begin + Status('Hier kann man die Einstellungen ndern!'); + case mb of + 1: begin + MakeBeveledButton(510,350,595,371,'SETUP'); + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,500,400); + Delay(buttondelay DIV 2); + Bar(505,10,600,400); + Delay(buttondelay DIV 2); + ExitSetupAll := false; + SetupData; + if NOT ExitAll then begin + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,630,430); + BuildWindows; + end; + end; + end; + end else if MouseOver(510,34,595,54) then begin + Status('Fr unsere Wintersportler!'); + case mb of + 1: begin + MakeBeveledButton(510,34,595,54,'Skierp.'); + ShowSkier; + Delay(buttondelay); + MakeButton(510,34,595,54,'Skierp.'); + end; + end; + end else if MouseOver(510,56,595,76) then begin + Status('Und das ist fr die Angler!'); + case mb of + 1: begin + MakeBeveledButton(510,56,595,76,'Haken'); + ShowHaken; + Delay(buttondelay); + MakeButton(510,56,595,76,'Haken'); + end; + end; + end else if MouseOver(510,78,595,98) then begin + Status('Sehen Sie schon viereckig?'); + case mb of + 1: begin + MakeBeveledButton(510,78,595,98,'Quadrat'); + ShowQuadrat; + Delay(buttondelay); + MakeButton(510,78,595,98,'Quadrat'); + end; + end; + end else if MouseOver(510,100,595,120) then begin + Status('Ist was verstopft?'); + case mb of + 1: begin + MakeBeveledButton(510,100,595,120,'Spirale'); + ShowSpirale; + Delay(buttondelay); + MakeButton(510,100,595,120,'Spirale'); + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'Rekursive Grafikfunktionen'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'geschrieben von Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initialisiere Farbpalette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Bitte drcken Sie irgendeine Taste (Maus oder Tastatur)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); +end; + +begin + Init; + InitGraphs; + StartScreen; + BuildWindows; + MouseReset; + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckStat; + StatusTime(false); + until (mb=3) OR (ExitAll); + ShowMouse(false); + FadeOut; + Outit; +end. diff --git a/KEY1.DAT b/KEY1.DAT new file mode 100644 index 0000000..77980d1 --- /dev/null +++ b/KEY1.DAT @@ -0,0 +1,4286 @@ + +Anzahl Tastatureingaben : 10000 +KEY: 21 00 08 02 +KEY: 1C 0D 00 00 +KEY: 14 54 01 00 +KEY: 39 20 01 00 +KEY: 18 4F 01 00 +KEY: 39 20 01 00 +KEY: 19 50 01 00 +KEY: 39 20 01 00 +KEY: 39 20 01 00 +KEY: 39 20 01 00 +KEY: 39 20 01 00 +KEY: 1F 53 01 00 +KEY: 39 20 01 00 +KEY: 12 45 01 00 +KEY: 39 20 01 00 +KEY: 2E 43 01 00 +KEY: 39 20 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 12 45 01 00 +KEY: 39 20 01 00 +KEY: 14 54 01 00 +KEY: 47 E0 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 46 01 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 17 69 00 00 +KEY: 16 75 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 30 42 01 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 0E 08 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 18 4F 01 00 +KEY: 19 50 01 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 12 45 01 00 +KEY: 2E 43 01 00 +KEY: 13 52 01 00 +KEY: 12 45 01 00 +KEY: 14 54 01 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 02 31 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 31 4E 01 00 +KEY: 18 6F 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 15 7A 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 1E 61 00 00 +KEY: 19 70 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 03 32 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 0E 08 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 21 66 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 0C E1 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 1F 73 00 00 +KEY: 53 E0 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 27 94 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 0E 08 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 19 70 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 04 33 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 74 E0 04 00 +KEY: 4B E0 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 1F 73 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 19 50 01 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 28 84 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 2F 56 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 18 6F 00 00 +KEY: 0C E1 00 00 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 02 31 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 04 33 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 23 48 01 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 2F 56 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 26 4C 01 00 +KEY: 12 45 01 00 +KEY: 30 42 01 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 1F 53 01 00 +KEY: 26 4C 01 00 +KEY: 1E 41 01 00 +KEY: 31 4E 01 00 +KEY: 22 47 01 00 +KEY: 12 45 01 00 +KEY: 39 20 00 00 +KEY: 23 48 01 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 2C 79 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 28 84 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 13 52 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 13 72 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 25 6B 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 27 94 00 00 +KEY: 26 6C 00 00 +KEY: 20 64 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 46 01 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 23 68 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 28 84 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 53 E0 00 00 +KEY: 74 E0 04 00 +KEY: 4B E0 00 00 +KEY: 4B E0 00 00 +KEY: 13 72 00 00 +KEY: 4F E0 00 00 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 20 64 00 00 +KEY: 20 64 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 20 64 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 06 35 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 48 E0 00 00 +KEY: 4F E0 00 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 33 2C 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 50 E0 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 47 01 00 +KEY: 0E 08 00 00 +KEY: 03 22 01 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 03 22 01 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 23 68 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 26 6C 00 00 +KEY: 27 94 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 4B E0 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 11 57 01 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 02 31 00 00 +KEY: 0B 30 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 12 65 00 00 +KEY: 25 6B 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 31 6E 00 00 +KEY: 25 6B 00 00 +KEY: 21 66 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 22 67 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 0B 30 00 00 +KEY: 0A 39 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 4D E0 00 00 +KEY: 09 38 00 00 +KEY: 53 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 4D E0 00 00 +KEY: 52 E0 80 80 +KEY: 08 37 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 07 36 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 06 35 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 05 34 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 04 33 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 03 32 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 02 31 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 1C 0D 80 00 +KEY: 52 E0 00 80 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 22 47 01 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 16 75 00 00 +KEY: 30 62 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 26 4C 01 00 +KEY: 14 74 00 00 +KEY: 34 2E 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 10 51 01 00 +KEY: 16 75 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 25 6B 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 2E 43 01 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 11 77 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 31 6E 00 00 +KEY: 2F 76 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 73 E0 04 00 +KEY: 03 22 01 00 +KEY: 4F E0 00 00 +KEY: 03 22 01 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 1E 61 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 1F 53 01 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 15 7A 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 0E 08 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 31 4E 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 30 62 00 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 26 6C 00 00 +KEY: 18 6F 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 41 01 00 +KEY: 30 62 00 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 26 6C 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 25 6B 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 2F 76 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 28 84 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 30 62 00 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 11 77 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 35 2D 00 00 +KEY: 1F 53 01 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 15 5A 01 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 25 6B 00 00 +KEY: 0E 08 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 11 77 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 27 94 00 00 +KEY: 22 67 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 26 6C 00 00 +KEY: 11 77 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 1F 53 01 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 21 66 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 25 6B 00 00 +KEY: 27 94 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 2F 56 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 30 62 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 19 70 00 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 1C 0D 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 28 84 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 00 08 02 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 24 6A 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 15 7A 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 03 22 01 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 03 22 01 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 28 84 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 22 47 01 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 27 94 00 00 +KEY: 0E 08 00 00 +KEY: 31 6E 00 00 +KEY: 27 94 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 28 84 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 20 64 00 00 +KEY: 13 72 00 00 +KEY: 1A 81 00 00 +KEY: 2E 63 00 00 +KEY: 25 6B 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 31 6E 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1C 0D 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 30 62 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 17 69 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 19 70 00 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 14 74 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 02 21 01 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 1E 41 01 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 30 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 4F E0 00 00 +KEY: 0E 08 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 34 2E 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 0A 39 00 00 +KEY: 07 36 00 00 +KEY: 09 38 00 00 +KEY: 0B 30 00 00 +KEY: 0B 30 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 73 E0 04 00 +KEY: 20 44 01 00 +KEY: 18 4F 01 00 +KEY: 1F 53 01 00 +KEY: 35 2D 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 16 55 01 00 +KEY: 32 6D 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 19 70 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 34 2E 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 02 31 00 00 +KEY: 08 37 00 00 +KEY: 0A 39 00 00 +KEY: 04 33 00 00 +KEY: 07 36 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 18 4F 01 00 +KEY: 1F 53 01 00 +KEY: 35 2D 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 19 70 00 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 14 74 00 00 +KEY: 18 6F 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 35 2D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 2C 79 00 00 +KEY: 02 31 00 00 +KEY: 34 2E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 47 01 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 21 66 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 23 68 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 2C 79 00 00 +KEY: 34 2E 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 03 32 00 00 +KEY: 03 32 00 00 +KEY: 03 32 00 00 +KEY: 03 32 00 00 +KEY: 07 36 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 18 6F 00 00 +KEY: 0E 08 00 00 +KEY: 18 4F 01 00 +KEY: 1F 53 01 00 +KEY: 35 2D 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 21 66 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 2C 79 00 00 +KEY: 02 31 00 00 +KEY: 34 2E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 20 64 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 34 2E 00 00 +KEY: 30 62 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 04 33 00 00 +KEY: 05 34 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 17 49 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 39 20 01 00 +KEY: 19 50 01 00 +KEY: 13 52 01 00 +KEY: 18 4F 01 00 +KEY: 22 47 01 00 +KEY: 13 52 01 00 +KEY: 1E 41 01 00 +KEY: 32 4D 01 00 +KEY: 32 4D 01 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 14 54 01 00 +KEY: 1E 41 01 00 +KEY: 13 52 01 00 +KEY: 14 54 01 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 39 20 01 00 +KEY: 15 5A 01 00 +KEY: 16 55 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 1E 41 01 00 +KEY: 16 55 01 00 +KEY: 21 46 01 00 +KEY: 15 5A 01 00 +KEY: 12 45 01 00 +KEY: 17 49 01 00 +KEY: 2E 43 01 00 +KEY: 23 48 01 00 +KEY: 31 4E 01 00 +KEY: 16 55 01 00 +KEY: 31 4E 01 00 +KEY: 22 47 01 00 +KEY: 1C 0D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 2C 79 00 00 +KEY: 34 2E 00 00 +KEY: 30 62 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 05 34 00 00 +KEY: 0B 30 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 17 49 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 39 20 01 00 +KEY: 19 50 01 00 +KEY: 13 52 01 00 +KEY: 18 4F 01 00 +KEY: 22 47 01 00 +KEY: 13 52 01 00 +KEY: 1E 41 01 00 +KEY: 32 4D 01 00 +KEY: 32 4D 01 00 +KEY: 39 20 01 00 +KEY: 1F 53 01 00 +KEY: 14 54 01 00 +KEY: 1E 41 01 00 +KEY: 13 52 01 00 +KEY: 14 54 01 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 39 20 01 00 +KEY: 15 5A 01 00 +KEY: 15 5A 01 00 +KEY: 16 55 01 00 +KEY: 13 52 01 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 16 55 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 11 57 01 00 +KEY: 17 49 01 00 +KEY: 12 45 01 00 +KEY: 20 44 01 00 +KEY: 12 45 01 00 +KEY: 13 52 01 00 +KEY: 22 47 01 00 +KEY: 1E 41 01 00 +KEY: 30 42 01 00 +KEY: 12 45 01 00 +KEY: 1C 0D 00 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 20 44 01 00 +KEY: 12 45 01 00 +KEY: 39 20 01 00 +KEY: 20 44 01 00 +KEY: 12 45 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 1A 9A 01 00 +KEY: 30 42 01 00 +KEY: 12 45 01 00 +KEY: 13 52 01 00 +KEY: 14 54 01 00 +KEY: 13 52 01 00 +KEY: 1E 41 01 00 +KEY: 22 47 01 00 +KEY: 16 55 01 00 +KEY: 31 4E 01 00 +KEY: 22 47 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 00 08 02 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 4D E0 00 00 +KEY: 4D E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 4F E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 21 00 08 02 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 1C 0D 00 00 diff --git a/LOGO.PAS b/LOGO.PAS new file mode 100644 index 0000000..a19a1b0 --- /dev/null +++ b/LOGO.PAS @@ -0,0 +1,74 @@ +unit Logo; + +interface + procedure WriteLogo; +implementation +uses crt; + + + procedure WriteLogo; + begin; + TextColor(1); + WriteLn(' '); + Write(' /'); + TextColor(9); + Write(''); + TextColor(1); + WriteLn('\'); + Write(' '); + TextColor(9); + Write('۲'); + TextColor(1); + Write(''); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' '); + TextColor(9); + Write(''); + TextColor(1); + Write('۳'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' Ŀ'); + TextColor(9); + Write(''); + TextColor(1); + Write('۳'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' '); + TextColor(4); + Write(''); + TextColor(1); + Write(''); + TextColor(9); + Write(''); + TextColor(1); + Write('۳'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' ۲'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' '); + TextColor(0); + TextBackground(7); + Write(' I N D U S T R I E S '); + TextBackground(0); + TextColor(1); + WriteLn; + WriteLn(' '); + Write(' '); + TextColor(0); + WriteLn(' (C)1995-1996 by RoboCop INDUSTRIES'); + WriteLn('If you cannot decrypt ^THAT^ Symbol, install the ANSI.SYS Driver!'); + end; + +begin + WriteLn(' Loading Unit: Logo - geschrieben von RoboCop IND.'); +end. \ No newline at end of file diff --git a/METEX.PAS b/METEX.PAS new file mode 100644 index 0000000..fad003c --- /dev/null +++ b/METEX.PAS @@ -0,0 +1,60 @@ +program Metex; + +uses Crt; + +var P: string; + Port: text; + TempVar: string[14]; + +procedure SetDeviceRaw(var T: Text); assembler; { DOS-Intr 21h - Fkt. 3 holen 4 senden } +asm + LES DI,T + MOV BX,WORD PTR ES:[DI] + MOV AX,4400H + INT 21H + TEST DX,0080H + JZ @@1 + OR DL,20H + MOV DH,DH + MOV AX,4401H + INT 21H +@@1: +end; + +procedure SendData(var T: char); assembler; +asm + mov ax,4 + mov dx,T + int 21 +end; + +function GetData: char; assembler; +asm + mov ax,3 + int 21 + mov GetData,ax +end; + +begin + ClrScr; + WriteLn('Setting Var ...'); + P := 'COM2'; + WriteLn('Assigning ...'); + Assign(Port,P); + WriteLn('ReWrite'); + Rewrite(Port); + WriteLn('SetDeviceRaw(Port)'); + SetDeviceRaw(Port); + WriteLn('Trying to write something ...'); + Write(Port,'D'); + WriteLn('Close'); + Close(Port); + WriteLn('Reset'); + Reset(Port); + WriteLn('Trying to read ...'); + Read(Port,TempVar); + WriteLn('Closing...'); + Close(Port); + WriteLn('Output...'); + WriteLn(TempVar); +end. \ No newline at end of file diff --git a/MORSE.DAT b/MORSE.DAT new file mode 100644 index 0000000..aa99bf7 --- /dev/null +++ b/MORSE.DAT @@ -0,0 +1,113 @@ +Morse Code v1.0 +RoboCop of nOOb Data File +0309278444 +54 +A +.- +B +-... +C +-.-. +D +-.. +E +. +F +..-. +G +--. +H +.... +I +.. +J +.--- +K +-.- +L +.-.. +M +-- +N +-. +O +--- +P +.--. +Q +--.- +R +.-. +S +... +T +- +U +..- +V +...- +W +.-- +X +-..- +Y +-.-- +Z +--.. + +.-.- + +---. + +..-- + +..-.. +ch +---- +1 +.---- +2 +..--- +3 +...-- +4 +....- +5 +..... +6 +-.... +7 +--... +8 +---.. +9 +----. +0 +----- +- +-....- +. +.-.-.- +? +..--.. +/ +-..-. +: +---.. += +-...- ++ +.-.-. +* +-..- +RDY! +-.- +*WAIT* +.-... +STOP! +...-.- +BEGIN +-.-.- +ERR! +........ + \ No newline at end of file diff --git a/MORSE.PAS b/MORSE.PAS new file mode 100644 index 0000000..af5a8b3 --- /dev/null +++ b/MORSE.PAS @@ -0,0 +1,104 @@ +program Morse; { invented and programmed by Markus Birth } +uses Crt, Logo; { those units are within our game } + +type MorseData=record { I'm trying to make it easier } + Symbol:String; + Code:String; + end; + +var Char2Morse: string; { Where do all the Datas live? } + MorseCode: string; + f: text; + Mors:array[0..100] of MorseData; + i, j: integer; + SingleC: string; + Codes: integer; + + +const SDelay = 50; { How fast R U ? } + LDelay = 200; + MTone = 1200; + Pause = 50; + CDelay = 200; + WDelay = 3*CDelay; + +procedure ReadData; { What the hell is a 'Morsecode'?? } + begin + Assign(f, 'morse.dat'); + Reset(f); + for i:=1 to 3 do ReadLn(f); + ReadLn(f, Codes); + Codes := Codes-1; + for i:=0 to Codes do begin + ReadLn(f, Mors[i].Symbol); + ReadLn(f, Mors[i].Code); + if Eof(f) then break; + end; + close(f); + end; + +function MorseSeek(Buch: string): string; + begin + for i:=0 to Codes do + if Mors[i].Symbol=Buch then MorseSeek := Mors[i].Code; + if Buch='' then MorseSeek := '' + end; + +procedure MorseIt(MC: string); + var MTemp: string; + begin + if MC='' then exit; + for i:=1 to length(MC) do begin + MTemp := Copy(MC, i, 1); + if MTemp = '.' then begin + Sound(MTone); + Delay(SDelay); + NoSound; + end; + if MTemp = '-' then begin + Sound(MTone); + Delay(LDelay); + NoSound; + end; + Write(MTemp); + Delay(Pause); + end; + Delay(CDelay); + WriteLn; + end; + +procedure ConvUpCase; + begin + for i:=1 to Length(Char2Morse) do + Char2Morse[i] := UpCase(Char2Morse[i]); + end; + +begin { Come get some! Let's rock. } + ClrScr; + WriteLogo; + TextColor(15); + WriteLn('wrote another nice little program'); + TextColor(14); + WriteLn('-= Morse =-'); + ReadData; + WriteLn; + TextColor(7); + WriteLn('Press any key to continue ...'); + ReadKey; + ClrScr; + TextColor(15); + WriteLn('Enter any text! To Exit just press return.'); + ReadLn(Char2Morse); + ConvUpCase; + for j:=1 to Length(Char2Morse) do begin + SingleC := Copy(Char2Morse, j, 1); + MorseCode := MorseSeek(SingleC); + if SingleC = ' ' then begin + Delay(WDelay); + WriteLn; + end + else MorseIt(MorseCode); + end; + WriteLn; + WriteLn('Exiting...'); +end. \ No newline at end of file diff --git a/MUSIK.PAS b/MUSIK.PAS new file mode 100644 index 0000000..432371e --- /dev/null +++ b/MUSIK.PAS @@ -0,0 +1,43 @@ +program Musik; + +uses Crt,BasicStrings; + +var c: char; + o: longint; + t: integer; + x,y: integer; + m: integer; + +label Anfang,Ende; + +begin +ClrScr; +m:=0; +Anfang: + c:=ReadKey; + o:=Ord(c); + t:=o*m; + Sound(t); + Delay(50); + NoSound; + Write(c); + x:=WhereX; + y:=WhereY; + if ((o=43) AND (m<99)) then Inc(m); + if ((o=45) AND (m>0)) then Dec(m); + TextColor(14); + TextBackground(1); + GotoXY(78,1); + Write(o:3); + GotoXY(79,2); + Write(m:2); + GotoXY(76,3); + Write(t:5); + TextBackground(0); + TextColor(15); + GotoXY(x,y); + if o=27 then goto Ende; + if o=13 then WriteLn; + goto Anfang; +Ende: +end. \ No newline at end of file diff --git a/NOKIA_G/5SMILIES.NGG b/NOKIA_G/5SMILIES.NGG new file mode 100644 index 0000000000000000000000000000000000000000..98a691470d2d2bf4cb424f494db0bf7f2e835731 GIT binary patch literal 1151 zcmbu8OH#uy42In;i=IITaMO54*+L0Jfd%CPq4hKw+9s0(GQB<4!**L9!-ULO%5O=Z zCh>U_}*w9l2SDVK|#jg=UUF@#|fC34}HsH8~V_X>l^I9)!Mqdtah z;skhTo=(~ahW~!z>`XvQNuCp=aDoc~cN4JjEij0oLOgkUvGEazihO(Vyyu7dO(BRH zhNOXtPDCiY!)xgO#nu0`SyR2&ldQ?>qFljkxwRTTOp*DdE=bPnnKB{+G%*q*A`w6XPApm-rVXs literal 0 HcmV?d00001 diff --git a/NOKIA_G/ADULTS.NGG b/NOKIA_G/ADULTS.NGG new file mode 100644 index 0000000000000000000000000000000000000000..723d8ce229fe38fec95493ab0bb1933a5f7ec058 GIT binary patch literal 1151 zcmaKq(Qbl35JmB|5B-Mu07QAKeQhmGw0)@k0jfkuwGcpwe_v*2@37LXByeZX+_^i6 zz9&gA30{Ny{yPcQ!Q4JE3RXR6;b#u@#c11!@iV2^f+zad3_`J%fx0ESR?!^xiP3=* z!E8lSZZpJ%HU*a*1~}E9P?iuhhNz_C8^6(HBIWY%8M<%6o)LNa~#b>dMc|+UF`Fg;>F^DKJ)UJ zHnhr`=8)APt(Ke3dig=mSySwPLdx5=dYsL=u8Y3KGu@e1v@MSzy`{U1zAmGfyI&V1 B>G1#n literal 0 HcmV?d00001 diff --git a/NOKIA_G/BLABLA.NGG b/NOKIA_G/BLABLA.NGG new file mode 100644 index 0000000000000000000000000000000000000000..528bcfda8d75ee82e8e4e9e1ccbec21ca8dc36cf GIT binary patch literal 1100 zcmbu6K@P$o5Jl+$^bE6e*OskI6UBvkht`smXwn8y;_U_63R+W0JBu>R%zyJkFNB~3 z9no5U6Ldm(FmNBi!RdhkgYooSpzAR6L7L&V*bC0Rit7b3qq2UCS~KS`^a=wpdW*BC zDFt@_w5_01b)dz5h6VH9$Me&JmcGxIpWzaHj{QVS$AcQ?V%(0exS#B@c(phAvE$YL zrw4YYAc`lgpnSo(;J1f>9pkdz2q3&@Yj%Zw#bm=%APvX{YAM@omMNuDMN7q*q+FyG GUA+NFLD{$f literal 0 HcmV?d00001 diff --git a/NOKIA_G/D2.NOL b/NOKIA_G/D2.NOL new file mode 100644 index 0000000000000000000000000000000000000000..6d4190b4edd0125f89d7c070e6f35c1766d04177 GIT binary patch literal 1155 zcmb`F%MOAt5Jig%clr(U0TpG5TOTnIB~dpnQ5zsWN`OfGdqF6DPz@w@Gt)bB&rAwi z*FgsA8$Gl_!#p$45l!^RQclq&OM0KG%AWkDPzt5RQ87(QD^7)B1Nkx^rL3~zuc&a? zHl;-^{sR4_rVbSERo>;1*-iqc3q^j6`mZUd0+9{*9_40X10ntH<`vd1#d;U6a)&nK zjY9SxOg>LwR;hLgE@}-;vH9KIh{Rq>ys3d`_DFgz`Df?-CZR~-653YKl#a0uw# zOJGfs&1TWEOsy_N$5W?1Zf&g$Kx!^%xl>*x_nCJncgvMybFQTOTi4@%KYmV literal 0 HcmV?d00001 diff --git a/NOKIA_G/FRIEND.NGG b/NOKIA_G/FRIEND.NGG new file mode 100644 index 0000000000000000000000000000000000000000..403c3c743e6a0e05a514f856b046ba5e1a33c1b5 GIT binary patch literal 1149 zcmb`DO;UqE5QWLsg=gpk5E6FAr5dp+>O#B#CRCu32sIF?+}`P*X$A~Cr;3^G@4bFA z#e0$jv*0DTwfihcgXM6=vWE0(7snRUc18ZboMHIXeeNk!`k0S;~I!PI~?i>j;Nn)e5udHKnDh?))TC#!v`g%I@j~WWOY$);ki8KA^gPA zGK9yfzL;`fv=FaWcko$Mr>ucZ-ZaPDgs@qs>FfFfp7N&Le}_=CZGFF3bX^x6*fZae Z6m6?h2yfXghp&r0&Eed@LuuOL<`CFHD literal 0 HcmV?d00001 diff --git a/NOKIA_G/GRAPHEDT.PAS b/NOKIA_G/GRAPHEDT.PAS new file mode 100644 index 0000000..a045666 --- /dev/null +++ b/NOKIA_G/GRAPHEDT.PAS @@ -0,0 +1,973 @@ +{$M $F000,0,65536} + +program GraphEdit; + +uses Crt, Dos, Graph, GUI, BGIP; + +const desktopcolor=3; + blocksize=2048; + zd: byte=8; + xd=10; + yd=25; + bigact=0; biginact=15; bigline=8; + smaact=0; smainact=10; smaline=15; + savefmt: string[3]='NGG'; + +var xmax, ymax, xmed, ymed: word; + graphic: array[1..72,1..14] of boolean; + buttondown: boolean; + somethinginmem: boolean; + odfs,dfs: string; + df: file; + + +function V2S(x: word): string; +var tmp: string; +begin + Str(x,tmp); + V2S := tmp; +end; + +function LowCase(txt: string): string; +var tmp: string; + i: word; +begin + tmp := txt; + for i:=1 to Length(txt) do begin + if (txt[i] IN [#65..#90]) then tmp[i]:=Chr(Ord(txt[i])+32); + end; + LowCase := tmp; +end; + +procedure Init; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + somethinginmem := false; + buttondown := false; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Last file: ',dfs); + WriteLn; + WriteLn('Program terminated.'); +end; + +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'NOKIA Graphic Editor'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'written by Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initializing color palette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Please press any key (mouse or keyboard)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); + ClearStatus; + SetTextStyle(SmallFont,HorizDir,4); + SetColor(15); +end; + +procedure NoLoad; +begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(462,430,535,445); + ShowMouse(true); +end; + +procedure CantLoad; +begin + ShowMouse(false); + SetColor(0); + Rectangle(462,430,535,445); + SetColor(12); + Line(463,431,534,444); + Line(463,444,534,430); + ShowMouse(true); +end; + +procedure TryPreview(what: string); +var pf: file; + offs: word; + tmp: array[0..blocksize] of char; + ec: word; + i,j: byte; +begin + SetFillStyle(SolidFill,7); + Bar(462,430,535,445); + Assign(pf,what); + {$I-} + Reset(pf,1); + if IOResult<>0 then begin + CantLoad; + Exit; + end; + {$I+} + BlockRead(pf,tmp,blocksize,ec); + Close(pf); + if (ec=0) then begin + CantLoad; + Exit; + end; + offs:=0; + repeat + Inc(offs); + until ((tmp[offs-1]=#00) AND (tmp[offs]=#72) AND (tmp[offs+1]=#00) AND (tmp[offs+2]=#14)) OR (offs=ec-2); + if (offs=ec-2) then begin + CantLoad; + Exit; + end; + Inc(offs,9); + ShowMouse(false); + SetColor(0); + SetFillStyle(SolidFill,10); + Bar(462,430,535,445); + Rectangle(462,430,535,445); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (tmp[(j-1)*72+i+offs]='1') then begin + PutPixel(462+i,430+j,0); + { end else begin + PutPixel(462+i,430+j,7); } + end; + end; + end; + ShowMouse(true); +end; + +procedure SelectFile; +const entr=43; +var df: text; + fils: array[1..215] of string[12]; + maxf: byte; + tmp: string; + i,j: byte; + xp,yp: word; + ofi: byte; + wassomewhere,oversomewhere: boolean; +begin + Status('Reading directory structure....'); + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C DIR /A>'+GetEnv('TEMP')+'dirlist.$$$'); + SwapVectors; + Assign(df,GetEnv('TEMP')+'dirlist.$$$'); + {$I-} + Reset(df); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('ERROR while trying to read directory.'); + Halt; + end; + {$I+} + i:=1; + repeat + ReadLn(df,tmp); + if (tmp[1] IN [#65..#95]) OR (tmp[1] IN [#48..#58]) OR (tmp[1]='-') then begin + j:=1; + repeat + Inc(j); + until (tmp[j]=' '); + if (Copy(tmp,14,5)<>'') then begin + fils[i]:=Copy(tmp,1,j-1)+'.'+Copy(tmp,10,3); + fils[i]:=LowCase(fils[i]); + Inc(i); + end else begin + (* fils[i]:=Copy(tmp,1,j-1); + if (Copy(tmp,10,3)<>' ') then fils[i]:=fils[i]+'.'+Copy(tmp,10,3); + Inc(i); *) + end; + end; + if (i>215) then Exit; + until Eof(df); + Close(df); + Erase(df); + maxf := i-1; + Status('Reading directory structure....done.'); + ShowMouse(false); + MakeWindow(100,5,540,450,'Open file'); + MakeButton(105,420,170,445,'New'); + MakeButton(175,420,240,445,'Quit'); + if (somethinginmem) then MakeButton(245,420,310,445,'Cancel'); + SetTextStyle(SmallFont,HorizDir,4); + SetTextJustify(LeftText,TopText); + SetColor(0); + OutTextXY(110,25,'..'); + for i:=1 to maxf do begin + j:=i DIV entr; + xp:=110+j*85; + yp:=25+(i-j*entr)*9; + OutTextXY(xp,yp,fils[i]); + end; + ofi := 0; + repeat + ShowMouse(true); + MouseStat(mx,my,mb); + StatusTime(false); + wassomewhere:=false; + oversomewhere:=false; + if MouseOver(110,25,185,35) then begin { Parent directory } + { oversomewhere:=true; } + end; + for i:=1 to maxf do begin + j:=i DIV entr; + xp:=110+j*85; + yp:=25+(i-j*entr)*9; + if MouseOver(xp,yp+2,xp+75,yp+10) then begin + oversomewhere:=true; + if (i<>ofi) then begin + SetTextJustify(LeftText,TopText); + ShowMouse(false); + SetColor(9); + OutTextXY(xp,yp,fils[i]); + TryPreview(fils[i]); + dfs := fils[i]; + SetColor(0); + if ofi<>0 then OutTextXY(110+(ofi DIV entr)*85,25+(ofi-(ofi DIV entr)*entr)*9,fils[ofi]); + ShowMouse(true); + ofi := i; + end; + wassomewhere:=true; + end; + end; + if (NOT wassomewhere) AND (ofi<>0) then begin + ShowMouse(false); + SetColor(0); + OutTextXY(110+(ofi DIV entr)*85,25+(ofi-(ofi DIV entr)*entr)*9,fils[ofi]); + ShowMouse(true); + NoLoad; + ofi := 0; + end; + if MouseOver(105,420,170,445) then begin + oversomewhere:=true; + Status('Click to start a new graphic'); + if (mb=1) then begin + MakeBeveledButton(105,420,170,445,'New'); + repeat MouseStat(mx,my,mb); until (mb=0); + dfs:='untitled'; + exit; + end; + end; + if MouseOver(175,420,240,445) then begin + oversomewhere:=true; + Status('Click to terminate this program'); + if (mb=1) then begin + MakeBeveledButton(175,420,240,445,'Quit'); + repeat MouseStat(mx,my,mb); until (mb=0); + Outit; + Halt; + end; + end; + if (somethinginmem) AND (MouseOver(245,420,310,445)) then begin + oversomewhere:=true; + Status('Click to go back without changing something'); + if (mb=1) then begin + MakeButton(245,420,310,445,'Cancel'); + repeat MouseStat(mx,my,mb); until (mb=0); + dfs:='noload'; + exit; + end; + end; + if (NOT oversomewhere) AND (oldstat<>'') then ClearStatus; + until ((mb<>0) AND (oversomewhere)) or keypressed; + if keypressed then begin + ReadKey; + Halt; + end; + SetFillStyle(SolidFill,desktopcolor); + ShowMouse(false); + Bar(100,5,540,450); + ShowMouse(true); +end; + +procedure LoadFile; +var sts: string; + offs: word; + tmp: array[0..blocksize] of char; + ec: word; + i,j: byte; +begin + sts := 'Loading file '+dfs+'....'; + Status(sts); + odfs := dfs; + Assign(df,dfs); + {$I-} + Reset(df,1); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('ERROR while trying to open file '+dfs+'.'); + Halt; + end; + {$I+} + BlockRead(df,tmp,blocksize,ec); + Close(df); + if (ec=0) then begin + TextMode(co80); + WriteLn('ERROR while reading file '+dfs+'.'); + Halt; + end; + sts := sts + V2S(ec) + ' Bytes read.'; + Status(sts); + offs:=0; + repeat + Inc(offs); + until ((tmp[offs-1]=#00) AND (tmp[offs]=#72) AND (tmp[offs+1]=#00) AND (tmp[offs+2]=#14)) OR (offs=ec-2); + if (offs=ec-2) then begin + TextMode(co80); + WriteLn('ERROR while searching graphic offset. (Wrong file?)'); + Halt; + end; + Inc(offs,9); + sts := sts + ' Offset is '+V2S(offs)+'.'; + Status(sts); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (tmp[(j-1)*72+i+offs]='1') then graphic[i,j]:=true else graphic[i,j]:=false; + end; + end; + sts := sts + ' File is now in buffer.'; + Status(sts); + if (Copy(dfs,Length(dfs)-2,3)='ngg') then savefmt := 'NGG' + else if (Copy(dfs,Length(dfs)-2,3)='nol') then savefmt := 'NOL'; +end; + +procedure ClearBuf; +var i,j: byte; +begin + for j:=1 to 14 do begin + for i:=1 to 72 do begin + graphic[i,j]:=false; + end; + end; + Status('Graphics buffer cleared.'); +end; + +procedure PaintMash; +var i,j: byte; +begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(xd,yd,xd+576,yd+135); + SetFillStyle(SolidFill,biginact); + Bar(xd,yd,xd+72*zd,yd+14*zd); + SetFillStyle(SolidFill,smainact); + Bar(xd,yd+120,xd+73,yd+135); + SetColor(smaline); Rectangle(xd,yd+120,xd+73,yd+135); + if (zd>3) then begin + SetColor(bigline); Rectangle(xd,yd,xd+72*zd,yd+14*zd); + for i:=1 to 71 do Line(xd+i*zd,yd+1,xd+i*zd,yd+14*zd-1); + for i:=1 to 13 do Line(xd+1,yd+i*zd,xd+72*zd-1,yd+i*zd); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (graphic[i,j]) then begin + SetFillStyle(SolidFill,bigact); + FloodFill(xd+i*zd-zd DIV 2,yd+j*zd-zd DIV 2,bigline); + PutPixel(xd+i,yd+120+j,smaact); + end; + end; + end; + end else begin + SetColor(bigline); Rectangle(xd,yd,xd+72*zd+1,yd+14*zd+1); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (graphic[i,j]) then begin + SetFillStyle(SolidFill,bigact); + PutPixel(xd+i,yd+120+j,smaact); + Bar(xd+(i-1)*zd+1,yd+(j-1)*zd+1,xd+i*zd,yd+j*zd); + end else begin + SetFillStyle(SolidFill,biginact); + PutPixel(xd+i,yd+120+j,smainact); + Bar(xd+(i-1)*zd+1,yd+(j-1)*zd+1,xd+i*zd,yd+j*zd); + end; + end; + end; + end; + ShowMouse(true); +end; + +procedure PrintZFact; +var tmp: string; +begin + SetFillStyle(SolidFill,7); + Bar(590,75,633,86); + SetTextJustify(CenterText,CenterText); + SetTextStyle(SmallFont,HorizDir,4); + Str(zd,tmp); + tmp := tmp+'x'; + SetColor(0); + ShowMouse(false); + OutTextXY(611,80,tmp); + OutTextXY(612,80,tmp); + ShowMouse(true); +end; + +procedure UpdatePix(x,y: word); +begin + ShowMouse(false); + if (zd>3) then begin + if (graphic[x,y]) then begin + SetFillStyle(SolidFill,bigact); + FloodFill(xd+x*zd-zd DIV 2,yd+y*zd-zd DIV 2,bigline); + PutPixel(xd+x,yd+120+y,smaact); + end else begin + SetFillStyle(SolidFill,biginact); + FloodFill(xd+x*zd-zd DIV 2,yd+y*zd-zd DIV 2,bigline); + PutPixel(xd+x,yd+120+y,smainact); + end; + end else begin + if (graphic[x,y]) then begin + SetFillStyle(SolidFill,bigact); + PutPixel(xd+x,yd+120+y,smaact); + Bar(xd+(x-1)*zd+1,yd+(y-1)*zd+1,xd+x*zd,yd+y*zd); + end else begin + SetFillStyle(SolidFill,biginact); + PutPixel(xd+x,yd+120+y,smainact); + Bar(xd+(x-1)*zd+1,yd+(y-1)*zd+1,xd+x*zd,yd+y*zd); + end; + end; + ShowMouse(true); +end; + +procedure MakeEditorWindow; +begin + ShowMouse(false); + MakeWindow(0,0,639,467,'Graphics editor ['+dfs+']'); + MakeButton(590,24,633,74,'ZOOM+'); + MakeButton(590,87,633,137,'ZOOM-'); + MakeButton(5,442,70,462,'New'); + MakeButton(75,442,140,462,'Load'); + MakeButton(145,442,210,462,'Save'); + MakeButton(215,442,280,462,'Quit'); + PrintZFact; + PaintMash; + ShowMouse(true); +end; + +function CheckName(fn: string): boolean; +var i: word; + checkok: boolean; +begin + checkok := true; + if (Length(fn)>12) then checkok:=false; + for i:=1 to Length(fn) do begin + if (fn[i])='.' then begin + if (i>9) OR (i<2) then checkok:=false; + if (Length(fn)-i>3) OR (Length(fn)-i<1) then checkok:=false; + end; + end; + CheckName := checkok; +end; + +function CheckExist(fn: string): boolean; +var testf: file; +begin + Assign(testf,fn); + {$I-} + Reset(testf,1); + if (IOResult=0) then begin + Close(testf); + {$I+} + CheckExist := true; + Exit; + end; + CheckExist := false; +end; + +function StripExt(fn: string): string; +var i: word; +begin + for i:=1 to Length(fn) do begin + if fn[i]='.' then begin + StripExt := Copy(fn,1,i-1); + Exit; + end; + end; + StripExt := fn; +end; + +procedure MapExt(var fn: string;ext: string); +var i: word; +begin + fn := StripExt(fn); + if Length(fn)>8 then fn:=Copy(fn,1,8); + fn := fn + '.' + LowCase(ext); +end; + +procedure PaintRadios; +begin + MakeBeveledButton(140,320,275,360,''); + if (savefmt='NGG') then begin + MakeBevRadiobutton(150,330,'NOKIA Group-Graphic'); + end else MakeRadiobutton(150,330,'NOKIA Group-Graphic'); + if (savefmt='NOL') then begin + MakeBevRadiobutton(150,340,'NOKIA Operator-Logo'); + end else MakeRadiobutton(150,340,'NOKIA Operator-Logo'); + gui_dis := true; + if (savefmt='B1N') then begin + MakeBevRadiobutton(150,350,'Binary format'); + end else MakeRadiobutton(150,350,'Binary format'); + gui_dis := false; + MapExt(dfs,savefmt); +end; + +procedure CheckFile(fn: string); +var line1,line2: string; + colr1,colr2: byte; + testf: file; + testimg: array[1..72,1..14] of boolean; + tmp: array[0..blocksize] of char; + ec: word; + offs: word; + i,j: byte; +begin + line1:=''; + line2:=''; + colr1:=0; + colr2:=0; + SetFillStyle(SolidFill,7); + Bar(300,300,505,350); + if (NOT CheckName(fn)) then begin + colr1 := 12; + line1 := 'Invalid filename'; + colr2 := 6; + line2 := 'Enter a valid filename'; + end; + if (line1='') then begin + Assign(testf,fn); + {$I-} + Reset(testf,1); + if (IOResult=0) then begin + colr1 := 12; + line1 := 'File exists!'; + colr2 := 2; + line2 := 'Enter another filename'; + Blockread(testf,tmp,blocksize,ec); + Close(testf); + if (ec=0) then begin + { NOT READABLE } + Exit; + end; + offs:=0; + repeat + Inc(offs); + until ((tmp[offs-1]=#00) AND (tmp[offs]=#72) AND (tmp[offs+1]=#00) AND (tmp[offs+2]=#14)) OR (offs=ec-2); + if (offs=ec-2) then begin + { NO OFFSET } + Exit; + end; + Inc(offs,9); + SetColor(0); + Rectangle(427,324,500,339); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (tmp[(j-1)*72+i+offs]='1') then PutPixel(427+i,324+j,0) else PutPixel(427+i,324+j,10); + end; + end; + end; + {$I+} + end; + SetTextJustify(RightText, CenterText); + SetTextStyle(SmallFont,HorizDir,4); + SetColor(colr1); + OutTextXY(500,303,line1); + OutTextXY(499,303,line1); + SetColor(colr2); + OutTextXY(500,313,line2); + OutTextXY(499,313,line2); +end; + +procedure SaveFile; +const NGGhead: array[0..15] of char=(#78,#71,#71,#00,#01,#00,#72,#00,#14,#00, + #01,#00,#01,#00,#76,#00); + NGGhl=15; + NOLhead: array[0..19] of char=(#78,#79,#76,#00,#01,#00,#249,#01,#01,#00, + #72,#00,#14,#00,#01,#00,#01,#00,#87,#00); + NOLhl=19; + Foot: string='File saved by Markus Birth''s Graphic Editor. Go to http://www.webwriters.de'; +var oldfs: string; + Key: char; + Cont, alrchg, over: boolean; + savf: file; + savbuf: array[0..blocksize] of char; + sbo,sbc,ec: word; + i,j: word; +begin + Cont := false; + alrchg := false; + ShowMouse(false); + MakeWindow(120,170,520,420,'Save file'); + MakeButton(125,395,323,415,'SAVE NOW!'); + MakeButton(327,395,515,415,'Cancel'); + SetTextStyle(SmallFont,HorizDir,4); + SetTextJustify(LeftText,BottomText); + OutTextXY(141,247,'Filename:'); + OutTextXY(141,317,'Format:'); + MakeBeveledButton(140,250,500,295,''); + PaintRadios; + + ShowMouse(true); + + SetColor(8); + SetTextStyle(TripleXFont,HorizDir,5); + SetTextJustify(LeftText,CenterText); + OutTextXY(145,266,dfs); + CheckFile(dfs); + oldfs := dfs; + + repeat + repeat + over := false; + MouseStat(mx,my,mb); + if (dfs<>oldfs) then begin + ShowMouse(false); + MakeBeveledButton(140,250,500,295,''); + SetColor(0); + SetTextStyle(TripleXFont,HorizDir,5); + SetTextJustify(LeftText,CenterText); + OutTextXY(145,266,dfs); + CheckFile(dfs); + oldfs := dfs; + ShowMouse(true); + end; + if MouseOver(125,395,323,415) then begin + over := true; + Status('Click to save the graphic as '+dfs); + if (mb=1) then MakeBeveledButton(125,395,323,415,'SAVE NOW!'); + end; + if MouseOver(327,395,515,415) then begin + over := true; + Status('Cancel this operation'); + if (mb=1) then begin + MakeBeveledButton(327,395,515,415,'Cancel'); + Key := #27; + dfs := odfs; + end; + end; + if MouseOver(145,325,270,334) then begin + over := true; + Status('Change format to NOKIA Group-Graphic'); + if (mb=1) then begin + savefmt := 'NGG'; + PaintRadios; + MapExt(dfs,savefmt); + repeat MouseStat(mx,my,mb); until (mb=0); + end; + end; + if MouseOver(145,335,270,344) then begin + over := true; + Status('Change format to NOKIA Operator-Logo'); + if (mb=1) then begin + savefmt := 'NOL'; + PaintRadios; + MapExt(dfs,savefmt); + repeat MouseStat(mx,my,mb); until (mb=0); + end; + end; + if MouseOver(145,345,270,354) then begin + over := true; + Status('Change format to binary [not yet implemented]'); + end; + if ((NOT over) AND (oldstat<>'')) then ClearStatus; + StatusTime(false); + until (keypressed) OR (((MouseOver(125,395,323,415)) OR (MouseOver(327,395,515,415))) AND (mb=1)); + ClearStatus; + if (keypressed) then Key := ReadKey; + if (MouseOver(125,395,323,415)) AND (mb=1) then Key := #13; + repeat MouseStat(mx,my,mb); until (mb=0); + case Key of + #08: begin + if (Length(StripExt(dfs))>0) then begin + dfs := Copy(StripExt(dfs),1,Length(StripExt(dfs))-1); + MapExt(dfs,savefmt); + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end; + #27: begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(120,170,520,420); + ShowMouse(true); + Exit; + end; + #13: begin + if (NOT CheckName(dfs)) OR (CheckExist(dfs)) then begin + Sound(800); + Delay(50); + NoSound; + Key := #00; + if (NOT CheckName(dfs)) then Alert('Invalid filename.'); + if (CheckExist(dfs)) then Alert('File exists on disk.'); + MakeButton(125,395,323,415,'SAVE NOW!'); + end; + end; + else + if (Key IN [#65..#90]) OR (Key IN [#48..#58]) OR (Key IN [#97..#122]) OR (Key='-') OR (Key='_') then begin + if (Length(StripExt(dfs))<8) then begin + if (dfs=odfs) AND (NOT alrchg) then begin + dfs := LowCase(key); + alrchg := true; + end else begin + dfs := StripExt(dfs)+LowCase(Key); + alrchg := true; + end; + MapExt(dfs,savefmt); + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end; + until (Key=#13) OR (Key=#27); + if (Key=#27) then Exit; + Assign(savf,dfs); + {$I-} + Rewrite(savf,1); + if (IOResult<>0) then begin + TextMode(co80); + WriteLn('ERROR while opening output file.'); + Halt; + end; + {$I+} + if (savefmt='NGG') then begin + for i:=0 to NGGhl do begin + savbuf[i] := NGGhead[i]; + end; + sbo := NGGhl+1; + end else if (savefmt='NOL') then begin + for i:=0 to NOLhl do begin + savbuf[i] := NOLhead[i]; + end; + sbo := NOLhl+1; + end; + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (graphic[i,j]) then savbuf[sbo+(i-1)+(j-1)*72] := '1' else savbuf[sbo+(i-1)+(j-1)*72] := '0'; + end; + end; + for i:=1 to Length(foot) do begin + savbuf[sbo+1007+i] := foot[i]; + end; + savbuf[sbo+1008+Length(foot)] := #13; + sbc := sbo+1008+Length(foot)+1; + BlockWrite(savf,savbuf,sbc,ec); + Close(savf); + Alert('File saved.'); + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(120,170,520,420); + ShowMouse(true); +end; + +procedure Editor; +const ExitNow: boolean=false; +var i: byte; + ovso: boolean; + wx,wy,owx,owy: word; + xmx,xmy: word; + Key: char; +begin + MakeEditorWindow; + ShowMouse(true); + repeat + ovso:=false; + MouseStat(mx,my,mb); + wx := (mx-xd) DIV zd+1; + wy := (my-yd) DIV zd+1; + if (wx<>owx) OR (wy<>owy) then begin + if (wx>0) AND (wx<73) AND (wy>0) AND (wy<15) then begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(xd+80,yd+115,xd+200,yd+135); + SetTextJustify(CenterText,CenterText); + SetTextStyle(SmallFont,HorizDir,5); + SetColor(0); + OutTextXY(xd+140,yd+125,V2S(wx)+'/'+V2S(wy)); + OutTextXY(xd+141,yd+125,V2S(wx)+'/'+V2S(wy)); + owx:=wx; + owy:=wy; + ShowMouse(true); + end else if (owx<>0) AND (owy<>0) then begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(xd+80,yd+115,xd+200,yd+135); + SetTextJustify(CenterText,CenterText); + SetTextStyle(SmallFont,HorizDir,5); + SetColor(8); + OutTextXY(xd+140,yd+125,'--/--'); + OutTextXY(xd+141,yd+125,'--/--'); + owx := 0; + owy := 0; + ShowMouse(true); + end; + end; + if (wx>0) AND (wx<73) AND (wy>0) AND (wy<15) then begin + if (mb=1) then begin + xmx:=mx; xmy:=my; repeat MouseStat(mx,my,mb); until (mb=0) OR (mx<>xmx) OR (my<>xmy); + graphic[wx,wy]:=true; + UpdatePix(wx,wy); + end else if (mb=2) then begin + xmx:=mx; xmy:=my; repeat MouseStat(mx,my,mb); until (mb=0) OR (mx<>xmx) OR (my<>xmy); + graphic[wx,wy]:=false; + UpdatePix(wx,wy); + end; + end; + if MouseOver(590,24,633,74) then begin + ovso:=true; + Status('Click to zoom in'); + if (mb=1) then begin + MakeBeveledButton(590,24,633,74,'ZOOM+'); + repeat MouseStat(mx,my,mb); until (mb=0); + if (zd<8) then begin + Inc(zd); + PaintMash; + PrintZFact; + end; + MakeButton(590,24,633,74,'ZOOM+'); + end; + end; + if MouseOver(590,75,633,86) then begin + ovso:=true; + Status('Click to repaint graphic'); + if (mb=1) then begin + repeat MouseStat(mx,my,mb); until (mb=0); + PaintMash; + PrintZFact; + owx := 255; owy := 255; + end; + end; + if MouseOver(590,87,633,137) then begin + ovso:=true; + Status('Click to zoom out'); + if (mb=1) then begin + MakeBeveledButton(590,87,633,137,'ZOOM-'); + repeat MouseStat(mx,my,mb); until (mb=0); + if (zd>2) then begin + Dec(zd); + PaintMash; + PrintZFact; + owx := 255; owy := 255; + end; + MakeButton(590,87,633,137,'ZOOM-'); + end; + end; + if MouseOver(5,442,70,462) then begin + ovso:=true; + Status('Click to clear the graphic completely. WARNING!'); + if (mb=1) then begin + MakeBeveledButton(5,442,70,462,'New'); + repeat MouseStat(mx,my,mb); until (mb=0); + ClearBuf; + dfs := 'untitled'; + MakeEditorWindow; + owx := 255; owy := 255; + end; + end; + if MouseOver(75,442,140,465) then begin + ovso:=true; + Status('Click to load another graphic'); + if (mb=1) then begin + MakeBeveledButton(75,442,140,462,'Load'); + repeat MouseStat(mx,my,mb); until (mb=0); + SelectFile; + if (dfs='untitled') then ClearBuf else if (dfs='noload') then dfs:=odfs else LoadFile; + MakeEditorWindow; + owx := 255; owy := 255; + end; + end; + if MouseOver(145,442,210,462) then begin + ovso:=true; + Status('Click here to save your file'); + if (mb=1) then begin + MakeBeveledButton(145,442,210,462,'Save'); + repeat MouseStat(mx,my,mb); until (mb=0); + ClearStatus; + SaveFile; + MakeButton(145,442,210,462,'Save'); + end; + end; + if MouseOver(215,442,280,462) then begin + ovso:=true; + Status('Click to quit this nice proggy. WARNING: SAVE YOUR FILE FIRST!'); + if (mb=1) then begin + MakeBeveledButton(215,442,280,462,'Quit'); + repeat MouseStat(mx,my,mb); until (mb=0); + Outit; + Halt; + end; + end; + if (NOT ovso) AND (oldstat<>'') then ClearStatus; + StatusTime(false); + if (keypressed) then Key:=ReadKey; + until (mb=3) OR (Key=#27) OR (ExitNow); +end; + +begin + Init; + MouseReset; + if (ParamCount<>1) then begin + StartScreen; + SelectFile; + if (dfs='untitled') then ClearBuf else if (dfs='noload') then dfs:=odfs else LoadFile; + end else begin + dfs:=ParamStr(1); + LoadFile; + InitPalette; + end; + somethinginmem := true; + Editor; + Outit; +end. \ No newline at end of file diff --git a/NOKIA_G/GRAPHICS.NGG b/NOKIA_G/GRAPHICS.NGG new file mode 100644 index 0000000000000000000000000000000000000000..02add3db5517d066391ddd9698c14410e4dc9c5b GIT binary patch literal 1151 zcmaJ-%TB^T6fIj9e#3k~fp#ax9b!#T7vc{fG_(x&K8{043r@DuqyJ>vKAT?u|GjeX(ylNIr_4!=$fB)Ty*QUsyFVb-j}KS%_mvv z=1qI*>RmOsd^WptA60W$_ikDC{l4r{w_L1NFN=5gSoZbqJ9X7CwD;5L@pznkiDtYd THQ6+W)V;2^rTaWx#N7M=&-m)G literal 0 HcmV?d00001 diff --git a/NOKIA_G/GRAPHVW.PAS b/NOKIA_G/GRAPHVW.PAS new file mode 100644 index 0000000..9e204c2 --- /dev/null +++ b/NOKIA_G/GRAPHVW.PAS @@ -0,0 +1,58 @@ +program GraphView; + +uses Crt, Numbers; + +const blocksize=2048; + +var fn: file; + tmp: array[0..blocksize] of char; + ec: word; + i,j: byte; + k: word; + x: char; + offs: byte; + +begin + TextMode(co80+font8x8); + ClrScr; + Write('Reading file ',ParamStr(1),'....'); + Assign(fn,ParamStr(1)); + Reset(fn,1); + BlockRead(fn,tmp,blocksize,ec); + WriteLn(ec,' Bytes read'); + Close(fn); + Write('Looking for offset....'); + offs:=0; + repeat + Inc(offs); + until tmp[offs]=#72; + Inc(offs,9); + WriteLn('Offset is ',offs); + GotoXY( 1,10); Write(''); + GotoXY(74,10); Write(''); + GotoXY( 1,25); Write(''); + GotoXY(74,25); Write(''); + for i:=1 to 14 do begin + GotoXY(1,i+10); Write(''); + GotoXY(74,i+10); Write(''); + for j:=1 to 72 do begin + GotoXY(j+1,10); Write(''); + GotoXY(j+1,25); Write(''); + GotoXY(j+1,i+10); + x:=tmp[(i-1)*72+j+offs]; + if x='1' then Write('') else if x='0' then Write(' ') else Write(x); + end; + end; + GotoXY(1,26); Write('Header: '); + for k:=0 to offs do begin + Write(Dec2Hex(Ord(tmp[k])),' '); + end; + WriteLn; WriteLn; Write('Filetype-string: '); + for k:=offs+72*14+1 to ec do begin + Write(tmp[k]); + end; + WriteLn; WriteLn; + WriteLn('Press any key'); + ReadKey; + TextMode(co80); +end. \ No newline at end of file diff --git a/NOKIA_G/LUX_GSM.NOL b/NOKIA_G/LUX_GSM.NOL new file mode 100644 index 0000000000000000000000000000000000000000..be335f8acdaa12f2e53dfebb0a414ebc75d8dfe7 GIT binary patch literal 1154 zcmeHE%}#?r5MHhx`V8{`l$IkVp0viKXpQ&+*lvJGT>>cS+q?6#3#dtxp52h$kNJLP z7M^yg3e+M9)Pq`B6sQ}u{$FRlKpcyJf!$*%(P=kas9`jPLJ=({l(Co$Z1Y~^BxVLV zh@5OEpUa_%ti%_ohY0atINe>%TO7$T;=l$!pw&4ku_HYzOAN6*yoCZN^70%S38UO- zv&MhVGwuBQPU1PAgH5Ti>oN{Om1zQFoRO9X{D=7xW09+)6yyBkJ~Yy^+v6K$_#k=r z$}xoJ*)_V&d($pcQy93fY8}E?9IZpRHO;B5in50|NfLN1%`xv_tGlk&Z3x>&5nXF5Uy7bKEpgfMSBwyPp-0wyB^dRKy84mE(F*mzP*lg$`p+rjXiXR?{64b z27%~^Ptm*F9WfEZ_c%%^dQsaD(5g55#Y-4g-q%(_khD^(Lk&ha-n%;HHTtU;FLP*8 zyCO{(cGR;Ni*c>hnS9PUId}PH=Cd5Klg^#kB8h$_#ATU{2ZO4ryq{Xr-(M+jmmVd2hkFg% IQ!A!>2A5Ll*8l(j literal 0 HcmV?d00001 diff --git a/NOKIA_G/MYLOVE.NGG b/NOKIA_G/MYLOVE.NGG new file mode 100644 index 0000000000000000000000000000000000000000..ce79599156c379798c97deccb00a58571bce5ab0 GIT binary patch literal 1151 zcmbVIO;dv~5T#cS{)YSjO2f^1)rvD!57rsa*fNE&6$VhI|K9A|O-QhZjyY_|zK?y& zOO{2m=rOuBbr!ux`l6GjX~4sK+Pr`a-}qI7#XJ?FqEDOM;^ zMkOWlUUnkqfOAl21g~JSK#QmC*}?oa^}G+!=*a9Kf%I%{;(!XebkVaa=VKdIG2Sp> zA7=mYVJ;lFh$|`iP@BHwwk&kVGIE)~n*#SB&&T??A4L;JR z+Po>Nt$L^qMXY|(M91o`Zcc5rFME|PmpAIItdDu8)tn2*^If4nP7|A}UwWYH5dZ)H literal 0 HcmV?d00001 diff --git a/NOKIA_G/N00B.NGG b/NOKIA_G/N00B.NGG new file mode 100644 index 0000000000000000000000000000000000000000..6d8105168e5fbf8a9338ff7a2db4d6e4ad20fa2b GIT binary patch literal 1149 zcmbu5!A`?442H8S2cE$Xkaq2jaRf$@1{@eKP_}BRw$Uo-sP^{6cG{sPRVNXtaq`>$ zXQ%I3CT8MA+}eF6B9RPMnzE2~2QNR8@awE%DOk?CyE~N<15@ydW?T%rM5kIgX!As3 zIEYOmk-RR_-7^J*3n#(O0}f{cHc!GzdX!~gvYQ7FltbZ))t8TOc*1EA_ve|gn(utz zQFxysbyf7de{uNzI1yp~07>c^O$>xKB=AnZmK-SZ$9*O+Wb7s(7=ani$0>qq+qWZ^ z6&qAegtvTKz}MMEy+0XvD0QQ5egO*% B>3jeH literal 0 HcmV?d00001 diff --git a/NOKIA_G/SINGTEL.NOL b/NOKIA_G/SINGTEL.NOL new file mode 100644 index 0000000000000000000000000000000000000000..18347659eaf983dc2f0d33dfdea0a787650b9c75 GIT binary patch literal 1155 zcmcJN|89aX5XX!EyJxruC@6p8zs|)(HWT#)a5g}uD*+<$?RULv8BUiV%ML=X_v6#= zHN353;fe9c6HD=go+o@U{TB<_kd2N#!8jp4^rB;oz9#UCQIR8XnWfmp@)+?bhx8ap zEqMS3N9b^Pg8}EHQ7Rt2+H!ypJ6t`8>OQgp*Bnd(7VRkNx7@zfY zPrQ-S?Y@)jANm%-e@Oq%>q^JL)y;QZ&~wKez6EmwgUzULu)lBy3s@JbOln>Fu}(F- z8FIOu8Y}Z(lkx* W!8QJYQo*}ENq9{T3ig*DnDG~#De52q literal 0 HcmV?d00001 diff --git a/NOKIA_G/SONERA.NOL b/NOKIA_G/SONERA.NOL new file mode 100644 index 0000000000000000000000000000000000000000..73f23b3ed80b5cdcd6916e2d297b299fe4498a7d GIT binary patch literal 1155 zcmbtQ+irqD5M4h&zhORLMR=sIYSTno6X{!@P&YuTE&)>FfA<62D|Nx$jp-yXmviRK z%zkVWG(o@U3%#KkizX;Vq1z&DZkiL-61{h_Z6NP9uu;K4Ey++s(jHeW60B_J+mQ!q zgM&0`ONW1eRoc@^W0;4CZjQSFCfaY zoriv%zkWkUOc(7++OtkLI!4Ng1)kDTOG~GR%Tt67)0N)bXj_pwYiT`CXinj^JP`~( zQ4nHS(&}25dC@`?$1!{s^qe)YAx(24HHOVPO_TKwR-`HO3x=X?tCz*1>$>1ua^^x%#Y literal 0 HcmV?d00001 diff --git a/NOKIA_G/SONOFON.NOL b/NOKIA_G/SONOFON.NOL new file mode 100644 index 0000000000000000000000000000000000000000..96ab9be19764c7fc142075c1b37215f86eb11aaa GIT binary patch literal 1155 zcmbV}VNQcU5QVq?*E8$^C@nwnuhtlgHnCm+Eh)s-B|s#-v}bVU4Y0dtYvY#8zMXmR zV@aP@iJGV{b)oLn6{(4OQ1kz;D2lu&&Qhq)!@fh>>w7WS91^HVbPV3)0kxB~{aEx8 z+l3S}x1Gn8c*ht70~IVl`-pd-vDY7A;3bFbj#*O9l`MztK1TA?6v4y(r7Zk|Jz?gM z28;lPBMC65@ZKLBNiDl<4sHbO^jtMiI>?C}Tlq3lSdfArnvcBDhdNSV8wv{vBH2^q ztB(+*-TiC0h1{g$@Oa>yL|{lM1TDki5a@4$IPl?82q-_B{f)CKvnp*&HBHRc=(}Q< z1^P1z=YhU4<)JFJd84B^j`d4!_Gzt`SzYh4D$vWtdYvqu^=(!c+mAr!O;cXaW^LPs X@8X$mFbdzyKG2WpCeyEn5$5t6nQZI9 literal 0 HcmV?d00001 diff --git a/NOKIA_G/SUNS.NGG b/NOKIA_G/SUNS.NGG new file mode 100644 index 0000000000000000000000000000000000000000..34e6c6b86e383860bcd4160252e02bcb7858df8e GIT binary patch literal 1151 zcmb`EI}(C05Qal*;TiS-0Zga1K5)iIp;Po)vyw}de1nN?X>KBxKL#i0YO+T&p*F-BAMor3=Xh~aSMJh#8WI@V_ zF!dVFj=V?uu^)Z0TG7;%`kw@$NDC`_a(5^;_)V589x_K}Rk6qYyFeWN(^kr4P{j1azsSi}TT#}a+KIYG9<`-vf6$JGjTJt?EwAt_}q z%=Cz)YV^h9y^b*y48^jyO|%EE6%^PnN*KcWqKL>p;MX=ETb z>t|L#f|hF%FPhY!cKLtRaew$1*{Y&-*0Oq#vYf%JJW&k4B#JSNS#_<;yl8l*+7 literal 0 HcmV?d00001 diff --git a/NOKIA_G/TELENOR.NOL b/NOKIA_G/TELENOR.NOL new file mode 100644 index 0000000000000000000000000000000000000000..002b0333d83cdf3ee1f0baa2915cb7798020a819 GIT binary patch literal 1155 zcmbu5QBK1!42H7N;I!%v^3rI zG4X=w6%6%E<;V}y$vDL^YEkkd%wZZwAQ5!PhsnfFX2NhAx)GW-dqHvXihvsNCe41>f;m)<^uBqw) zOrGcPQoB>x!^Zag(RLa(>;1l1Kf}H4o9aVDJq+#baygD;_RgNgflAq%J89UK2Me#~ H3(U;vo4 literal 0 HcmV?d00001 diff --git a/NOKIA_G/T_Mobil.nol b/NOKIA_G/T_Mobil.nol new file mode 100644 index 0000000000000000000000000000000000000000..b6492390a4b6435fe962fd23032b7adf41e7b800 GIT binary patch literal 1152 zcmeH@L2kk@5JjC03l=@Y9KZy;OvSE%P)R{5y+8mfiAZo1M~%2W_KXvpitf5WsuS5W z^S__%+3sQ%uu%}OHG45pz~*fB$3wW`VTHiN2(H*iw$dlw4iln+%e{^O-`^9hXOP@C zJrF#Oq0t@O@+-&a^gCYX$1m(S>~+hI}r ziLg1fz*B5X>>X$)&Ng#Ss(beT@R>TWt7M%ts-DCuRj|qn$>CdsGY)U6y4HD`H6WrW zg0D=KiH42Tx{x)8&2qnwm!GhZI!`YgvZkqCr_;7=!!vm%CzQgYDmi>4CkcluyvvJ* JwJge9k8l4w=*9p5 literal 0 HcmV?d00001 diff --git a/NOKIA_G/VIAG.NOL b/NOKIA_G/VIAG.NOL new file mode 100644 index 0000000000000000000000000000000000000000..050c2e9532c03d977e46537f299447a75b52cab7 GIT binary patch literal 1155 zcmc(a&rX9t5XP5_J?S&d15gS_ylRa}(I(;xpxpqm?Ghl8zP&p$yURjo;;kHD{(RqW zKHm442*h2m60hPxSAobyoFwt&nYFZAnoUf)nQ>+Q7R+H4H7I0@kr@@uN1M5?r-p3L;Md}D=~z4`xX~Cg>HQab?1aALpj<8- zX3;x$-yL!%v2e{?iW~#Lm2GI|rDg^T$5UR<0!Hwgmptc$hE5AluSW{JSO(I$c1VkzonJBwvdY?60fYbM?J%WLxyAU1zFP@KPUT2){`bhw!AD zOIw#!4@sJ)@L8!-(ZNo3-BGq7?6!HHZ9m{yc6E6Uq3ZkQakCkQA^Ks>`arAbTb)99 MD-IIAE;G#iAD3q8mjD0& literal 0 HcmV?d00001 diff --git a/NOKIA_G/VODAFONE.NOL b/NOKIA_G/VODAFONE.NOL new file mode 100644 index 0000000000000000000000000000000000000000..69ab4c15e23605fd9b1414cafb1c43d1ae42efe0 GIT binary patch literal 1155 zcmd5%QA)!=5ZxZYdWAVanr1)auT~0;7OdcRv`Z3f-H-%Buk0z@ot;T1RiOxi3)y+| z-kUd@`*o%!>O)(HfPLAiyW0$dPX>y@OFE{-?%~q z*1(dA8rlXs=CLU`j(CHosdB>(qz9EB#S;{R>zp>K+>BYD;MdXdkiV08GX9{_b2-O_ zU@Bf;Hgd){>MwIB5d+;7f``X=K$I^CdC{?wNjSU}k4T~%RFHNA1!4`lpW>y20wa?C z3tZQx$vfN3GFw=4{&4J js(6c_?7I4DKJWWJehr@47Nz*b?jyL%w+5aMCovbF1vBfS literal 0 HcmV?d00001 diff --git a/NOKIA_G/W.nol b/NOKIA_G/W.nol new file mode 100644 index 0000000000000000000000000000000000000000..cdb4aa1c2d17c19f855f367a49aea2f46c517ac9 GIT binary patch literal 1153 zcmebC_hDdUU}I!t@L=ErvKSd`84Pd&LqkKL9E5~XI2GfO7;NT1{Q`3q9+wl4f|&pg zCIV{lNh6zsPaQ!yY8f=x%t47Uf}wy%!KlX!{0mZx5=-)nbba#E^A+4Ob5eB_$_(`k zbQGNP3o45;(=$pG3@t4!6+$xda}$ddyi<#db5e_R6ue!7gMD0s6kJk^Gt={Q6f#Om t3as??%gf94vLR}8Q@~Ps$@#fD3ciUcsR~JzK)NWqv{=C@v#2D43jq5u=>Px# literal 0 HcmV?d00001 diff --git a/NOKIA_G/WW.NOL b/NOKIA_G/WW.NOL new file mode 100644 index 0000000000000000000000000000000000000000..f78c8a17320a841d28eea27646aa6a44162afa11 GIT binary patch literal 1153 zcmb`D&rZWI493$7haGqZKS0+t$8rRQkXD$)xNs~iYODQ8l?JN4J+Yls+2FQXYi#fL z`HS1vbtw{YlO*C<+`1|eA41C9{piUlu#4h?lQzO*d7+CPN%MzCSB@rFu#oPN;fz-r zxudu{CCWG(CV~$edQ(heu#e}lAON-sgv~uetr+{#!&C!{Ndh403>Boc=+7z+prb;^4p}#Pq6$u^-Y9 zq?7adDvlJB3-Z!)9Q9I5?oQ%RcpO<>$Z;5Yk$kQ#4CO6VwE%#NCLxtzQxll);KDqbD~AGeV>a%@G2VYYJ|%X?XCWp+fS@1|dT}=%k_t4+&?lr}|0k;tag~o~}N5 zwZ712KYQur9G~z@3=U?AZtv0;L)>v34IbCiGU|;;&a`I{A-sy5$G5Lq)`D;TJ61Pmw37qpA@5{Ndjmn8#pwE zjaqmWG9(c(emGrBeh9(gp!^UHb&TM5*15X|Y4f@FqaXjxzj41PSU0xa^{$=eu5j>B9c&C=X|jmn z&NaujD#{+xEX!b9x_Z~a%68qswlS=hn@zrafqUCk#b*p<-#54O`7jL02YY6Fl9G2< Q$MCei-E&V2!WESgR__a4qY z=UmGBDp8*L^KR5!-8tl`M-?5N>6K@QaRKh(${4UZFJH+a5+VUnI3dJB;7*>S$_+?8 zCKZHkj&*mKZ zIh)@~g20Ox8X%c-Ck|JhOoW9uq8zE`a!3sorbCw}NAq?7uoq4*XBoGVU-E_tAhcov z71<{$>B9GcJfIBBp)}57o!Egz%9Rm5g}{&!QEw9SrJdYEz0`NCTUDmcT3b&Nn_K-_ zZjG;hqhRXmXIt&-GA~*k#c`}Z3%ko2y)aF)HMOr7vouX+ANs{KW&Y#qqHU{(FzmW6 f_$JL{gQMWf?tHz>Hb$@adj6DzZ|U+rj&J_~-h=4w literal 0 HcmV?d00001 diff --git a/NOKIA_G/australia_optus_4.nol b/NOKIA_G/australia_optus_4.nol new file mode 100644 index 0000000000000000000000000000000000000000..3dfb740a19acdd80a15de5e8c7893a236ce6e553 GIT binary patch literal 1155 zcmbVI(Qbk;6fJvq-_Q?0lt-5AY11r`&1CKe*ld7IR{~_jPv6^m&n=x0L}!h+?YXDt zp2N#J7M}R=Zp4$gH78Hpi+O*AX7#cE->ph3g`En-N#9O6Gs-+^ACU(-cMILn7!@Kn z)(UuB2m(x3+aHx764nv>8b3yZ2C{Q(01%E_)|ib8;y?k*Q3nVYLN*me8P9)4&v@t0 zV|a9?jeaf@a04@NT8&hk#Gek!QSJUu3c(Grc_N-&c zjp>q%EA4=zeMrDzu;gwRAJ&B`lUkS4Sf^Sp^PTeLcNoll`JjtKnWtGT!zha6Tc-C( zC0DAdcB=H{YO&eGi&y!msyzMjWmeb4-E7u0P4LN_=@zZvL+^e0oNSeRKlEfKzfRNZ AT>t<8 literal 0 HcmV?d00001 diff --git a/NOKIA_G/australia_telstra.nol b/NOKIA_G/australia_telstra.nol new file mode 100644 index 0000000000000000000000000000000000000000..02cab03ec200069a5150c63d30794388920d0c7c GIT binary patch literal 1146 zcmbu4%}#?r6orSa3!h;gfKq0OTdgq`ZDLJaqn!Y;?GPZ6KDs-(e{`lz7mar@+&TB0 z?+&l4Tt(_Piqw<39lJ<|9vACsi9zIV-`t;?#{Cd)GYUb$V->80(ut!-nyT&&mm;!Qu;t}genuKK>Yo6m<~ bNWRH4+u$hqa=Tc+6dS8Q5Bj-i_wMEow3_H$ literal 0 HcmV?d00001 diff --git a/NOKIA_G/australia_telstra_2.nol b/NOKIA_G/australia_telstra_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..301ac4e9fb40d02dcb99b45339ec7a365daf4985 GIT binary patch literal 1155 zcma)2OKyWO5H$yA&)@?P0!zAWQ&kFWq|yt}#sZY2Mu3WP^zQ1J@fe#bQM|zKGw+R) zw_PD3@f$_rMcf+{iBhEQWbQc0fGi7HKz)m`Ygs0F0PfK99f#*0CjkhPAqxht6VvVu zgv>J>gx5G?0CQAK4gxD9u@-S}A6Z4Cy|;1BKx znFORTi~)Qt7{ulaB}(uYlCw;EEhl|;ZJVisW-hQd*H{B;dCmd*5YFPrvWJ=}4AmB4 z1_M?^3$Qsx=Rbl3Rx$8zgEw;%q!xblO_2*j?gw1(ugSYk_0_2RRiSGwpWCB~)7v24b%dswfhX-W<>v)ZGT ReCbmxU#q>6pXWu*-5)D0>y-ci literal 0 HcmV?d00001 diff --git a/NOKIA_G/australia_telstra_3.nol b/NOKIA_G/australia_telstra_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..967818a4f26025f6850e0ede804801f37b943269 GIT binary patch literal 1178 zcmbVI+fKqj5N$s|zhOS06zUs3nIOglltlc23Y)f(wxnGpe7bM$+`5bKVAzM9bIzPO zJMHUg8O70097oU5twV7%jwX7t;i%$jmIZ|PAK|pk4h;%==Q%<1BGeF?B*Ni*d)2jQ zO{#8RN2z%!6ua)oXE8xLAC&26^*Jc}Kqi{w8P1W*RYG(N#s)$k#1L;a>l@-xuhf%C z?G35eWru4GYv?-ix=<=2k(c~9rwQyhqv5e y^picKEw$23TPN_6Zw-7LVNo^B5oV=n3Mi_gdf42h*6e!Q<)gYz8)MV_>*f~@)$^(V literal 0 HcmV?d00001 diff --git a/NOKIA_G/austria_a1.nol b/NOKIA_G/austria_a1.nol new file mode 100644 index 0000000000000000000000000000000000000000..de6cd3e70b47ce8d4133698c437b9fb653a0c3af GIT binary patch literal 1155 zcmb`F?QViF6o%^s%xgFoP|^NmKj$vGvzscp?`9$t%<<(#PRFc zpV)@=dFEJ@^96elj`{04`;sYYq?%>2kgyhKhT)4O3k*wH-jpb~0g|REd~kW88n#U9 zGgBD0t31zE@9@gBD6SZ|G3E1oUR70c`k9#>T`M`r3x+p(Wbk=|C09ZlL9g&a5B%vH D5#{Q< literal 0 HcmV?d00001 diff --git a/NOKIA_G/austria_a1_2.nol b/NOKIA_G/austria_a1_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..c4ed9b1668f637831d54ad1de08f2e32044f3cc3 GIT binary patch literal 1155 zcmdUsOAf*y5J2$&dWJawR$11q))=jts28Y8+Qtt}+t_$xk0CJNH(IqTNf;(!=FJOC zraq~WliUN+kg-OFr2Qw0;i_oMm;qdppMaL4ns4*(VaB7Hj+8)vIlk909ZZ6BTG8i; zqdrebVo-_9N;PGL5itk$=tdRnE(75_RdwYk0kl994Sf&Nunmd6K7{S45T>f8VT literal 0 HcmV?d00001 diff --git a/NOKIA_G/austria_maxmobil.nol b/NOKIA_G/austria_maxmobil.nol new file mode 100644 index 0000000000000000000000000000000000000000..af5522ae6237f00130b1201474e47e3e6bc76b15 GIT binary patch literal 1160 zcmb`D!ES>v42Dzfw!@ym4?rn7vg_JuQrRkvNjtNW0b1K2h=%&cdyK_SLKtdk56i*$ zx1G;_c-bUu#(vlhdt!Gwo3WHd=MU$)N1^|mAD-%H4%f%iriN+O2Ardt&V_3_K##=% z6n>SFwq~2uC#WI!7*j)s_VCCF@7us>fQp#mK6}L|)PE{YOmnnbk1+tv!9!&oow&#u zfGD+oZ0^`*VGnbA>}8a;g!{)F)V4OsF$fR3o@1Uncs|)M_xlI+76u+ie(Zl686kpC zP4!}bWs%<`JTIz{FA2$u^PZ%`RuTlvBa2H2OiJ(uj7Xill(c5ie;DzCA!T^=yVPky z-dc@>9oqlsus8)KdMoh^F(m4*Yl{QhDI@GOWAKbLCLPWMN*{BAQ#~M(;_@uYvf-Cv zTj*5BlpmauQAL005SK>7ce4&Fuq&ymjxSQ-qRzIpT`{S1VaSF3Rx<1gVXOK!z`cZ}e< XC@p-PVK>;%;soza*$n-@20Yilp@Zyr literal 0 HcmV?d00001 diff --git a/NOKIA_G/austria_one.nol b/NOKIA_G/austria_one.nol new file mode 100644 index 0000000000000000000000000000000000000000..cc28e59cec842c14fabc5b3a959ac986094869a3 GIT binary patch literal 1155 zcmd6jOHRWu5Qg0aOE|+EAWh?CSW;Rc8mL6MfN8D7>cdfN5%tC#gN$Eksx(EgVHVDx znfX6^=5?8o5&0rF9=!LzHoj@~~Q@zHs zBy#Kn{=_jDM4#{i(B$1Es0X64BcTaY?XIjFPYl~JbPjSXxgB^E2d>N&SWlO zE_OVEPZ}o?Ol5hjL|$m1X_~@&A@@wdf-AM-RRoLKYL(62;E^klA0jBUF7GFkx~}7` f?HO-ODPGHc1TSpE;o}I?q7q6Ac7O-AE^fa8?w0FV literal 0 HcmV?d00001 diff --git a/NOKIA_G/belgium_mobistar.nol b/NOKIA_G/belgium_mobistar.nol new file mode 100644 index 0000000000000000000000000000000000000000..22a3d349b97d5309df4d28f00f0c42f08dfd6fcc GIT binary patch literal 1142 zcmbtR+fIW(5Z%7^!EcxkptL+<;*-{x6m4St0kj)HTbBTl^e6o$=duGtYTDFIcIWKu znKNhLX`Psf`8HGYV6G5N%#B(26-5yuJ~VYvBpuPZsJt&ik^j4)iO$eD*+^9A3msir zuMtVdxL#$z`lU908E5=N{a8rB3vLo4#J^D^)8#YtCnviC0bHs=UY!F9BEv%pL#$&e zQ<_tO6seicBRBJIJFBX~4!QU*9n}*L+=NqN3!yB!o~Pr5#1>DXb)>{;|1VV%qi0jC z-^>}j5QSOn$0He&F8%gSsWYbuAnXptG8DcG80!#U>}nJRl4M=cM9R9fRob{}mblEp zeX+9vd`00RfLm7{sv^r9h~hYgm)z~s8dkQhceV;(wcKoy zJwGh#xvBEGh?a?gu}gw)Lhde#8!~}-T-;hhZ=}=3yDDtp8v4ECHOrQ>FB{8>|Bo5k ziM5xN@Q0bOlz#{|=`+)!&}Cek(v3`NV3KdOguU{739qI&lzE!fpn@QPRc3Z^1);90 utu7^mCY34%A8_S{x-2QP0X{u;=-Y3L%!YROe;p z%{MRV;j~irH&~8@}nOh9PI;P=0#Ic*tI6gE#alyi)m~@3dF|O$cc)JIg zrzfM1Snf|UFV=98XWOa18g)M}b**XL9+afdJX=b-)!nIY>t>|9C<=OR^syRfqlV$2 udP$qrZdb0J=uQo7{UNCt$L?man5HRvhiAU$R`#Zkk{+tPqSw~kn9Nn literal 0 HcmV?d00001 diff --git a/NOKIA_G/croatia_cronet_2.nol b/NOKIA_G/croatia_cronet_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..7ef5d283e005c3730d6204a5b899788bfd858683 GIT binary patch literal 1147 zcmcgnTTa6;5Ofa!XV?R{Y4RCB=MmP?-{Z%2) znRL+eyQYHw54NsNQ*^GGXRdT`TWyVoeGq3Ff!G~5>(1J4JruXbEU@FiD>f%#FOke<__>=J+pvl1-M<->7CO0;+-5!}yo~-L7MuX?b6i%9CHAA9(UsH^;Wf z@?M5f6v@|IS4k&#s_RPCdUCft9OCVZyi;9~)t=1zzPa9PhGFnOh_g;{<-hC7lTS&i U9K_7Uz*saR#H?s!E}~z5QmVimMD%}d1*X% zvd>4=?^9JOc&r=A;afy8hkMms`ns$}5J{52Tcz53fRh}CM)n*|$1F>aukav;y8Pl$ jjbnFrI84(NeWGSx*jDtRS`N>7A>sW3S=B04H2KXhqwna; literal 0 HcmV?d00001 diff --git a/NOKIA_G/czech_radiomobil_2.nol b/NOKIA_G/czech_radiomobil_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..382c74a45bc7e3f0801764dbe8252699600bb194 GIT binary patch literal 1147 zcmb7AOHRWu5OudKIKv#kO`By9J7`s@fl7o61ZpJ_Z5<^RQ7_CnuxD)K(9~8f#dhY+ z`;1?AIh(N`{cYI2-e>HQExncE@(RJLZoYz3{TezZ8Ow3y|6c^A_Hc3|5wkHm7$)GS zp=exEK_!ZIxtk~f7fZmAf_CANEE<=wPvbR`tMw)w54{}7B{rvSM~nZ+@8C}BSQC!6zdvoC zH+eLRzRmX#U7L3nJw{6}QVy>(m8Pl0us$Lt@R2UGht_%2(dyN8Qtb0lF5}w04mKPl2r&ZwJX!`t*t9Cf1q*5ow16OW$tPe<7UL2gRcw0r z-&9mc%}uSEU8kFQt_uzK)j`GZl_tv=ZgqWXs-o;5&9V$$OMTq6uvTq*P)!W$)pnb& oUf@o(Rq+`^*>&~JV$t_~^1+<>o}lDiA7gmh?G?P8e%W0804470PXGV_ literal 0 HcmV?d00001 diff --git a/NOKIA_G/czech_radiomobil_4.nol b/NOKIA_G/czech_radiomobil_4.nol new file mode 100644 index 0000000000000000000000000000000000000000..1a27b3751dfe8297f5f775423be5a4dc51941d16 GIT binary patch literal 1147 zcma)(U2eiK5QNPE+B56{OdyZxYYVDG8lhrP5f|<`YVX?lp^3o)WADs< zI~LJCWDEAIzVGZ=?F$yO^>F!W4e!qLtW{I=a&~v(ypfc7y+i23ecMBU6vpAxl2f*C z))0Fh#iWZ?5oI@v#o>Jd#5f0Qf&jiUStK>=L|tD* w#bLLJ<8bo{Z=%lAZw^`0lrO7Q+qT}BJj)YG-cc4DK9ZAw!xbVKC53qU1JQ}-DF6Tf literal 0 HcmV?d00001 diff --git a/NOKIA_G/czech_radiomobil_5.nol b/NOKIA_G/czech_radiomobil_5.nol new file mode 100644 index 0000000000000000000000000000000000000000..3710f85b45cd2d7d8f43085917d7c684cd49eb17 GIT binary patch literal 1146 zcmb7B%T9wp6rFBe_zm|1C}ozo)f$tcO{~#1$^?kiAwVSkVZXz6 zp7t4Au^;t3uxs^Ru{V|khbLTDoK7%Vlqzy4W2;3P3XC3%4h2^(6H+2ZhBWPKnMmjc znds~ve(VMOGP=~nkCDOPQ$i3{Z}SW-g`-fM$mB~;aAqMkYS-S1gZuB}Bq<>g&vHY$ zeW+u1I>ayth9JEpWP5>*-eCl&Z?s>hbK(p)b2vk&#$P)7R&@CwyLBc@3HNm)BKYQU62Yx(PhDMB1MoCW z;iZztyoa6W`$lvT?6!wPwta>>(bwfy1l2IKH=E5kj`63)tP2{&AMzN%V_pb&Kf!C= H6#3OJ9oy&S literal 0 HcmV?d00001 diff --git a/NOKIA_G/czech_telecom.nol b/NOKIA_G/czech_telecom.nol new file mode 100644 index 0000000000000000000000000000000000000000..9f226878487e6396ace6aab212c07d5d3c05da7b GIT binary patch literal 1155 zcmbu5-A;or6vw-Gt5tzywynJ+p?3xC!_)N}q$jAykG>7+P3H zdV-fm&QKSUxqjXT65x;&i7nuyxFZ$jz<^D6!McY=lt5w%^;Rp3BcUTJF Q?J>|#`OfIK(+G3@0}(6iaR2}S literal 0 HcmV?d00001 diff --git a/NOKIA_G/denmark_sonofon.nol b/NOKIA_G/denmark_sonofon.nol new file mode 100644 index 0000000000000000000000000000000000000000..1a9333c6075ebc81c45e3c1bdf22a8881db19b0b GIT binary patch literal 1155 zcmbV~K~BRk5Jg?~4t2a>`;;Qaw20o}kLj$Iwr4Mv=^ zL}Lyl^PdolDsvzu6f4FRq`;X+1$jm$duyZxcPR+xfrojfF~J#%{eg%&U+0c|o&y6a zz);VfgOh?|$YaX-g5GjSL8Ar#Yh%o`-Gwkag#!WqU2vTCyBqe`;}LrQMV`Agy&IoP zVi=SJwTsg5^P%%uC>G^>Ld6O$Syp)J$* zetqrNIu;{w>b_4g>Bf;rM0iumt(!fcrHfHM=BsufOgI#$ONKX53W*exXX?@>uX-K! ztnzv*_M?@9^-j`ao6lgkZ9H%Y;KadSG_%D5E*)GvV4lUXa zLGVmZ4nGS|MDiZ)88(PF1jD=a3S=;#iY39Y%mzKN~Z}qSbhvN zAr}LR;MnI>d}f>TL;w7luIW+4an_(PjHiu}GUC|lg%wjJJPqP)quQd^?K0P;=8yG3 z3H~jURPcMjp<8PHd79HQHt~;n!@XdO+%h#{`L3MTcC3w~M&FyM63`6p1 WYnFRFNa@aJN$`1>isT>S#~%k4h^ literal 0 HcmV?d00001 diff --git a/NOKIA_G/estonia_emt.nol b/NOKIA_G/estonia_emt.nol new file mode 100644 index 0000000000000000000000000000000000000000..de7c043b150530f764c12f52a43be80cd84c9537 GIT binary patch literal 1155 zcmb7AT~5M45H1JMGwcCMp^r7b3C4sfiFg5&P1^{zX&W1E?xQ>3%x;H?WJ%%v420*R$p~nTX^$#Ch z%7S2{T3130H~IzKqjDV$_&Z(C4DAFlu~`Nka2kp6h>B7c@xRJ5aD&3%=dep31puQZ z{6=e~&~%~^TV_=FCsQ@yO9&4FkhRLIRc0d@gk7Ov04*7dH7ALIGC779yGSZDK5(z2 z^8kn}+oT47&BOr9ciMq#hl4>kjpbDyQOIucVHpoWVHTHuv3PqHb_O2-`PT6WZ}#5| zb1&L9w%zx2JJ0K)HjmZO#^yUsma%!Ln{!(gWpC0f%gkF@pZ1;E*seR;Ha45}ZkMlL n&B}IF@fDl0@0+{DVi<kuH4?%M@8_YVeYS|?=Y_TF>8 zIkbJ*rfQ~s)QwuJTUX80lZw0*UtCdiX*|N9)ODO8ig7|avv*X=0&UHBuVsJVUJm(H>PP0rVjLG rwcDkuSN&j`GXDy6(YDpya@loV_(__@9!KGaJqG$Y+Z+9UnqcO?4wUR- literal 0 HcmV?d00001 diff --git a/NOKIA_G/finland_sonera.nol b/NOKIA_G/finland_sonera.nol new file mode 100644 index 0000000000000000000000000000000000000000..73f23b3ed80b5cdcd6916e2d297b299fe4498a7d GIT binary patch literal 1155 zcmbtQ+irqD5M4h&zhORLMR=sIYSTno6X{!@P&YuTE&)>FfA<62D|Nx$jp-yXmviRK z%zkVWG(o@U3%#KkizX;Vq1z&DZkiL-61{h_Z6NP9uu;K4Ey++s(jHeW60B_J+mQ!q zgM&0`ONW1eRoc@^W0;4CZjQSFCfaY zoriv%zkWkUOc(7++OtkLI!4Ng1)kDTOG~GR%Tt67)0N)bXj_pwYiT`CXinj^JP`~( zQ4nHS(&}25dC@`?$1!{s^qe)YAx(24HHOVPO_TKwR-`HO3x=X?tCz*1>$>1ua^^x%#Y literal 0 HcmV?d00001 diff --git a/NOKIA_G/finland_telia.nol b/NOKIA_G/finland_telia.nol new file mode 100644 index 0000000000000000000000000000000000000000..7506406908c8c8d1ff7d99ab6f5649fe6ce2a76b GIT binary patch literal 1155 zcmc(d-)@316vk_Iy*MI7I1}*&a5g~vQvyWdd+z~OdRi<^oiSOmlhSkA z^L@V-!sj|BBl1mN$On0o)rce{{EuM$p^Sxc+>PIQq3yiG(S9aFo#EwS*UVZsP#V9R zoqKm4{m6vFzNDVW$=&isLlDl^mvRmMwflB{)#Kg2;+UU7W`8`s$`gup$*Z&x)i@TJ zfJJfS6fP_XDZGpFS`}H|0E?mswz)W^H7t2uA9+P#IZu*!zJVF9i|kAxZ<=yCnY3*i X98fdft5)zOP83$@p2P0yU|xR!I_c{| literal 0 HcmV?d00001 diff --git a/NOKIA_G/france_bot.nol b/NOKIA_G/france_bot.nol new file mode 100644 index 0000000000000000000000000000000000000000..dfa2aa171252612d66240fd6526603a777ed1b35 GIT binary patch literal 1149 zcmd6jI}XAy5JXK&LB#>~08ZkRp+kIxl<*O7fk3R-B4Epjh`1$3!Z`dYyGROLtSrs! z)6A~c3F@Ic8lnXn=wAnxf?zxaEOZtN`q|!9bL9jwBgnIA#yMOA+ou4Oz)3!{8Y!E<|=C zyc23Ks4?%qz21!##&D7XEh&4Fof$?cRYV|5m_mYhqIg&$CFhBQPOB(g#-B|Z=Aal` zIz{#L&vc=Z9#d>Ek0A>sCwMeAjJFIKD1*&!cukHiczuqf4)@`ibW&n&J*4NX_?>#&frHkPwoh30m`07*_`@Ds8u~@)I?ho4rR<3DESI4kgZZ_HS9Ufg% u?2j?zZCl;V=Uvy$zC|q;-K5?dU>yCd&Yh1#h>W3XN*>ZA>Po?M;WgfmA>T=y z4j>^7X|&WQkG(6+f`Lr&vs_{P?mM)8HPjj Opm3|pg literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d1telekom.nol b/NOKIA_G/germany_d1telekom.nol new file mode 100644 index 0000000000000000000000000000000000000000..328834cea2f0a0ecac5cb955ad9b83f61a5e8c88 GIT binary patch literal 1155 zcmb`D-A;o*5QUc;@AMhw0Vpk(81J;kq-YcC3!vQqv2_U$N#EX`8HNRnu1#Eic4lYJ zHwT`!sS4CZ5U2-rWurjdsMUY3xL?BMw9n#Lj(xjeL?JoqF!t%Cj*ZkkC@|xbb2!MG zP91S(6`4KX#dgo>Q^#?>Xc$``d^?(lL*f}hBn~n(4Bs{P^Jk7gfA~Mbkv8xCI|psj zgT`%WFS_w`iXP{-l@@nUg>}80I7}nrh=e+qPBB=)d$du=3>%)YnDN~YO|TrE?0vHz z`WtARoH+Eh(skCFdXbvkz88v-LMYm{x?V23u8ZEeXR)VJ^k$ABJZ5_hucsO2@(T@7>W=^b literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d1telekom_2.nol b/NOKIA_G/germany_d1telekom_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..e2230d88fdf39f3ea8b5cdce0074bf84cc1766e6 GIT binary patch literal 1147 zcmc(d!ES>v42HvHhaL6|et?vgBfD;$CY7zyy5lZvM1V#c1Z=2pKWxWPdKjphv`AKB z^ZT;CtJ*u1T| zK`f(B3UDGOJL3S-d+`{Ao?r%$V-v@nxhd=oqca!gcGAH(zzmGeT$n~9;24xm5l7yZ zrivR|Eh3v*c*qN*;XCkG8t!a)tnxH#APB<{UNgIoYuK2&E=;9iv)=8Z^$XmaI!_N8 jvZg6-m&>+o{ZG~`68hwS*u93QI5F^kgzW2Ji{$zT^SS4k literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d1telekom_3.nol b/NOKIA_G/germany_d1telekom_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..581d46eccac446de419a5e77f3d6d9385e603a7f GIT binary patch literal 1155 zcmd5(!A^rf5M3_b^c&^_C@n|4YK=*$O~fBSy8&YB5+Ei0dv|tcc9%``jI%V)J)T?w%+U`=-Sh5j_njDCT#W#43uTp<|H=cbb`99z;u7ri+fh1qGB9fG&;2PhG_YW3UKYM19vL zxh>Ad1*5ULTZl2Rh|%hhnd5z%4g8xNw}lY~CU5^ChyRLSa-35a=A#9nY{M9HEjKK3 zlhA`bA1y3d8vg-1^m3>tHLOb2D0u2lGKEW?ZBlqp{dMS?c7nVp3V3VPxgKFB$MGbG t6n5LHDz~rjD95h(N}-*m{(ill=Q;bdn$^*avJZ7mVP795ykDc3+i#e{>V^OS literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d1telekom_4.nol b/NOKIA_G/germany_d1telekom_4.nol new file mode 100644 index 0000000000000000000000000000000000000000..1c1efa33c38b802f3a0273d6a6b2ccf33e9f4d77 GIT binary patch literal 1155 zcmd5&!A`?43{5ZG;2Zn_UDq7T6^4*jm_+%3!J@WeBUM{b?eB5yI4PBY>!LJ%_Ir7D z`n)SuqOOueJ*pc-iKxp93kf&L-h|Il)8?%1yQr; zI&1aMJlut@lby(&xu3v8F39P0?p+k?OJvXTxet=Oe+@{`v&F^_fmZx8 z7*IAlkXvL_@dI2)*mb7gkG5Zxwzlxl9!&~gI?GeIv)#FG>t+O96a~CC_Ou^hYlh)y u`V_XCswy`xaBqgT{!F16$L@B$o~9}LV9n}4RQ7I9DLm~D2HwsKo9k}@4(eS1 literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d1telekom_5.nol b/NOKIA_G/germany_d1telekom_5.nol new file mode 100644 index 0000000000000000000000000000000000000000..b6492390a4b6435fe962fd23032b7adf41e7b800 GIT binary patch literal 1152 zcmeH@L2kk@5JjC03l=@Y9KZy;OvSE%P)R{5y+8mfiAZo1M~%2W_KXvpitf5WsuS5W z^S__%+3sQ%uu%}OHG45pz~*fB$3wW`VTHiN2(H*iw$dlw4iln+%e{^O-`^9hXOP@C zJrF#Oq0t@O@+-&a^gCYX$1m(S>~+hI}r ziLg1fz*B5X>>X$)&Ng#Ss(beT@R>TWt7M%ts-DCuRj|qn$>CdsGY)U6y4HD`H6WrW zg0D=KiH42Tx{x)8&2qnwm!GhZI!`YgvZkqCr_;7=!!vm%CzQgYDmi>4CkcluyvvJ* JwJge9k8l4w=*9p5 literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d1telekom_6.nol b/NOKIA_G/germany_d1telekom_6.nol new file mode 100644 index 0000000000000000000000000000000000000000..9101ec0c17614f67f88650137bb69b1eaad569e8 GIT binary patch literal 1155 zcmd5(L2iRE5Hy$Ek~i!F90EsrO;SY)O{CBd&|(2fQX@b``F*h0riL29p@&)mk3Hj= z_4;%Ui9;5SLk?usB8P;;Glp*rV;iC3x_!Sxzd$SXJp3#wVT80eDDc>j+|O?)Q%8jX zdJYA8EhA8EOEY{X>Jf(1K1Q6bz%r}UaYhB%DprTOMoQ3b_Gf*s$$I{qkG$R=^k=5e zgiO-<-PNKu=|0c$X?s2LqR42oQJG2+YO50xn4z#4crI8O*SuVZJmv73-x!5&-}NYL zdGRRoG^@c6f&kt#evd0SvZ}hVlEQHxMdAJeJ67fC7lo{@iP`Rv literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d1telekom_7.nol b/NOKIA_G/germany_d1telekom_7.nol new file mode 100644 index 0000000000000000000000000000000000000000..88db53b309f8a554632188a017745b5d118cde9f GIT binary patch literal 1155 zcmebC_hDdUU}I!t@L=ErvKSd`84Pd&LnweMFvO{lpoAevFO&dN1a)9n0MUy~Vpm5< z6zT@Bk0^H!%x8pb#VrqW4?LJ~E5#)Pj4Nmm!$TUx0DBRa9&F-+%^a{BsSrLW=72b) z2MyQ=By%7pP;3se=MYwqz=CE|Xle%W@M-ohNG(b%$uH9N$xqK$aLdd|)ln!j)HBdg zaLzBNEXqvJC{Zx9w6s(R$;i)5ELQMNEiTSUEz(i&b`1{paSc*%NiEJy&(l%JC@Cqh i($_C9FW1Y4sL@RUOX(%&=jtf-R{y5>#)q@sY{buf-tc*WqnPbo6hR!0bI)>G`zKRB1Ti_2kU-BD ztuj-jgP}fzVwcnVABah47r3q4@{LGSZS11;&0dIgjoSueyOWcRP?*Cy_|tFwu0M19 zI~yJHaPv56RKXxPf6oJ@wufFj-%1B$*1J+SC{POe&5M!<&0yX*NYn8+fX7bu)u{SS zp=!mS+OtggkH~f@e^A}EZ|i2{BF}UF-l$78@PizNv+PrT*q3Fof8&pGXzTBkH{;md cZ@1GlWna2xbD~uCsV*shsZNrATo*F8zb#sB~S literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_d2privat.nol b/NOKIA_G/germany_d2privat.nol new file mode 100644 index 0000000000000000000000000000000000000000..55f9d316a68d611c704544930b8a1878bc673803 GIT binary patch literal 1145 zcmcIh!A`?43{5$3;J`Qd1G=s~mMaV)tuTpkA;<}3h@hW0#$=ER4W%|#-X8l;kQ*dgt3Iv$Q^nExL^k*2$I3SM0 zN|^CuhdAXYI-W}G-slwdAM)dFa3VCih{N+9#}ZwGmWszesm#jo1>9l3)4xC})B8&q z>~}D3h6r7GvT$PjdL74NKa6Da6MA=Kg+a#xNA5QnBoc`3$A|;ke-Nn7cp}+t0Mh_O zv)rNN6I{2G9Hx(zFft)AgdnyUB=p==s`vs|`q8+|Zlv7=J-t_~qQ<~s>*M=(>4?rng;;q)06m25D09pdX)+InBeS2qSXBPa~woU>wbI#1S z8xo#2nF`cpaG@U5HB^DhRU9YrKO#xI<9_E4zMlhp?-9R2M>!0V8OSymBQ0JWYI?xJ z5?>U28B*923$g{x1r*ufl3h@7nmnX&DU$P8;AN3%4I2o1>h$IVFd_6i7)3Iyj6)R2 zu?UA0i}Vv5WZG~Sas}wfoI(W5@_;L{D`k(@!I!Ws=^zV-rRh2-@X3-VQw-k1Ng9{l z-h?{$c^rdz#KLw#%7L)TRG zpp!IB^-FE`MX%Ro-|xyU)azBAXRBv@SN2Wy5$bvv+MDHa9LMP0&MdZMMQ>&w>c?VR K>es^$%+(i$HtOyG literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_eplus_tam.nol b/NOKIA_G/germany_eplus_tam.nol new file mode 100644 index 0000000000000000000000000000000000000000..9d206fe0c09a68f065348a070c63351af04f483a GIT binary patch literal 1146 zcmbtS!A`?43{8c^fdk**56HUpSi}v6kXD$)5ck5OwqheyQ&IKriS1;`sF0AFZqBp) z{GL1Qd0U7?TqYOdQCwS;h+DCulkqh>W`7E0_OKNKf;L#>>#;X=;zGbIVsoCxMnHka z2+2G!alviKn*;J$XTtOvG=Rz3OR{{#aXP+Y?{IjM1jsCO!tX$Wyc7}%MLdS=8pjFc zUxnyZPz=rNjUPgsVs>hVx^I#Z5@J9(>bS@CNXM7xZ$QD#+RHEG^?vENw!OlG(4NyM zE$tktPql`JIPQqrr+ZF2gr{<^;C+NQZOnM}1GoI=7XSbN literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_viaginterkom.nol b/NOKIA_G/germany_viaginterkom.nol new file mode 100644 index 0000000000000000000000000000000000000000..050c2e9532c03d977e46537f299447a75b52cab7 GIT binary patch literal 1155 zcmc(a&rX9t5XP5_J?S&d15gS_ylRa}(I(;xpxpqm?Ghl8zP&p$yURjo;;kHD{(RqW zKHm442*h2m60hPxSAobyoFwt&nYFZAnoUf)nQ>+Q7R+H4H7I0@kr@@uN1M5?r-p3L;Md}D=~z4`xX~Cg>HQab?1aALpj<8- zX3;x$-yL!%v2e{?iW~#Lm2GI|rDg^T$5UR<0!Hwgmptc$hE5AluSW{JSO(I$c1VkzonJBwvdY?60fYbM?J%WLxyAU1zFP@KPUT2){`bhw!AD zOIw#!4@sJ)@L8!-(ZNo3-BGq7?6!HHZ9m{yc6E6Uq3ZkQakCkQA^Ks>`arAbTb)99 MD-IIAE;G#iAD3q8mjD0& literal 0 HcmV?d00001 diff --git a/NOKIA_G/germany_viaginterkom_2.nol b/NOKIA_G/germany_viaginterkom_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..770c98fcb534767c1a028c8dc9d762272cc95e55 GIT binary patch literal 1154 zcmbV~-A;o*5QX7J6EA#*c>qegml*G~rm<)f>kCl30U`wgMAEl+XJ-E>_C_c$bLO0H zcay&F(jW|O!rNdI+^Z@K9s{w$n|=bn>ao|PL3JirD^Zw*1mQa;4P*RO9D`;|QhB=n z&7l)nhQZKQOk)?G33hT>7^mXc%X!SyDOW0$b(2Yh@=S2vi;A4a?lnwD!HA@=Q@y>_ ziHHKq+GQKo=*=v$`08{+Y|;m?jlnS_@ z7%SQ67;YaHi}@=Y`crWP(`=(J1~hPz{d+%_Lm9ms<&f%&<}fo3572BZxNWTU`o8Wg zV%N$p8=7vBHhBXtWhEo{5%DU5r=~r3WnK&*k|cr8qB&(fY-Qh9vWsB5-tW`(2RzHZ r%VQ3$g%W)jzZ}u#XG>X5PQv`3>QNrO2uUQQnS@*J%<#6{4!s_ZP literal 0 HcmV?d00001 diff --git a/NOKIA_G/greece_cosmote.nol b/NOKIA_G/greece_cosmote.nol new file mode 100644 index 0000000000000000000000000000000000000000..0496c0964e17ca0d26458e44a6d00e171345191e GIT binary patch literal 1155 zcmb`D;ZB1v6ouIX=ri00V2u96zdEyI=n`lAkFEjYwh|zcy`oQL@3|djq-f@(X`9}j z^W9S(S7|T_KJ8ot*LIx*FF`!`RICP-zZ})SV3=alTpCEiTpo$v#Chz8tzWptIWd*n zpz|$OAQCu$WHQ5L;KY@F`Z2Ib2o?b0EJEu2Xy}8mO)j||^p3-?IgW462*Y`SLT=~e z4HQ}Xtk8_G&==j=>u8)(;vI{~B;_%XH2+aEVm&Q$Zx;mH>Fqfu{Gf9Tey#fz{>xvg zt4h~dYwBrgazpp!R)_SVqBx{mQyuCuFIrMblF)Nuc3DG9-85TWhqRop*XjI;?sQY; i`;dyZt!`$suIr+A(M&hEir&mFq=#&y>Gd$cTzvsOAnN-7 literal 0 HcmV?d00001 diff --git a/NOKIA_G/greece_cosmote_2.nol b/NOKIA_G/greece_cosmote_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..42d78af497babffd4c803f433b54f983b681d323 GIT binary patch literal 1166 zcmb`D!ES>v42J1-hdqNIfKoWJ>(*&f*(!~_K(Uce(?7a-Q&KB$|#+!EKBjbZ4o2A86!^q%?yDuT+86^31y5VBAEpFFX&Aq z<&C>^l8p2$pBH$MC9%CN?ARGxyqd^hULDCBb3%(?rIZpHwZNVX&U*3&>m56-s zcZ&lI{`;Fl9n!F;X^iLastZ9l{5Gmix3M8=Gb&^<=|iv)Xmn*jpn?|Ri)lD0FL(sGL42d-n?*5AV|e literal 0 HcmV?d00001 diff --git a/NOKIA_G/greece_panafon.nol b/NOKIA_G/greece_panafon.nol new file mode 100644 index 0000000000000000000000000000000000000000..aa8737ca750a36a08c505aa35269943c94b4b744 GIT binary patch literal 1160 zcmaivO;W-@5JrcE8yB8o4iF$&;!?%Z0>u(95M&BcfRoCkq`0D|a=O3nB=`fFB5A(q ze)HyeHZ?u-WiHHvxr$ZKJeoAkZ9E%hS)ln8=8e>T{MOHh=W-36TTZ zX&X9J5D=qw1iV2ykb)VQT{H^=g9#C9$*uSXEsO^d+Wla}QKG&jgAc_)eOAM*ytkOOcQ+A*dlJY5KDx`!hn2h;f~zJd`O3=itl zw@^VDX?eg&UDs|22WisVF-<#bu(s)VSmk|;#8cO24rhm(%pthh5PT29PjCUiB)Ez( z$+j)Jd{EsoQ>B8t`cOphDdQx98`Yk=x~v9}X_~@IrH*+Io1*UzMHj(lz1wB$XSgl; nx@;n-hM~P)t;TVTKa6I%r&j!~juAZO`vTrh@LK0hQ}>tOG@9vx literal 0 HcmV?d00001 diff --git a/NOKIA_G/hongkong_hutchinson.nol b/NOKIA_G/hongkong_hutchinson.nol new file mode 100644 index 0000000000000000000000000000000000000000..5b20deef73901d6eb595d610a1d08707cbfb30f2 GIT binary patch literal 1155 zcmcJMQEr1U42FZ$*X|5HK%nr*Ub{|}%2uh}1=tz^TH7E%MZMt8Rct2|!H|Zg8i*Yy z`SRPmZzJJ|A7>`k;;D%o;R@ecK;|3gV?ZCS2fPWL2|4lG*yqrR4&W~g?_X zgjm;3rsyG#!7=nc8RxJnDhCIvhoU}(b`4O5zzz|%&$b#Cb}teyd7v2~tsZVXT{!9D zA&2^bp#O2q`3Ax-;V{HTjoUyEbK34Uhr7=xXpBQ*%s=apCU6=uRzWH_G$mr@QMS!h z5m&l!Bb{h?&5laKCGdO+OPybfEJ-T}!Z3u7RG;D!HmWR-s*tc*?f21Y2QRA3lCy-g es`BT>qONQ2oApXIMuPYAhE& z2$5I{>;{6hy|cJ8RYV|{4XiFXt-LKRaj|Dass9Ubu~(U)FN}db@}D~eG5YjZW3KY_ zrz7*{0IujZ5gL22#6#KnvNMDvTN%m!ak~N*zCWok$e4-t7JPrW=okVCIW#b}YKPlw zOzFFbt!U#!$n8N$Dm}M|8!V4`wQkC4n3Y8t9(MaY4PVpIBn@}v@m%eSZ4;)m*(|(n z%fq@3i@dJ)d6kC6e6`BvFX29~cg1HKwoP-q9gk0^)96E-;fABpdwEF1(|VJKxAPyH F>mPeW>u~@8 literal 0 HcmV?d00001 diff --git a/NOKIA_G/hongkong_smartone_extra.nol b/NOKIA_G/hongkong_smartone_extra.nol new file mode 100644 index 0000000000000000000000000000000000000000..dabfb63421063eaf8c2c1a33cfd90806477d8329 GIT binary patch literal 1155 zcmZvYO-{ow5QWnXJ2-<6kp6gC#14v(TBt<1K%iDy(c&tJsCq%ph2PA0Vn?-%UXNoA>D>LxFbs{i;zl66g)7hNgAXyTrry0D~t)F z^h+sBPR7(8nY=$EkRFwi7Yry3*pnF7<%k_EGL>7buCs){WI`yO+$z}(v z?2ZJX2?wXJ;D?fO2uyP9jX#W<$wq88#XPd59GM3jK(O>-(M2>aXkz%4c@#{n*hc+X z;iwptr_dA%A{$QHL|0OR$nCOI_xj|Ts`Jfw&)k6 HfVuq#o5Sny literal 0 HcmV?d00001 diff --git a/NOKIA_G/hongkong_telecom_1010.nol b/NOKIA_G/hongkong_telecom_1010.nol new file mode 100644 index 0000000000000000000000000000000000000000..bf35f3fa0ef1129d8414f76da1ed4c5bedcca429 GIT binary patch literal 1151 zcmb7BL2iRE5Ht^H->?rL1Rv?OrK%L#NTna3i3O-hjDQy9gMC-otg$gTMHvoW&(6%+ z=53oWkNtX#y|DYf@>t5k1@O>(3sP6xnCF#C@8IUfIpeU6DAJEEG7p$CBeyP+$Y?egV>opxY}?RdEU~(ggCjQ`)Jnpj z9`?|s9DFr5Zq0G0+qZj8(D^RD>^o?Zmy2x48_pue^b-tpjp8%0m-+e*|~ zE9+Gva|zGoLHO{)gV2XZS)J=LFIwPH6v0O!k68m7(KH89`>=`AG>PBgNi=1C@}X$k k>S4X^x-R%4&1!#X1v`24;WgU}_&h^gmpe$r_bI>o19CIzk^lez literal 0 HcmV?d00001 diff --git a/NOKIA_G/hungary_pannon.nol b/NOKIA_G/hungary_pannon.nol new file mode 100644 index 0000000000000000000000000000000000000000..2578e7618ca334ce5b54a7d23a207cfcc0c7de59 GIT binary patch literal 1155 zcmb7AZBBzg5TysuGt2?D6n^4gtuZOuM7#jn4G>$G0Fm^j9>@9Eg{4tKXS?(H-rJ!s z`!rYuKX{*lTlA|S3*u`miYF)X>>8PQEQ%t4?%;-k9`yU(0@GALh!v_OIkGfyIP|CN zu_7Hp(RW+#Dvs_QDOgVkvNa9J+NPf~JI`ds*LDJyMU7Na=M5}{vstJdN zDS3OiA!N7zGz!|+BMGZw{hzU-|1jnXtKsXV1FHgSn&9d zS|0Z2b#Uws$&gW?CVv3uRLYD2e>wY}dv@gV0%JM54YK#OZt~7F>(mqm9;>5P@EwPd zf_qb+o2n=~h?69Nx6+*Q7IwOAkGfH?+h$q1eT4_zR>hZsvg_)*&8F}B@KZ4B1CPQF Qb5ih}A2ht5FJx|h0hTB1e*gdg literal 0 HcmV?d00001 diff --git a/NOKIA_G/hungary_westel900.nol b/NOKIA_G/hungary_westel900.nol new file mode 100644 index 0000000000000000000000000000000000000000..ee9958f513995f55197d6703a897284556e1a061 GIT binary patch literal 1155 zcma)&QBK1!42H8;9ykK>0lIE|EaDA@5GxEZE-+YVD^^ma71cN?_uvA=cCsdPp!y-P z|KI*%<$jfkiTDy{;zpdBY$7hi+(wdM!l%;)3fYMtekm3Z?6LEHoC;G}hZ~%D(PRDZwqk-@Thc@B=w@Vtui-3W}XpU*@BPd8d#zBKS z@#Kzh9d>)J>!My<8wGnYfGQdz!yP_?aw51lt;;x1B+g(o5CRSt2(XYovx|<~=RXc2 zG3a&$OIGG-v^YDykK2TLu=!WmdEVQ2*pDrIaYYKI7|vqOs+M}wDm~3quHd@d$p}7@ zcpkx}s`t9gix!eJP2s6f)uw@^Y?__a5iA$$b+&kfE7_F!djv(>*5|WX*LCq5_e{5B b#V@Lg;BK>(@Vtiyt*T0Dxc&ZY~rj- literal 0 HcmV?d00001 diff --git a/NOKIA_G/hungary_westel900_2.nol b/NOKIA_G/hungary_westel900_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..167a8a8305711f1dc3a0b49cafc20db05283a286 GIT binary patch literal 1155 zcmbVIT~5O=49*S!M?g71*R_x36^4*jm_)fiVO3kPk*ckzc2kZ+{FgM-Bp80Mje1nq_O(!jO32dx8uv>`(gC9&<)&m4y z1UO>d?ZY}q!V2`Dh1qX9I1HWKDg8b&hxd?xb+-?3=rpSMe!N)D0XVQz9od5;9za^G zgFkfsE)tdzVVq~Mt>uCf*zH6mtWu51mPvev(mnvAIR$zMd~p<=ZCCZ>X!>PtYNH?8 zeHH1iG)^LYXS!qG*3GEXEX(w3V-Dq@H`Orgt3J}3by4K&7kyt1ZT%VPW*ocQ)oPli Y_=7mh9hTyEbBOd)xvTWs@kHk82l;61UH||9 literal 0 HcmV?d00001 diff --git a/NOKIA_G/indonesia_excelcom.nol b/NOKIA_G/indonesia_excelcom.nol new file mode 100644 index 0000000000000000000000000000000000000000..11632771c594c7ff78fd25b66d9f83e2e1273ef1 GIT binary patch literal 1146 zcmbu7O>ToQ5QWXQk$Q$XfJ5+-Zktq*LK~^{0<^IJ<;Td7qFlbJ0UM7|$zQ#C<2Uac z+wiuIh(~_B30aayr96_5;E%=Hr47b#hjMUvR(BX3aD#4jmJ$Sp(@b`QjdLN4Z3`L% zZ^Jam9);%*sCe|a)+E&M9}Ier7L2ghNqw9F=en%ZHN4kdw?gl1|08oYMRX>P7yYG- z&>v7Gx}EVTa%|Wh%c|Bz-J?=tv~MZ{zY&9{sHiG?5Vovd7hEQlkkd${0$%bRr|`}E zfWosVPBKrk3RoD1@R5mqQo@Rt<&H}Vt3@0~i+7mwGEWZ_vZ^YcX0y7k{cYDX-L#hf TCH53vlMRQ@6U4`@%pZOM(h%r8 literal 0 HcmV?d00001 diff --git a/NOKIA_G/indonesia_satelindo.nol b/NOKIA_G/indonesia_satelindo.nol new file mode 100644 index 0000000000000000000000000000000000000000..b304cee0211d41d483b389a5ba8e75e56d72c2c8 GIT binary patch literal 1146 zcmbV}QBQ*~5XZ}_4}OOG0F1Sd7~gcpWatv{3!rO&Y_p`GWMAIcyXz45fE^dO9_{^q z{pWbzWFivZQ6wJ4wW}g=E96-yDcvKL!i;fR`71b|a|T{8fg6!SFZ-B_`2%6(g+_ck z4aU3p9nuVz6Dx8xn)M8f|5e1|5zT@)5gGCs8Qvh1@dK;>;iGw{`gu jL)CT7&2riIeX`@8#g>kecXNp0sn}|GJ3{`sv-Q;vZYbx= literal 0 HcmV?d00001 diff --git a/NOKIA_G/indonesia_satelindo_2.nol b/NOKIA_G/indonesia_satelindo_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..d4af7250aa45797ebed2d9f5a89137b5803c11a7 GIT binary patch literal 1149 zcmb7=QEtL85JZy$v}f1@1V}#VZvj<>7OC_Cv{(ccFiN5#E??C>BQBZ0`;*_nA+ z`*pcU(&Q&ilc(g~?b2kG~qlNi=Lai#dC2n0y zwfLu?J%V)MueH!a1(i|@(I$l!6e-j~4kIIv@;Bzw&g0S?6FJYid0`l5!})pvYV(7| z1r3f8D(30~`3vkUIE_Z|1s4C>19GYEJnl}eIpp;qAYl*`2aF6hbQYT8?q8fb;>CcZ zG>tD$rdl_)8Z7MA%51kcnS2++Jd;Ozx>UPu*+?-SkLA6zhjlG;Q`dV_Wip?xR*UJI rOiaDo9y2MM=JYTcozLgt7d?Xwq~WJMWb(4!82Px!vn`J@vF7d<>9^@` literal 0 HcmV?d00001 diff --git a/NOKIA_G/ireland_digifone.nol b/NOKIA_G/ireland_digifone.nol new file mode 100644 index 0000000000000000000000000000000000000000..f3b7f372c8d7405fe9a5f79be920bda56c612e07 GIT binary patch literal 1147 zcmb7=-A;or6vx3!FN}}S2Ve{?G2ZEn$~)g|VQ?E>1<%2ap2FZhNRpIKGIO*&<9PA}&dk^77%cFBD4ffX znr2NAAaJH2dV|akB_IXi@g^$1Q6|ShnKsmHSvmxJ4^VEV3P zX56J|bQ>8;7bM5`M*r{i?8);C?708n{DpCdcHA_wEqc{1a#bqvRPSXZe$qIJ#Di*1 zZCzHqNV6;x@0B_fomk7R+sif*>(zFfuinI??CSCuiK_3LyXA5ihWMK@iyd0=r#eL9 QrPxXFanjWGt2kc&0;yQ%l>h($ literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_omnitel.nol b/NOKIA_G/italy_omnitel.nol new file mode 100644 index 0000000000000000000000000000000000000000..17bfcaff3b832d2f9de317677fb5a0534b92689d GIT binary patch literal 1155 zcmb_ZQBK1!49$L#;0!)M)-9jq7lx2lm_)fiVNqMLk*ckzc3I9sVmqOwlL!))nmYD- z&(H1SE)xs!DK5mlxU$(oU_itSfo<^8H>4^ZTunrOUI2QtzZ0Lo4|fHGTArQ z(7)fr5$1cL3^zjVwzmu-=G4|@)q_gY6rL+{EIQcg xt~=;f!giDA+2#pubyt_~5~{v$u2-vJ7?L-_Ece(-Ud>U$L$TNJa{3{2`30>x>+%2q literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_tim.nol b/NOKIA_G/italy_tim.nol new file mode 100644 index 0000000000000000000000000000000000000000..a6bba4648219573991e2ed658329c08f7212461d GIT binary patch literal 1153 zcmbVIOK!q25DnWdIKv#kgk+g+TPh^dA~jX_DOgEVz)@lvaoL`wv8UsYz);mv?3wqA z$1m$Vnnd5@w~VIaK8cDb39M8t!|4vUBtZuEQK4a@bPCjavVll(aaWVioR;MF!^qw1PI`sn_T29I^$^P!0{{T-3{;dk}av=XXx>cqayU zkd-Uaz7kdDG3n>$XYe}sBON=I0i(sQ=O{Y{p6?ep17TrWe_jO#*Wd1Q$*!Ch|7VW2 zIYHQ~SSQf5G}pT2T`5I3%S9#Nso8M`Uum2$co6NWYpPm8nq?Wh)nZ@vu;P8c;~j(5 yqA2pkD?IYPsSXTkDck$`d>DrK6E(A~rs9p*Gk7ky96nBvA2%hu^MgEg&D{@_CF{%p literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_tim_2.nol b/NOKIA_G/italy_tim_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..df5c314744fce1cd4de224513f49b3391b46d8ef GIT binary patch literal 1148 zcmcgn%TB{E5KONe`VIR5Y1$ma6^f9WQi<>bhMFXzt)s*u>d*2mtk;hXRZ1%ktdyPc z?CivT+T_tB`oixqnqr?sB3k@Qr78a=b;Zh+j6yi*Z#gyuQ^J+5%<(phc;!)Io`M6{ z0-SvzdF>K=oH)oq$`2=_QMiJH#HvO?7Qm=>WTbOtcd4_*Y+@0xf#<|{;Fz0x-3MIA z@peKR;i<>dXW`jP?w_YH5^5|c2QVB@PU3(ct0RYz7?ysE@iUjnOLPTlm#*U@EK-o6 z!`&gbwoM~jp;bG}RjJ^i-pLp~(_|6DoobG4T~->>EX&}fQhU+CN_O2&wlS=hMUgL` q;a+xid5EFXy1AXt`@T;;tY@~RQSzqtF|5T_!s`(VE#JjK-FySVW9d@> literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_tim_3.nol b/NOKIA_G/italy_tim_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..b6a0af31d1e8b815950ee68528c95029516128ae GIT binary patch literal 1158 zcmaJ-!A`?44DGHQ_y&JKx3$M|LokH2!X%2g7glW*8>!lgYCp@j5ZjHDEZr={@q2!L zar?T-qgnK)&vSIE^DMfLlF3K|HnkD-E)h6#-m^AA%ab}fa`ADRI5g0eusFs8)7WSv zvCMv0Uku6mIyrG@l+#(~XUcgLA;u@$|kDujo8E8z8DvevRv@Fe%Gy7&UQ6YL8B literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_tim_vita.nol b/NOKIA_G/italy_tim_vita.nol new file mode 100644 index 0000000000000000000000000000000000000000..11cbcca98e331addca630e2358dc41d86cd6cf5a GIT binary patch literal 1155 zcmd6lU2cOg49C+0Y-jKR0!<#->(;7L*($BO09zwK{Rjdy)XVlPjqOks5S6y|VFm*J z+y3Dg-d3@gh?Bb(;?b=W5ePMInoMbpr{ZNidpvT@K^DS(XKf!$yaz}5&Hc3>SAUm% z{SVI1r_uWs&h06!@8*4rPC=d|XVUNDg|-&8OCmlFN6#-Iof3RMR{|k8=8`>Q078xv z>4r(f=?Ey1?4#_vwPVyW?S%(t4hcnso>h=Ht literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_tim_vita_2.nol b/NOKIA_G/italy_tim_vita_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..e2634085943886deb36568352846a501cb38a4b2 GIT binary patch literal 1155 zcmcJLT~5O=49B|zz!`jiu4^94D-0p6Fo_}YJXq9LY@}){s$G_|;Ey;NpiM#=uHx9S z{mVanSeD5o`NVaXT%w;O&q@9dX3oJh#^e!%8Cjm|qKL||g_Cco_8c@ZMHvE!91mnH zI!=kIeH=1@Ptkcf*g(g85Ki${{{jUC6!ob2F}{!4fr9~^Do0Y$fWvg3@0W{%mjX+Z zZjmM|8Hty3t|?{s-pb3kAsQzyJUM literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_wind.nol b/NOKIA_G/italy_wind.nol new file mode 100644 index 0000000000000000000000000000000000000000..9b2125cfb5e0ef119f3f859a336883063be555df GIT binary patch literal 1155 zcmb_ZK~BRk5Of~^Z`cR8X?zSZ#e z0ZTK-OHC+}RgKr+;EAHvW1Fld=>OFkj~zsC&t&81hC#SdNK8#e*f2)6XeuN->x1`4 zBeMr!X4i95>A7=1{u9)Ai8s`yT2D zI3F!rSF+ApRnJqED|jq-lEaUPVh;DJI@D!ev>=isfww~Kvj$eOX?C*auv%_5>GBmG lWK-tf9E!HB?iP!#>!L5qnQu)i`c!)k&)HVO$6;i1^9SgW>>~gG literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_wind_2.nol b/NOKIA_G/italy_wind_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..ce7ee7045a4335acc844d2624970eddcba1b6467 GIT binary patch literal 1146 zcmd6kO>V+45QWVF${FSWCg5edZ9!E@K`LEzn-(jH_;Hj(jdEGe((#N9CT&GgH;p3m z^5(tIiCHWYF%SpwDjviT)j&Lo$@P~~zwG#&`lf-NA77^Z7`=*u`*@J;o$1T(&`Sga zmLAv3{p-iGGoUvm$Jxgz9-IBIaCO(0k3!#iG^U|1^j*iH48>Xbl{t3xKnLI-+5zP$ z=8Bwl51hrFtV>bOyBgWS(A!)K7$mXEZH9R-2nPu|1lrT7fW{Ow9FJANIZhaOiUp9r z%Vnvnv@z8vF`0o`vDFejR5X!rXUeWBvb+Hm$1%L*W|!75*LA(sm4x|pwMwSXaIfnk j+e^rsro0`G+qR81oEfcY6uq0Bgr{_^;jM$t;C=H6y%XpV literal 0 HcmV?d00001 diff --git a/NOKIA_G/italy_wind_3.nol b/NOKIA_G/italy_wind_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..a48c8000b57778fb29945ac2a22c49f08c191372 GIT binary patch literal 1142 zcmb`EO>V+45QWXQ3(hbHFd<&1+m@;lp-82RZqs5VQK62Ks1cXtEZF1PBxo#offwWX zdGGT?dE4e}#?I`My|TH^W-Mpv-H#B0W(L}{IMo;$M0W#}G{}j?cpbeC-6gj19AbuB z+CIu$(6>qP@(HgQXeFTKar#yo>X&c>$2)WWLX9ul{yw3tYz07WXoZ_+U@eyJ3Py-E`K>xecwDT am%}h5KUTBY<0$!7M-H1}FX8J1#lrToQ5QWLMi=JT)KnN_Ux@!|f3T>n$7of!gR1zahi*oXA>z{!csw73Vgy-3Q z?_-R3-6r15`_|9eyVvu~d-THFBZ{KlK&s!FTs36?k(wOujW&uPqlead!?fyxH2;%B zfG{-LttYj>--t0=7)DDwZt@sMn~l{LoNUxW@bD^Y#6b*Rh((#}3W*#T(;KD%ZKoqH zCvdPGcQc$_j3NKxpw$%j)9@_UmqCN$cX&8(U0zPpuK5-$LXwm=j}{bWYRn-&DPtb5 zFututleV&%Co-3?Dl6f`R}_RkJjwdplzGuY6vr_f3VBQwY=lykXnfc#_xohIgJ+@2 r{NzK?w)Mke(RE$$;XL!q9tH36=)+5z33xlhPFCqDQ*dZLD|Pn+(GBXy literal 0 HcmV?d00001 diff --git a/NOKIA_G/lebanon_cellis.nol b/NOKIA_G/lebanon_cellis.nol new file mode 100644 index 0000000000000000000000000000000000000000..7216a41018142ded1a29253780b6bdc096a601e4 GIT binary patch literal 1153 zcmbtP!ES;;5M8c4^c&^_5amd3rp4F@nrIWxRtb=5AwWv}n*M5cW_FiFi!tpUX5Y-d zdGGCV6$wXtJC2x(M~NJ<6_cUk`#wIY3xR5QKD2f{SA6?o(VIe&LjL^#6bLQ&QE_ev z(GvZ^WLCe^Mfs!>#=1r(F$;q^^%i<-#J|Y@%=tFG-!JpDtugQ$CHyZQFVu%o!c%$=eqv7vkL^ Tf%h}S)Ae?`gjqO`Umtz|Mhoce literal 0 HcmV?d00001 diff --git a/NOKIA_G/lebanon_libancell.nol b/NOKIA_G/lebanon_libancell.nol new file mode 100644 index 0000000000000000000000000000000000000000..8ca37e736ccbe6a0903e866a296669c1babe522c GIT binary patch literal 1153 zcmbtR-EM*~6fW7_E_{ab00rqK-Vuek2%4bDuGwsWOjiO#;?wx5YYVJw7)$Wn^z?i` z=S#cY1;{`*;{~nJjCTfdk*zJ#mX`RK(Ag03n5RLN&2%H~p|;2iv3nDRX*!{jd4!sK zPVwL?go)5gJ9&zcX7@i>3K~^o^mLwX!L;}31P87q1ST=?w%dbV2q!kdyao~`$b6moPmgR{S z7&hL1A9xY0XqhG77}BcB7xQ^t*Vb3VF^>|mKG_*V7#}HoTp@I$cXtcEw+`Q4e*pWc B=z9PF literal 0 HcmV?d00001 diff --git a/NOKIA_G/lux_tango.nol b/NOKIA_G/lux_tango.nol new file mode 100644 index 0000000000000000000000000000000000000000..e10bb3af296b542b38e42e200a35496e0df11305 GIT binary patch literal 1154 zcmbu5O>ToQ5QWXQi=1H&;E=GS+cs6CkfthC_cXBpmBa{WQEp$`GsX}#5Gk`T^Yh*} zHm|#gd2Hrw*_zE%=CMzAF|lf7Yze`LW@`1k&S|uIGWK?S@I&GI~JX_gu*dL2WfoLS!p0Sc*$o{_e8 zP3;^8aWq1Oo)L>Mrr}0LMVbejWhs`RE xqt!b+i#ktF9I~b<9~XTG?Q$W1Wa#4x;;SU;D>Sh1{ literal 0 HcmV?d00001 diff --git a/NOKIA_G/more_logos.url b/NOKIA_G/more_logos.url new file mode 100644 index 0000000..e8586ad --- /dev/null +++ b/NOKIA_G/more_logos.url @@ -0,0 +1,4 @@ +[InternetShortcut] +URL=http://www.kessler-design.com/wireless/samples.php3 +IconFile=C:\WINDOWS\SYSTEM\SHELL32.DLL +IconIndex=13 diff --git a/NOKIA_G/netherlands_ben.nol b/NOKIA_G/netherlands_ben.nol new file mode 100644 index 0000000000000000000000000000000000000000..5905336a1129edb0ed1e0fc05d46be58b369379a GIT binary patch literal 1155 zcmb`E!ES>v42IL|4$~gN4?rn7vfH$^npCz*W75vFM1a~76r!QN;~r^;#SY|9R?5(V z1b-a=pKbEGiP(&Nu{-w6ZjG9;4;D;Vobw5;o&_OeL8j!Tsyx7UMuIGdl3O5|E#Xfb zY`*ojU)-BW_w?rdEr0|BITk@ELL-eF3ke;^2@Fx3`or+`MI)fewnT4q5$C$yW&9tf zt?nAI!fjo}Vc}eTF>E|LB|F_RDl0I>V$YHXw(kER!>o=ljYEYjrtRb+XHyB4XsPCr z%p|OegYe*!`+*0KvO1|E%Qf&Y4Bze=o literal 0 HcmV?d00001 diff --git a/NOKIA_G/netherlands_ben_2.nol b/NOKIA_G/netherlands_ben_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..9982049dd2359aa31258a0d2fcefe90ab3a9f57e GIT binary patch literal 1154 zcmcJLK~BRk5JlZB3&auT0B+hW!xoB=5~xHGtV3%hp=}(+7E$lWp|EEh%Q7q)Rd^9k zoSFAu{JbvMjD52k_QZ?(#tTWKzvqO73!*rr z{04ct52VnD6PTcUEMqdfkLev@G=`~kWaeC-vx-6Z6(dGWa2vMSqp>!ffBVGTiSO%9 z^re>lypWZIhvpzSe5J{f!=3C-eN)vM(k#p1wU)E m>+W{37=|I)Q_p;dpOURSa(F6t0zOWVOVPr6^Vupb_g6mxGGBslpueow%OuBR1v%)xF-NOp?l4Hz>6 zPw|pM9X2ZZB<15-Pryt_yp1rOfv|qaPY#x*?Je9&M&gJf40aP)Y#|PbSqJ&a!lXYs z_pRxQ!FH?6mKGlC#%MSvQLN$KwwJChs{xWUP2sh&$D)Uw>HEfX8g`pJ&o(dcVEVc| oX{d&wy<4xxag08>XLX=b^kI)0o{EEk_lx^?Lw$lb+nmkKH)~$%!vFvP literal 0 HcmV?d00001 diff --git a/NOKIA_G/netherlands_dutchtone_2.nol b/NOKIA_G/netherlands_dutchtone_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..d603e6bed9b3df350d00818f7274bbb0a4b83459 GIT binary patch literal 1146 zcmbV|!A`?442H8S2TnYIAE4_RZsiI?h!rL=UZ8AITd^%wT2bvCc_?B#DJi|QxRMjw zzrWah-DYATzQv7r64&;&5Vs-;OyZqfBKZi4)31ynf<&9%IZ#R*#R2}sA%KN=3_<3P zg8QUWTZ=nj6I7z*5VxI97>&zq2REYTpC`~4ypW!7Do?|bVv~nD#Lx0kZ zAz>`XJ`RXlz~OA@W5+~z%y!XhLpOlh?eMFn2^ysfs29PQavZXlp|mI|b61#V(68?b z2<%D=9)@^YL0a%=UCozqm9&OP^c{c=1};ax0y(ZOf98zAEg1PLxRn!B z&)0JrUY3cPs2_Eup41I$6LqKbkwlutzeNydgQ7#xk(7hmd2)nd0$DXOdpS7t=5dW) zrWXN`1*d%M7YnT(;aGlSDTYAU9VU+tKZf(WBx$W@F_9|k#yE!y<&d@n43kvykYmV@ z^C+ng{7VxPA>?aexSil|5NC86VJ;EAo_dka7=tQ`Z}r^52>AiqR4+lu9uBolwea-C zjN0Y$!OAZxc+aU8>2ZntR#3sY4a y;{sUBSF2?H3J<0#vRwdqU6;4BS<^J(m&8oh>Ryxp#r)zrwwc-ohA0u=!gndH)=l1-W}cbCz(cju624RvOSm)jp{a_p z1C=BRyq0F4x3JW0yVH$?Wx8Hx=?mQJwkkd)lwDWfE*5>?M;|;h-%=~un7xFje5>L8 K0BKWgu73b%x95Za literal 0 HcmV?d00001 diff --git a/NOKIA_G/netherlands_kpn_4.nol b/NOKIA_G/netherlands_kpn_4.nol new file mode 100644 index 0000000000000000000000000000000000000000..2eae318ed3cbe0c98420f4001ac6b08ec1d359b5 GIT binary patch literal 1145 zcmb`D!A`?442H8C;=nWb0kUp6mMaV)tuTpkj+J}j^$K_tnozz26+K%Q*oT)s@PA6 zNzpk6@y+MxgJ#v3R`<4@7PhqTQ16U{FO|(D+}Y;P)@9X$%JUpvE4$YnEKS$#OefBbd-JAy@V&dG4OtXt=8rB53bMWSO5S3 literal 0 HcmV?d00001 diff --git a/NOKIA_G/netherlands_kpn_5.nol b/NOKIA_G/netherlands_kpn_5.nol new file mode 100644 index 0000000000000000000000000000000000000000..8eede0849319bc4e4704caec0e73c83c430c2a1f GIT binary patch literal 1145 zcmb_YOHRWu5OsH`3(hbHaMO4hb_j})8mL6MfT30r_2Vdsh$62G7LxZdVZ9mPpFl)#s2 zIciuD&f2{kAsCv`a9i{uZbMAR*XV{qrel%HZp=8EkK3M)g9{q;wQxdWd|b5GI%ZZR<-u0HllUyly+rwJQV*CZ*U*{D7 literal 0 HcmV?d00001 diff --git a/NOKIA_G/netherlands_libertel.nol b/NOKIA_G/netherlands_libertel.nol new file mode 100644 index 0000000000000000000000000000000000000000..e4153eac67f8fe877876923b705f48d1767ab207 GIT binary patch literal 1142 zcmcJLTMmLS5JhX^mmjWS7En<>@z+O8L`~EUpf*5!lmL;qM;B#hDpbWs0Zvw_th83?J0Bpbuzz12b3nN#%pb^m<& zVOPc|V+B$v&4+ovK0l1c>)n4A(Tk$RcT$<7Sol!UGT(hAk%=6rN_mKi!;J4e&IG!1 zs1v=4NmV0$akPv26!IxgaW%?g2BLWpiP%eJ+;OEZVH_R=hqG<mN++Bn!{GZ;4}S5n_NV;UU7GmO#&sn8^WO?R4Y%;)TF=|3Kp#Kr2Xk0Hb3Whi5q z)j#>z1g>W{8*(fedMe$p9W~c}I3RfEo8x{;v&#P*e4{&k0)}IkVgD*OjcSWtxAR<= z8gA;nlJK4;O9@xHIkt6K^^j&+29K3K6dkNp*X>m+VZGXJ^VI`ftFA8JBvgIhTrL*F ZFeI;jX1;T+n;EQ literal 0 HcmV?d00001 diff --git a/NOKIA_G/netherlands_libertel_izi.nol b/NOKIA_G/netherlands_libertel_izi.nol new file mode 100644 index 0000000000000000000000000000000000000000..d5fc27f22f3c812b00921e28dc60b01ff2c95beb GIT binary patch literal 1142 zcmbu5%~HZJ5P-wg1JAGzPzt??SH&`-9>jy!3K`lFNGGj!czd%yO@g=9op%5C%OX3FKgzKjCm9nsU_$<9q!e)?L5_4nhLcBII#Q-E>}G9Ac439D#=;hETW{H*tc& ze=za@#Pk>D69($*EpltV>sfA#x~z8aSRHi&KUum+;NH|1TOG<4vgPs?-b-^T8rbNj zIcl50X0_cuuioH6H`U>sK-sqS-F)74UHZj6vptp4ojE1&QtUN+Uf`*)XLIulfe_~% literal 0 HcmV?d00001 diff --git a/NOKIA_G/netherlands_telfort.nol b/NOKIA_G/netherlands_telfort.nol new file mode 100644 index 0000000000000000000000000000000000000000..d66ff63636aa8959601367efcd7ddb2ccf1cb64c GIT binary patch literal 1155 zcmbVIK~jT25Zv6=H|zrlfg@fumQ_JhC4K5OC z`@BunLVc?%^{8%awNROg<|m$0XPJMrF?unM_`z95u>9wYbRt&Ia~$JUT+EqygEVAz z^$B*3zoHQ|9SNUPQic?a0g3yyB)RNV&$1tj*qV*DEr3d|hu7)AoXvp%BIJ;rO`L@W z_LVf(a2mISJw5|I#-ia6GB^i&g?9u<<~_E>lovgo#LxCD??7Ra0somC((pr$F*K8| z#hF+PizAPrSRkFu77qxz<_9oC@ zaTo>qu5ONPRg}GslO)lvWqrsyy)j+4H*KId>nuyxFZ$keRq+|6gWs?p02ChaRoj>pZDRcav=<<@Jpx41-}Vc<-8qU;AZ>hbA$xOs zGjo%BS|@6zKGl_aP&XFMRHDLvtB5NMrT6XfIM%~f-x-Ooj4@}}72oxH${LxY@y-e+ zeAs2gr%&TNCVYlHI4k^d38%q_khX&WqOcj-astcdp92inH=aOlA_4uh1sFGi#wlg_ z;lq(6iCq|u6iz|qAdcG!a4dQUCw$y>668-ld|#IU0MTIT4$sH~pHm(vWXtU`AM3>m zc_2KKY%%PzfH3ex>rz)~V=6x}nW1H|(;j_9LFmz)DUVf=m&%2U6j2IbtVwsMUm(f<@{}-(jb=Xn8n(Q&ZSdiK zjx5A6%VM3U`)D#57)gG7P$Tj0#SLK;=ebLWkj-AhGAu_V^UgX-sTFv4SmOEYOcD&C zk81)1%9vsVjoerP29C(SLrC-?BbPcEPw4Tj=o0(HzWgV+ZhErs;2xU5#q)js_rXm< zvoPl+{4tyaZsO>3dKaoe#wCda$|EjHw`6l4fYJ(_waN2bzt-)s9Q4Kx!@>56-mG`K pV*R4;?a)+TiLS@7yIrlOX-YqdS?*CvKiXrWpUS<}@28o~^)KnM>#qO+ literal 0 HcmV?d00001 diff --git a/NOKIA_G/norway_telenor.nol b/NOKIA_G/norway_telenor.nol new file mode 100644 index 0000000000000000000000000000000000000000..002b0333d83cdf3ee1f0baa2915cb7798020a819 GIT binary patch literal 1155 zcmbu5QBK1!42H7N;I!%v^3rI zG4X=w6%6%E<;V}y$vDL^YEkkd%wZZwAQ5!PhsnfFX2NhAx)GW-dqHvXihvsNCe41>f;m)<^uBqw) zOrGcPQoB>x!^Zag(RLa(>;1l1Kf}H4o9aVDJq+#baygD;_RgNgflAq%J89UK2Me#~ H3(U;vo4 literal 0 HcmV?d00001 diff --git a/NOKIA_G/philippines_globetel.nol b/NOKIA_G/philippines_globetel.nol new file mode 100644 index 0000000000000000000000000000000000000000..5bcf79deccb1439c83d860ef9e3f2bcdb909b065 GIT binary patch literal 1154 zcmcJL!EVAZ42A>TcGxrc0YYhy-E|aAqZ?>U+PQg{=M5_F! zu|NOz>nddRV$4sM24L&08sK{v=VKK@F^v2eVhv#N#4TB)X~%q1+!gW&KT z1tEt=SszuI7cE3_9K(AdtE_>gXqtmi9G1yulO}I47fqReaVXlhewfX=t_$`$XS$=O ZU@I#QFWFAO=MkQTl9hlYfOYnBcLFR-=_>#L literal 0 HcmV?d00001 diff --git a/NOKIA_G/philippines_smart.nol b/NOKIA_G/philippines_smart.nol new file mode 100644 index 0000000000000000000000000000000000000000..1b8d35346bbd872433d6fa11b8529248911626fa GIT binary patch literal 1155 zcmb`F-EM+F5QW!zZJ%KtU`6(l-nKSP#hTQ<0M!kUYL@_!`1bDKjMlj6Chd?cFmvXc zGlaKQ&PHr}H)b#FUO$c4D@%hRQoMqam;ypXj5w_MFN{D?cvM6MA%9&;_=p&JOG54B z#~RW*nm{(GZXqs&TIYJq>HB|{9Vvvd&9;ai*>b1}-<-1`g^XJ_<|j1aPDHrWd0+r$ zW&R)lt%ikP{rH`TcI8Oty%VDdSkYFJZLaijC#ZeLw_4auFjH8yONbIqtcs%px z`P+G352U zUC|k~Cz#7W9If7qKL&;n2;YBC9SIuVkLid9rDDc8YR(ri`CNI20SyjzVrP`&>wGBJ zcmNSt>RA;*;SmXdh@`?)_y#-^WL!{8ECbTOEo_%iE;zD`? z?h@EoA!Ld4u~T#g%s@|)Rc)J1=bBmW3P%ss&PMc=#z{nXu0AwXQFfGOSw^p=+izN0 y+P2-8FRy83oL@B2Rf5Y23hQvB}r5j}0Tmfj9OFxTHN$LhiW literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_eragsm.nol b/NOKIA_G/poland_eragsm.nol new file mode 100644 index 0000000000000000000000000000000000000000..fdc0cbd1d6f06dbd52d25b89d15bdd372b6b5daa GIT binary patch literal 1155 zcmb7A!A^uQ5C!AOgWoV8z_M^$ue!!$(M`l3K(_$|ECC|fzqd0(p>2qp?O}L*@6DSj zZ^y**y<7jrd-3iS^1aB5)=#XCRuJP+cdEJ|H=8CiahkOalbJqPP~|{|dYqNSGj$+I z6tJwardd(!$7z<8hHBQ(2s&2IQ*ULz{pg9K@VSoxO4csZ1$lLB$s}gXKvl;~tw^hb zYZ+0*EdPfUCfRLx-556r8!($Ix|vz-lt6_P6eh4J*P*$64qWd?nPx?_;krq&I>vgN z;iiAb1@jEWffs_PnU_)<{gbn7f~)Mylb`DAbAy4t(;>kx@?f$CXu;>=du<7 z{KjDvz@u!>U6~gH#Jk-NJ_^}nJsd>e*P;vHuus!u{|-;0FY})OieYFUw%c(W!-_qd c6G`EhYyx=AP69s9>f4D5(yWo+by?m00qB3~ivR!s literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_eragsm_2.nol b/NOKIA_G/poland_eragsm_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..9d844ba468610aab5cfabb525b2af911c957640c GIT binary patch literal 1155 zcmd6j(N2Rf6o!l0tviL`n6I4HC!N#tk~o4Lz()Y@lVCoT1qhz2XS< zeEUrK&XgK)@SZy5O|1|(`Yv=#h6NUa2X#V_b!^E-UF=7W{n;*$bu;jhwDbLiIQVO^ zZDd>Ys-5SmRIsiOGKP;dS;laqnp0bsRS#*FW$;|7W6{AzcHKd?F>F@5UA}sPTiMm+ idkj_IH`j~BFbv5XW#)U_N?z45hKFJ=;pOxNbNLDS$Lit$ literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_eragsm_3.nol b/NOKIA_G/poland_eragsm_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..e95f7d0be79e0b35954befbb5338723e9fda6cc9 GIT binary patch literal 1146 zcmb7A%TB{E5KItP_=f#}G_8;23Pp$pDiMAlv{n+e#ZeLw_3!a|{Uk;RADr3Qnc0nB zcSVvW*XdRAl-x>`CS|hvYd;$2hTNunUkjEW#F5L6&h6sr@?7 zizR3$`2d|^iWTdIZllm0Gs-jnND1At>E&A2oYT|%cXP97zN=#hHD(x2^^TPj2umeZ zl=JAFCF`Zw<&D_p*xjk)nKU8uf*@x=+U1xLA!k^rLv5J!pUP|_BM|;&C5^eIWp2P` zj1QFLBUwbRD7pgMtiZoV5^sFb$UZYqjKEpu1u%o{I^I{K=of{k1w6JVp1~K(R~g)k z?$Wn)GXh($*YMtmb2Y%055tM~8EiLYS!~|mfe&r{nL#s--Q99IO;dg(&ElY1`Cgne Qc&QE?J}&TF_567A4V+)+!~g&Q literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_eragsm_4.nol b/NOKIA_G/poland_eragsm_4.nol new file mode 100644 index 0000000000000000000000000000000000000000..d9eb367e3d27a12d582a346201fdc4d1b078e7cf GIT binary patch literal 1155 zcmaiwO-{ow5QQDY7S7-Uq-nAYVh2S?4OF6BptM#J(c&nHhU5OG-T>t|PGymJF!H%8hfnZFERa6ThV0`8aYH~b$?E9v zKO>^mLDO@i7+9Vt=KU-Bze08ziF3(kGgt-p!IYZe3pTi-AXtqr8^o9O7!-5vX4z%j zK87&MVVeoS=?e%lRUE(!)VVP<&D*%mCFX|v;7*s6xr|72eP7>ns^5*eUsSr*@~J(l zRDKs(p2`Q^o%^7?+6{88hT*9CRIXRsZMAxnk7{V^uT(bU*xfCc(==tD Ws97AKmF@K@l`p%4k{{<^n42HOQR@Q$ literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_eragsm_taktak.nol b/NOKIA_G/poland_eragsm_taktak.nol new file mode 100644 index 0000000000000000000000000000000000000000..309c524ea8e55dce1b7c94a945b9e783537182b9 GIT binary patch literal 1155 zcmbu5(N4lZ5Jk6!SN(?hfKupVeN~7FRTA+Bs%+XuaGSQV;qTp<*wY2@RqEQclq!RoSjx6 z6Wwo8VAt|4bMWrbMYO@V#qQD6A3y|6IiYpi$hPQJJI__AU|k<%4Bu(8jNw5wr?xJu z9?~q!;H^@}qJxd>x`S+E*sONDeDw;Cva8Fl7^=Q+?iY(;7?Mw(neXXU@}Z6~JQsTj J@23EB`vWCy>cjv5 literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_idea.nol b/NOKIA_G/poland_idea.nol new file mode 100644 index 0000000000000000000000000000000000000000..248f4edfd43421eca650e2ccb784700eb3ba72db GIT binary patch literal 1154 zcmbu5-%f)t6viQX?KAWN7^9bXt1~7;mxwQbt^our0V3Jk+jCA&`7?L1*sz|{_WOSQ zy4OSE`QEL6<2`$Krt`hjlTt#<6@oO1riRya^U`lW4!R1`ON6Q ztGf?ob{xmB eBF*NAN8zV#0`Za^mH0TB+NnyUS);$|vib!Caq7ST literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_idea_2.nol b/NOKIA_G/poland_idea_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..40a011a90d006954045488de990e7a0356c4dab2 GIT binary patch literal 1155 zcmb_Y+fKtU3{Aye;T!w`S=T%k@diUkD@F@a)a;s3!y8$Fb-fVo3-&_>4kF=B}(@Gu|CF~Ug#dSBi-U5w@Rg9bu7x?V3u8uc-1u~i*6#m0J;+(?m7gBWZz!ePN!t`=ur}Ar~Ui& zAD;JxNz7G}m`8InXNf7z=C7U%pBYA<5HOc|Ot`SrqJ=OP^fX7#L`PH17XU`2(n|=+ zX-o|e;KxxH#y(>MhpF*C3MRRBmz>aw95kXz9VCNtMDw@?m3$E{%tyQ!X>|$dqCm!i zjzN*bI6^Ro76c$Q7d=L>Zjoz2wV@^;IijmM=O8iqjRoaI*G#(LFi362jMpqYhK~Fy z@%0~n{R8{X_0{P6RpDz75AD%e_{!3ag*)G!`?hXI$nrdg*T$c!0d{T}j;^<`+m>aq neSv#7wDqTjW*ocQ^?I77^n*341GUn3f3omY9UQ!!FEH2NpegFY literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_plusgsm_2.nol b/NOKIA_G/poland_plusgsm_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..4fccde8760f2f77a7b61a2e233d62b5baf03bbc7 GIT binary patch literal 1155 zcmb`E!A`?442DyQD?EcAAnVp+xxx_A3X>QT=fa}4Vk1>sQSI%i?Ic~c3MEx)aWS#PQ$MVld42c!lub^%JTaCRh&JBTfMHH;z96Hya#@ z8rk#MP%2CJqmvak6nY+d6f>Dg#a~NPj$;gJOx}|w@oa+}19IZ*WG|3Nym|M(KN!+M z;<8pv-sxtN=|aO@wNVm2lXxcKM%TNhD#{L$G)>{T)Z4s;g=*W4Y9uV?t5r6Cf?L&A j#fOBl>+0+2wD0@)ont0za>Z|YE8!tuD|p=@!7?p zT+OY1(aCud^nimc42TwAAfP6 zZ-*iXgS#*cUV;a$!XOSZ8)*tEy%|`5g?`NAI-r>XLCoSM(#@h-z5p%uNkg;*6f8D7 z*>MhRK`XEM4%58Op&@7%ewN4BA=WtP!Sm+xEI8U_?uE*}EAzl_Vl|X>z!^xxowQ46 zFKVjU&gqUVh65GyS|laxiZC$!7uZHc<|WBiE%{qr(pZ^U8G-JF!!En+0B{*sUFEER z2;o7uIXX*6+1;IMgfqZ1{vGB>a8TehzRXcNt38w<;U3MmHeZnL4m{pI(NM&I?4gxi zIjAl!RHejobC!|#&5|?{PpZ9kO;ryf%kx}()ap|9VlVstEW1eTcgJI~dly^TH`Pxh g>S1UfH=A)BlW+3GCoCmj>Jo|9@+8IQb%weB1D4?GtpET3 literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_plusgsm_5.nol b/NOKIA_G/poland_plusgsm_5.nol new file mode 100644 index 0000000000000000000000000000000000000000..2f3c5f0f5348e96299eb33359410008587a328b7 GIT binary patch literal 1146 zcmeHD%Wi`(5HwOxJ@gy)0~`WJdTmoh3Q43UKR_D`P(q9V73J^i-St8r{f7Cb#E7|fikfuB#3?aiO!*#|*dKls_;m;w2VJC6xhspo->L1wFrpY?n%u<_Mcqvat!$%xO z8lG%@Y0A9lAWo75_Jyso7FMQhPo~kZTI_b|;uW4vTjpmCMc37j^LgL*;gL1715x3- Rtu(B&gMqgT>}_R^_n+c0=IHOqT20=?M8$`x@lO7{c1ly z+kM((A`(|oBp$@IMUl7_$z`V0Wqn?kvKsjQYgPkg@CA$rd03q!jD!N?NG4dr z!mtDF65MC{CenAk7#$uDws}5y2;(|_4-}#zCg6FlV;1c%1G@N%=h2%y-~ClsQkxrxA7z|IZ+W;gtQ-p&iha9!D~>FVf!XYybcN literal 0 HcmV?d00001 diff --git a/NOKIA_G/poland_plusgsm_simplus.nol b/NOKIA_G/poland_plusgsm_simplus.nol new file mode 100644 index 0000000000000000000000000000000000000000..deb1fb2960a1ae0dc846b8bf97a0a5ceee15a51a GIT binary patch literal 1155 zcmbV}-A;o*5QUe-TYZLk07~H!6R)(!q-YcC3!vQqv2_U$N#EX`8J1ZZf=M@FcYe-% zdw{oHrUG>n1nNcI*(gvCDo%LCHo#|0T^w`A9;9#^>99DKd6H9y@tHFmC!26Mah&NX znRl^($&7_M?|3~KW*-v!(J<~=br`hgP%`1Oq&o2p#pTcXv2>h@q%^}38sQ#) zG?@^NbjZ1#poLP2i0Qo+afLC8$IEOW(-e&razwzHjs4CvrX?g!D;Jq``X7|4dwPJU;_N{CU#F&@u2F9`->Q@fPQ=Ywl{@P4-r-5NRq+!-*>&~(dfoSZ^v#;p Tfm+d*Ifd|=A2fWPFEF=%Bzo%j literal 0 HcmV?d00001 diff --git a/NOKIA_G/portugal_optimus.nol b/NOKIA_G/portugal_optimus.nol new file mode 100644 index 0000000000000000000000000000000000000000..4162d986f53def55d02d31393cda968bef0ccde5 GIT binary patch literal 1155 zcmbV}TTa6;5JesF3#`ElaMR{9{6Z0;fl8DO1ZpJ_Esm0isJqAWavo9<5UKWf?!9M5 z>hm^Jk-Cg7)PuVARiqx(>g<;!$yseC{OtS%#?SIDI%n)ZJRuLC2SEzUP@qCnyhKzU z3f7sO+~^7=6XfkPP|_fb4;<{$3^>^o><}F1g5bL-5t{%kqJJ9V)&K*mYy}heg&fql zIpDd1{%9%c3JjDWgG&T|PeSk(Bi5`3pKut*eSZxcSwn8o#y9Q5qj4cTz(O%G!!~S_ z*68-7EFwN=!ACJH=r!X2m3}lCr-+mO0sjKbC^&tEJac$Yxi|etd8^Hy(c+a7FV^k%)=W$PDxXWOdyG`j4% d`ewQ8`#%04&ti{K{O*oMKjnL?-%c~k)i)n->r4Ou literal 0 HcmV?d00001 diff --git a/NOKIA_G/portugal_telecel.nol b/NOKIA_G/portugal_telecel.nol new file mode 100644 index 0000000000000000000000000000000000000000..fee8ebea7a172469d843185bdb2235bc0287c820 GIT binary patch literal 1155 zcmb`COKyWO5QfdZ%^BtZ4#7*hZ4yNaZKTo*(8dCkhY_Hn+&=c$o??~=FFddR|2+OY zWh`PZQN#{xrL&0TESZ1A=**`i$p|AB;b`O%98E!v-_I?o(Zcd^fThc<@?Q{SR;X`p zH#}3inkwHgkv>96U_gOa>1gyL4|T{*iN#=vE?UC_d>04SHYTIrT>7{^g+Lu}oSe3> z?_-yKi%aW)i#AZLADIaJ0t9uq8Nncyz?cnZJU_K8gbA>xMz%$-+I6N%1^fCcIsAz@ z;qb1SM_ZRw43?kZaj$6cOhyD!+vt}gE!s=jaDHk)A>;)~U+&p3*I P)s4ePahCA&m|$L?q|WMk literal 0 HcmV?d00001 diff --git a/NOKIA_G/portugal_tmn.nol b/NOKIA_G/portugal_tmn.nol new file mode 100644 index 0000000000000000000000000000000000000000..e9d62b729c2bcf1f11c6a77fd862476eb8d14c95 GIT binary patch literal 1143 zcmbu+u?~VT5C-6~I2hwI+yfLWBd(}15j9a0XVeCWXbBLBZ!gyt(#0Usfn4G5#~tkU z0kO!$8j&@b)|Exhgmo_$S9h!Uqx=tPfiW!Vp3Q5=2Sfen^=@?VGvf}OzKV7f(Qf`_bSpy~H5rbAtN%FW z31tjbnvP8Qd%e$i9+o1v0}%;WB`K%yaves&7uh>cqPPUt^E^1k;t>|G;YE@1oWf># pJO;}HEO?PbPYQ8aX7kyssw(HMGWJbAa<1Y*VH@5!T;8zt#~&NI*%r>J35J7yFb6ph0P+bOo=l*$43{ z<1zr3J<_fKux(;~06UIZP#1M~2uFD>&|W6$mK()E8fMLF7)LK)AzCGNn}2fD1mie5 zi1Qd>KRDlzy~4k8+z!P^&R>k(@G8v3oYB4g?K=JUso%f6x{zNstSuyOCpj-UJl8u$ z;U|p~3QxQ_v~^iYNV6=1_loZe0ShL?j?a!jP#(VE zByaeKnG{V3NhS_X%RJ0BT&8~L4C&=&_<+dsIf{w!1Va@J0UyE#|Isa z7ZRdIQp_{yAHzF|7m9*+qKUjX&t$MrnH$RVwl!Tj*lt8m{|cqsP< JUQRR2#TSBI?GFF| literal 0 HcmV?d00001 diff --git a/NOKIA_G/romania_connex_2.nol b/NOKIA_G/romania_connex_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..1f0406f97e6c8bc25d0b7b77be55d07fbf96163e GIT binary patch literal 1151 zcmbtR%Wi`}3?$bc@(sTALUn`f~F-#(OGS3iVd-}k{6YZeD81)uul!!|!C*q>qjn1(Oe J_C87O{s78a=-U7Q literal 0 HcmV?d00001 diff --git a/NOKIA_G/romania_connex_3.nol b/NOKIA_G/romania_connex_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..1b13ee1b64addb9efe92c4f966e56d97ac301ba2 GIT binary patch literal 1151 zcmbV|&rX9t5XR}%gU>KGFI)Z`G4Wuu+N9Jb;tQbN0I_um5J_LxCvj(HVSz-bg)o`j zneR6r^RkPah4Z7owR5fG!nt$&sVAU^JNo&QW~Mfa(G40wkrLm;?w;z{z{wx;hFT5O z3W~%2ISfrl9cwkEea(0SIE#Z?<3XE2JA7j;&0@@MfUK^IThD8n#{J};<(^9JhdK(_CVL6*Cs^M{-gCUY3B#*jC=}>c literal 0 HcmV?d00001 diff --git a/NOKIA_G/russia_mts.nol b/NOKIA_G/russia_mts.nol new file mode 100644 index 0000000000000000000000000000000000000000..63b44ff1f39ee799d73aa6fc6e1592a0a32c2169 GIT binary patch literal 1155 zcmb_YQEr1U3{4NPoxul4Y4~KnTc=88t2A~2wnl)~HVDvAufDIvPSVg85S40)*m?GQ ze&l@>*x*EQjb~&9eFnKRO=EVk<+zH;4 zvPv6O&101*crA94!*3V}4$rDQRz;RK5Jpi1pSjwnHLPV_?_|Ycy-bpL`2jDoF0uoM gylKj(#iDK7;K$6&x6}&0)tv42IJOSf9ZUkkaJHu3M){rK_~=vLjm~Kx-QWXsEB=Q)4F)2(nG%GD{A@ z*q?u!=Uu{P>}q_?=H{HSHzxkUq!hxqG=>**OfsxQ2AV*~L=cr*DTr{eKT9GV$Rdb2 z@H)Y0C{p23lLo^v$f=sNg!Q0qBeVCQfKNsd*M)iJ_-;dqVI5iO2 zm8wb`T`dxwX?QA*io=(T1cwJ*UaBI?8<24v!)vZjX$>1y*GE-x*sS*ZWc31%sxGoK hhrDUZ`{lB2+vwBgEDrQ3`p_p1+w`E|{W8GZ-2e$;>ni{N literal 0 HcmV?d00001 diff --git a/NOKIA_G/singapore_m1.nol b/NOKIA_G/singapore_m1.nol new file mode 100644 index 0000000000000000000000000000000000000000..e2f48ca5026b5d5b986bdc58b7c0d13c46f4256b GIT binary patch literal 1155 zcmb`D-EM+F5QW!zZJ%KtU_rU0xBjFFSd-EhpmhU8?Ghjo-@Y@mTcLF?M4iB7nVs{^ z8QwOr7>UW#SiFj7JdH#mX3hvOoEL+NM4=cYx@e}x}5&sG@5BGi%8yx4FH$8N+@O!P3&xlF%ko2lRa zRTk4K=E@lBOPpsG7{qx2UWLC9btMO<+Hj5;P<#}JjI;j%vme#EDOHs=y7FS3X;>9| zCE*zOGYNBDo~k0t8wkQMgpXVw(i$RF*Lzh-h?YqbFW+II>LUA=kT*^FGM%<<>+ejD Ux8*DUOCKbx)2)Kf(?87Q2NmP$MF0Q* literal 0 HcmV?d00001 diff --git a/NOKIA_G/singapore_singtel1800.nol b/NOKIA_G/singapore_singtel1800.nol new file mode 100644 index 0000000000000000000000000000000000000000..646bb34697e7b7f0849c666ab6a9c9980fc07237 GIT binary patch literal 1155 zcmcJN+irqD5QbOp?K8{+tSFawTQw$9O={ykts5ZKE&(F(?K?ZOi+E^)m=1)Uox`{P zY*?*B(G!DyUo6B6dOfif<9{)q4cX|}6O7~ILoYhU=xYLh7!^4JmsyHkERPY7a!8Mn zRFgY!aD)bjHyCiv{lV<)oUCQD6zn7-X`x(Qa09bfNO4<5y+nG9Ly{0wA7B>E5)uvA5{SGk1cY_kbx?=V$G8vjU0$}*dbMpadL X-&`}?QOf($2MKS{PQmBt3N!cxSIp{4 literal 0 HcmV?d00001 diff --git a/NOKIA_G/singapore_singtel900.nol b/NOKIA_G/singapore_singtel900.nol new file mode 100644 index 0000000000000000000000000000000000000000..18347659eaf983dc2f0d33dfdea0a787650b9c75 GIT binary patch literal 1155 zcmcJN|89aX5XX!EyJxruC@6p8zs|)(HWT#)a5g}uD*+<$?RULv8BUiV%ML=X_v6#= zHN353;fe9c6HD=go+o@U{TB<_kd2N#!8jp4^rB;oz9#UCQIR8XnWfmp@)+?bhx8ap zEqMS3N9b^Pg8}EHQ7Rt2+H!ypJ6t`8>OQgp*Bnd(7VRkNx7@zfY zPrQ-S?Y@)jANm%-e@Oq%>q^JL)y;QZ&~wKez6EmwgUzULu)lBy3s@JbOln>Fu}(F- z8FIOu8Y}Z(lkx* W!8QJYQo*}ENq9{T3ig*DnDG~#De52q literal 0 HcmV?d00001 diff --git a/NOKIA_G/slovak_eurotel.nol b/NOKIA_G/slovak_eurotel.nol new file mode 100644 index 0000000000000000000000000000000000000000..251e3e71be1741b53882192f4bac3be20a5da30c GIT binary patch literal 1144 zcmb`CO>ToQ5QUvCv&b3d0EUDm-8QKrg*H;t1zXx!fSS|@P*F~tYt%D#FeaiwRYvm9 z%)Iw`{JM?Ugq_&~TeF$EO_;|PP6Rrf8YR7kO0PAYN>6S(y~b^hwK}(da&T(3=vhS2 z)$DEJJmeL@*5wVN@FD!$<-mE+t}CW)=eo%utFoaGDMYXby@lye&>W+-Ap+G$ z5wz$|oNLUs5M@%!(u-s&;W zoC)J?4;xzRQ%u0E|qkS%&MQv&fnKIcH+z z449f&0rL+Im&!%VIuwbe4wH=Q*_Z$t8FR1L_vFhlW?S1P?_9IYT;cRxb+D2COkxx1 z8&{v2swg|1q-m;ON_Wg#y|Hb3uuY^l>)kF}KkHlDR>eo8%dV@hSF677<9F69_t=Wx Q+%eLR`QGZ+(;4RS8$$H!rvLx| literal 0 HcmV?d00001 diff --git a/NOKIA_G/slovak_globtel.nol b/NOKIA_G/slovak_globtel.nol new file mode 100644 index 0000000000000000000000000000000000000000..23470e962254ad551d9fd1ffeb197520ee723d98 GIT binary patch literal 1155 zcmcJMTMmLS5Jk%ZbPcnBg7S&KK4KzjqHX}S0pg@ z%~1qwR@-^TL8AhR9=tx>Pr<>Fc$jZFax(&ldqRlHWN4(tiIk1?MbyXAmQql@kNTSl zQBH0Av6|BGY6D*-C8&J9s&Dlr09R|td&W;7?~Q7yT1G7PQXZQw_c=_$BcpJ!tv-bz zkMcP5gA{DXabOehlb67ZCCQP+6lUY~+8wW8#FEfIQwY*D8uWTumRSd^G55-{cKk$P M?(G?D^9H7K15Q`#M*si- literal 0 HcmV?d00001 diff --git a/NOKIA_G/slovak_globtel_2.nol b/NOKIA_G/slovak_globtel_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..4ab9feed1288fe48d64cda409cd3a16c433082a2 GIT binary patch literal 1172 zcma)1-A;or6lM>g&u|`qF}R$!I%6CawH8s&c)*3gu`PQl6;Z4_y*f! z0edAe@?ydv9Ed!sat%W z>RM;#w1sHBUc+Zv7D)qJ)ik-Peb{aehj_DxC)H%c#G9k2BVcF57brFZ9SULEBJ#w(hS^Ov*@B+POtYKa z|NpYhTQ-Y&(U19Fq8qdKqWdUuE9K;>n9}+KVd|mUIfQbOaDynqfDK$hK`yGW|4fc$ z=V65_5U6Vv!->@2Mvg!suI2lQsVkr&H7z=wQ#{6^aDFGjU{&vFt`bfA)H|P{&{8bb)OP#E>9b%wUV5V0Zp2|wa@Rbge7#{TgRF|uD3+Z?~hL5%0<_%0$(^RUCVLDkXW|Mb# zR86_s#jtMM{oQDEJRXM|s~Hs38h+|+4D-BDusp$QzBw!*tJHVizX~+Z>$cp%v#tuY JJ?x79?JqkO1JzKxsK*;z?^viZ-zxxT4(vv2_U$NuSu)aOcl1qp24*yE`-A z?DrdZ-sRCE`gZ3rx_0*>x{cP;O4D>IW@nD_izBtxbk1`wDHkyAnSQDBe>gHd{Ea{_ zauiObWJOG1xMV7|F1eCaigu3)a!B~Uq>ll=(BEj((-lYbsgK#8qsr+W@n`~n7xSg> z0&nVh9yaA*P|I_ujk@$*;LQ@MQllfZ0*SOxk% z=dP*h0n#kX;I+1=vWKnd`=jY%*lzaweDebLrf;gx80ukYZ&s^u9Fq@zvpi5MdAFw+ Op2~xPw=)z)arFaScIO@d literal 0 HcmV?d00001 diff --git a/NOKIA_G/slovenia_mobitel.nol b/NOKIA_G/slovenia_mobitel.nol new file mode 100644 index 0000000000000000000000000000000000000000..762c2b52c1a7a71576c04030b57513ef5ebfc52f GIT binary patch literal 1155 zcmc&wO;5ux3{8Ik{03h*Aa&hxEJxT7(h8Fp66eCAw%SLkwxZgTh6N3e^jI|1;zJ~g_AHSIGL^0B`LZ|Pt2OBa) z=xI5Z`!Y#74kl=eS~Yp6n^C3<4foYX#qc4MNep+o-ZxcIb|BLK z`@=r13lWK{=vq98OUxpXi1|OS%&du2OQA4@Waka-d{A(Kb|x4yAHy`{oDK3APJ+3= ze&8n#da)b|#$ljiZ3I@vWjO684k`H|FiIIfBYuOs0b(^Qq4Q|@9%arIBYx$O*es8s zX>1t|2EImH88Gj0#|?jp)(-VhG{W(F;~e9|2`$GWzgO59L%BZxSbWi~kvUt_q{}&T z`gJS2QmZa0RHfj)*~=K-vveNAooY{AQ`H)>JkQ~!R)?~OmF)Yy>|$6gH=APl3=7#e n)iH)z>-J_g8-^j>8BMa~t@KSDVt6dK5?)UZb1S>5JnD-Ncw_2y literal 0 HcmV?d00001 diff --git a/NOKIA_G/spain_airtel.nol b/NOKIA_G/spain_airtel.nol new file mode 100644 index 0000000000000000000000000000000000000000..1a54d5be2c5aa4809b1636b4f3b7fba4e1d81df6 GIT binary patch literal 1155 zcma)(ZEk}w42J0ewlnwul#-w9@78Ks*($BO09zwKYZnA)s2AON7TXD51(Zlh9LMkD zH}H0dy_NT;=d*XO*Om9;h4Vv*`8($u5ehwcaTeVa8ivjj>*n4uK^R**IM}4)j!$a6 zSkT~e4Gz;(^L1qr)7=m|;_6Tdmb;b(iI5Ad4n$l(KofyZGU9X5fD(j$SB4 zCdPc|dQV5Kw#PA2>jn4aK^?Il8M8XAAt@#iLCYeD3t4adkf5hGk96d)skXN@LOUOp zK%F1vw7tz!EN;X&6tYZeRjy-|D%j;`>BFxGLLVMgaV_&St3gCj1Rt5YBo*vsRh?z& t!+v`_#@lyzl2xAm_>k3g@vzx6O%r@`&H6-F!I!%D@S2pTDe literal 0 HcmV?d00001 diff --git a/NOKIA_G/spain_airtel_2.nol b/NOKIA_G/spain_airtel_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..54e4e2312037f7f94f6c6f5bbf2a9f9cd016a283 GIT binary patch literal 1148 zcmb7=+fIW(5Qgak=rha%PzslLt8Gk*HW4qpMY{nabqSD?zNpXR&S5!~*f7Z+X6K)8 zet11Z&dT{U>)E+C`^t$Oe?Ef14>;(Y7u|d%0s>gc>CLVyff%`ZU-p0|#7b`jZwoP9 z2VJn87lB5wQ8Jl=gH3dv_+~{^m`&`XoJ<*D#xoak43s_5C;5cMD?8<#OA{N`4W9i+ zk-7f&AV=zWp+p)dhnOHSw+tICalo4NOG@*5JEEt-ofDH`+_J+O6eGK9u&G54PSlM9 z879ml?=rI=E;STLZ48i%DF1N`pNELqA>~l2Drt1Jj&!PFmlw)~bKvw75eTEsGaEB literal 0 HcmV?d00001 diff --git a/NOKIA_G/spain_airtel_3.nol b/NOKIA_G/spain_airtel_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..cc1b038a6e558becc7ae11adc002e3da86d34b03 GIT binary patch literal 1155 zcmbu5QBK1!42HV{urv4oS+_oxR~SNCVG`v6g+*<}wp49JwTp5d5-(0&2$?1#rT!E9 z|Lo>@n?^&>kEk^u%;6Yj zMv5B^8DS1h>M`0Gs8fi8HRiu9#x=Gk6Ua}II&-s0-o9sVFS-a`sso3Q6BN3uB$WH+TWKzD{{Sht>qP(n literal 0 HcmV?d00001 diff --git a/NOKIA_G/spain_movistar.nol b/NOKIA_G/spain_movistar.nol new file mode 100644 index 0000000000000000000000000000000000000000..407b35bcdc2cf126ad53af43e92fc43c3f478bfe GIT binary patch literal 1155 zcmZ{gO-{ow5QW_pD>#D>kf!l6Y@rCLfl7o66dJV=Esm0is2Altcz$h_HjDAhn{VFO zd0kg#W`50$c{X<;o0-}a;d2gR_?%``CsB|@I#0tiQJS0+umBM`{{bLK6V7XEv4Ox< zhPq^T&BqmCf!IKL;X>>qb{7bi0s&cw7uV?;NC?D?OE}=e`;cQIs57;R6q-1Q*oFPT zqbw)4w1HjT1vtRzw3Nw3)i#bLgHhxW#Ki{g!+QKZv{P;IZUKTBZfPz)+3<8gVVa*IgN%?b8mPhuxrPWe?+1;_=!07Hfh$Idizv`M)*(bzhmwRh z$sx8h#8Lm~x@-E)==*u)ciuj=hbFT>E-y0s;JZ`b?)IZ~Wm($yy+3XSyK08v(Da#I tE$g~kzS+lSXm{V4-H&5;zgSGulz$O3-(oBO^vBG;Y_^U4IGx$t{sH6%>_7kj literal 0 HcmV?d00001 diff --git a/NOKIA_G/sweden_dof.nol b/NOKIA_G/sweden_dof.nol new file mode 100644 index 0000000000000000000000000000000000000000..89f785dc418b331dacd0001bf3e200c88d0ec08b GIT binary patch literal 1156 zcmebC_hDdU_yEKn417S6ks*x1fDXXW(7*tQA&3I|C^g3r4v-xI7X-SJIDo7J;V)!S zV$Ff5L-iMkM;d_XfYAt3Ni_%N2juvIiJ_W~&tzmBKwS_7q+kG_Ucz$3y90+=Py+^y zIXIk28)5%~)S|?a{32bS{PcVUx6GVW9fdMOJp&yD=lp`oqRjM+5(Ps`OG|~2jQrfh zVg>Ki;^LgtA{_;9*Wh3u*B}L#)Z)zaJROCMl9B=|ef{$Ca=mPb8r>AIlwNXvu8x9l aVoIt)Ql)}dejd=2pl^A3*=3oR|$59eB>VesF1UxggNfvgGD-IfG?N-sT1Z{VW)yXvqH`!nnlLB;5ZCS zu^PYY3^geJp5=AuWBARXpRplNWuHIjP|Lus`;C*OCN~2&Mhiv6#HYOF@Dlbx0Y8sS zjtT#ht!v%nooS}2DGWSSJ1ya;qFBO%sZUK+lpUxfN#M0K`@DsvZrh!1BrNAymd;<` oQMXlbkWhAAeLtJ^eIIR^Gu==rdN+Fst9+y3?F5UDZGO1@0zPHvbN~PV literal 0 HcmV?d00001 diff --git a/NOKIA_G/sweden_europolitan_2.nol b/NOKIA_G/sweden_europolitan_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..e4ab0766412fb0184e3c9a17142283aca7d065cf GIT binary patch literal 1155 zcmZvYU2eiK5QNQJU)nSH0O2Q(^tGj`3N2FU1!#!?6&jR8McleasAp!K7=#_O>-Em( zF>mvk>$yL7XbxU3%ejlO?Ib` zAd#f!Z@8NicH~2a=mBsUwP;RY2X)+|fSlb?DxB?bqTVFaqfDLzdBF{5j0i?qckx2x z81i8@Ow5L;yNEc0nMi9XB!weJg4D=<+b1k?TCve+hebUb1oD)aT-QfdvP+nJS?h%i zG}?-3%79pdS+s^fO$%ZPEs6bIBqD+!gi`uQ;e+%Xo*NbAZs5eUqzEHYXp9LX8abIj z*A0o!_Mrp-i9|^Yt6}21G9Z#C9@-Wqkq|n7Sl4j#Ls2c8vg*&ub?KkByCUKQ`rlS^H^G*Sn(1{B*Kd%qH*tv8cD}pUiKX=5Rk89*@Vtw|e?3 T9u25M=h(SkDq^sExHyOU_Yi)#IQ_?yT zO!yG#;(p23(#NzY7!%ZigN27q0AUtUL>H17=)4i z=gl9FzjiU3u|GCvAMCaJo3Vt2LqoVRq#E55A`Fp)-%;^>fd$z4zH)e{izgq?;ZR+Z z3bTH?)KIhw!*s0j@fFGu(S?ISmBClLx_}%4M+~z)ybqa(^^77W^0>`tJyb?Gr-M9>qI8ea>+k`#xWfR8LzLz5p+^k^ z!(mkr$TV0md%T@tc=b@xT_YY-te5C+UxprOv7_gDhWSP5K4H`)wwRRyoD%^V|dT?F>PS0 znx<5>gzb92Pu6d+QcaPaB;;*dJua7B*9G6)vp7&G_|iuSFX=(S=NVS%sZiy^9|gVW AXaE2J literal 0 HcmV?d00001 diff --git a/NOKIA_G/sweden_telia_2.nol b/NOKIA_G/sweden_telia_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..7ca34a2f28852cb6d0885d09f5623ecf80353392 GIT binary patch literal 1146 zcmdr{T~5O=49*S!XYc{Cu6gVvo?vLw3X`^7pkq;6?I%@RQSHFIa|9gcw;&;SLs)5S ze?N}s=2mxS@j^YEQ4L8&P4|+*>xw`a#$_4+kCNs2ieu-g+tZ%&3rZ+h9Nl`&GbN2 U@}kZho{EEn{S}sP$KrDH0ehF|jsO4v literal 0 HcmV?d00001 diff --git a/NOKIA_G/sweden_telia_3.nol b/NOKIA_G/sweden_telia_3.nol new file mode 100644 index 0000000000000000000000000000000000000000..e41c43115623154933894a26aa1e53c334c24872 GIT binary patch literal 1144 zcmbVIOKyWO5GC6#dWJawA$UopuG&Y4FiCnA*+%l5qa zyypk6n=Duazves#x8`01_dzU6S)gJ;(zz%qW$1K}hTzJDGPtdutA$VmO_2_{vxY{G25Fl*{Vnpq z1oq3esPc~va%r&)PP&{l?E~C7b>VW;=Z(Q0HYmANMb&YAG^b8QJnm2+M>$`-7Pa+YIv&mMF>ACibHtN?V+p7 zY5?cHiMj$`!2Gs_*dqEFp~@RIKe K_&7jXH#dLLW9J;22nz z%7dU0%((6bAHi)I(sFQg96FJJ@M5&pGM^Zhc{q`}O+P#-JcaEAJp<4p2fHe&O}&4GYpgZQ$@R$4H+ z3LS){62bi(m>4GA_w`UtdRP~_(dxN7)v@}{k~CJ2y1x!x(@rYO^IRQUeJ)3}tH<$F y53$;94~Js=uAb_#Yc8>Br>TF~Z031RzQnVxASIvr9IMx|s@2C;9S41>?tTG`;^?yg literal 0 HcmV?d00001 diff --git a/NOKIA_G/sweden_telia_5.nol b/NOKIA_G/sweden_telia_5.nol new file mode 100644 index 0000000000000000000000000000000000000000..76f0b72b964ed7411656b210ff600e60e90303c6 GIT binary patch literal 1155 zcmbV}T~5O=49B|zz!`jiu4^94D-0p6Fo_}F2aDQ@jZ|$#wOexp5<5=F#vW?#E-sO@Wf{w8stTbRg&}g)$>!;wHV{`GlxX(&K4o!}b0Vo)$b*Rj<7Qq*3 zmyaF`VDB0m<;LTq}}a(v{CFT z4z^M!-(bB-!2A@V+45QR;bUGxldfB?xd-4?1!NsCl^flw@n_(_zcjks?QQqP;QLn#NqN<8Cv z?|mk`Epjt5KjzN7mpy(76p(o{DtFVIvFxdYl?~1`-Nv?8cIy-Xt~{fKZOG2LfmHMFC8Sa4B4K zph|*+gBV)H3CF|rKBQfS#Q^j}sdDGd?2FnqMOQWByxLUsT<&c|-^nD7=&7ntO}W{2 zl%#1&AKU6sw3OMl-PuLZ1 literal 0 HcmV?d00001 diff --git a/NOKIA_G/switzerland_diax_2.nol b/NOKIA_G/switzerland_diax_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..b6a10e583744f4013a80180860a995f95945a827 GIT binary patch literal 1155 zcmdr|TTa6;5On(wXV?QcY5W;}OA%7jR-#-WP%DXOag;2l3O$ z2mb(4zBZbCP_0)J7ZJ52MC?M@2~Ojp`xu&K8!CQBCi>cgPWl*I{J(D3%B~z#mlUc} zaMv6qhc}UC9G0p*cTH6fAo4ti$6B4r9@et&kFw*iUhVhA>H%(L-&C(0>S1Va7K?El Y(-*@@4m3)i)rrHVJVyFeWN(^kr4P{j1azsSi}TT#}a+KIYG9<`-vf6$JGjTJt?EwAt_}q z%=Cz)YV^h9y^b*y48^jyO|%EE6%^PnN*KcWqKL>p;MX=ETb z>t|L#f|hF%FPhY!cKLtRaew$1*{Y&-*0Oq#vYf%JJW&k4B#JSNS#_<;yl8l*+7 literal 0 HcmV?d00001 diff --git a/NOKIA_G/turkey_telsim.nol b/NOKIA_G/turkey_telsim.nol new file mode 100644 index 0000000000000000000000000000000000000000..d20c68f20cc6f1d9ec1734ca1b03f22457876d40 GIT binary patch literal 1155 zcmchS;ZDLp5QMM(*GDk-0Hu_lHU3kK2~`sD1u9(HM(~=pvEl8#ow*hiF(w!<G$)Gg6o0e8g9@=| z5f7aJ>`AV~?-R$Z;|QYnd0^v(SzMk8OZv#+D4*c$_)-aSpTig^0Ex|&INVQrQI-+WTRteUYR;;Z9PhDZuMQcHlco>L~*EZY_+Y+ylC|# zNfP~B*iF{xnQ5A}sY5-RE*9zZN#B~L%-=#?v~6`Y9(P?Ay|QPtf)y?8Ce#nv%IKHv H7tHwwDoyNY literal 0 HcmV?d00001 diff --git a/NOKIA_G/turkey_telsim_2.nol b/NOKIA_G/turkey_telsim_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..4d131ce821615bfdfdca9a0720c36841a9fabd3d GIT binary patch literal 1157 zcmb_Y%T9wp6dhc;@Dt4a07_wr+ZNNLXiaNkTvj^)A{7Ee(!Y1^V*s%v8l8l>k8|$1 zXSm95KPggk*SHZeY1gAU_!?qCNd)kLIj&Owt7X(sb(gD zHl-<|e(4Zrq{EWtwpuu5h`eZ=kQamzmq1KQl-LI*S-6+R4r2DU`%Dv4zLCKdQ*CW~ zL=;axM}%-1t4_wwiCphO*u)eaoaL>gKx$HVbC%FCnTqZ4*SQf#w9(EPG99eHC(IIW z?8AukkCGOL(YPqGV}qGw;2ymghMD}+!RP*i3>h1`;eYX~Ti!u0wQt&#y4p8IHH(X+ zfZHtBE_?)@@4})ePgRzr4Fq8r!ed$-_cg3_UFW)TVIA#uakPb{uCwIbg|unPoB6zL kTknlIvjaiiYjJepZhz45a)O66%d@i7u#6U~X#0Hm2}us?Jpcdz literal 0 HcmV?d00001 diff --git a/NOKIA_G/turkey_turkcell.nol b/NOKIA_G/turkey_turkcell.nol new file mode 100644 index 0000000000000000000000000000000000000000..8b83882a0028910fb3d550ef4a6958d40683044e GIT binary patch literal 1149 zcmbu4-A;o*5QUdpFMI^E4?t=6vc@~DF)7-_`T}S-K>7m#BI(=9nVDU-ZJKB#S$3Fn z&Nsu`DpirXiz4-+ZigyT4{CSkc1w*K zGSKh``-~q~IoOMGZkFWvGtkh$LxJE2cpUZFATC&g#zlFZ6Iy{7_Y0Lj)j<3gv#M>A zbyYJ-tGv?B<<7?X+a$ACKUVdzDf6P!W!R!G`{}gr`((?W$%drltJ=rNZqST=S3=4E3!1j_P@nJn3IYTcb-ie69jsEEpw1VSI$Q8B*;|(%jL;Q zm>_!}yY%>jLoGQ41j2&Nh(MorA#&^)1qKpfP-ftWGb>*E{=Q#OCJ;lUw>xh#`s zqHEZ19GCFL!IU`qAdfMF!x~tRbOl+o1srx|74oD4Gw>i37XqVy;<$K#!oaA+`%LJ> zA*2}YxHeop4A?NAi@_$sY>oqRDOH_iUJC83gnv#LKgZuTrY(BgE^=F1eODh$tUuCZ z73&+@oZ7mqdYxujrk^W&EIPe0U3V~TtT*f3E?+2upp^CzpNxtz0VNSHP+&uw0&TX7gxfoR5hD;1_hEKs=lgy$ z`#u>*ada2Q(Q9;zSseAEEX(p7!^M+dbNJxt-9CEuv7+Bg^44)lA@? z43c@O7LQ0+%MJ>3esS1gL~=0hh{HR`JT(f}qVPzda7z@*6ZISHp$&KrTQF5D?`0ej zsFxkap_^w?is6>%i2Wlk|Esm0isJF*6V>>otk=Byu``(+e zUv`B^#9fkzCvj_{M7)a?oy=Hs(XpZG#fBxwI<<>6cmt&4nbrz&v!d_O+Jr;2!A}pE z$kgD}0}#rDup3H{m`AZTjk6)USckJ{h(jCCipJZKb^|HMZ2|81r?oa zfWi`@o&A3wPoRIcSp+4%n-VBe$OiF5HCTk>Sa&!k^=KQepf%ST$3Y2O^rhz3SDVrC8PnNDEJm~h^HB~)8 zmghOV)%sNSuvLA3RGozFX1^~sudr5qQ+-RQhoQY+F2`|9zZkPPP%Hh^CkfBxLBYrQ HkIc<4$As#1 literal 0 HcmV?d00001 diff --git a/NOKIA_G/uk_cellnet.nol b/NOKIA_G/uk_cellnet.nol new file mode 100644 index 0000000000000000000000000000000000000000..12c8cdb8152f20fd34cb134b01bc3794b1f10744 GIT binary patch literal 1155 zcmb`DUrvKS5XQH!CVGZBz?Q-zzG_XAqD`z9K)V5A+a*9Gy|Slp=MUR$ZDLR-KxgLr z<~O^2T4idYKGl_4s2i6}RHouE5{a-kJ|8IVcl@xQ2q=F6{U;_)V#fJHO5!eh@vh&R zIPNHj!BHxM1VwrHuM>m!`F-4B3SlV4E+!trr8h_^6mIkSlP_Zj2-=*?WtiX$1z}M~ z6FHB4uZhSU?0O)ZX%J2HB8Xt@7YmPE?0X1vh|eDcVH^cvdX5-)@lPPq1$cHI*~E)N z&ai+_aiWYZXfxjBm$9l%lXte6X11{KP;HHdk0gpU+}ZljR7KfAlBOxVly;Z5urzJE vHI0Vle7(-*&v0+rs@Q8NyRN>S&HBEN-q|zVkQBYyorcGJW8n30hPnO%I;QK# literal 0 HcmV?d00001 diff --git a/NOKIA_G/uk_cellnet_2.nol b/NOKIA_G/uk_cellnet_2.nol new file mode 100644 index 0000000000000000000000000000000000000000..05db9a8810a258419a6cd0cb7587da2a48e793a5 GIT binary patch literal 1155 zcmb_ZQBK1!49$L#;0!)M+O?nM7d9cSFo|)2!lJffTdKCA+Lbv4iQ^=rL2Oi{Rph+* zJwH27>zvKlC%a+~>_$a17O~`#mFktaExm;EQ;s3xuH@7=aiJITGffBEK?BZBqLuz? ziFDj(NOGc1FphINx-RC}!1~d{QEDFkRmr3wml#$Dk0e9)fk_XTB8H3A^*{|xd(ppx zJu8e%9;S}`Sh|NpwnzR~$2DM0n0`jEuO3FmH4@B5Ls18skAo2k6$qjBPaoLLS2IuV zzl*FJ(H6aIqg<8}mi10>_(14Oh0h{P*<3flz?2`Xx0qHV}-VLJ0I z%aui1D&s;IhQ2s@?JIkH>b3v? literal 0 HcmV?d00001 diff --git a/NOKIA_G/uk_orange.nol b/NOKIA_G/uk_orange.nol new file mode 100644 index 0000000000000000000000000000000000000000..6ec0521b948294ca3c094a77f88af5ed2fd5cd77 GIT binary patch literal 1154 zcmbu5OKyWO5Qd#?7d^vt4+NHU*(Oz`&_-%{0a`3TB{2e2lq>fXWoB#>9+9HNLiRlV z`TXPeZ6p@rPdtcMao1n|PQpm;!ByYF222Qw|rk4Q^PVCK``+-UJg4E6wFsb4E6ZqhFYx z+87v}{A{>eLZ=v{+94{Ccm}6cwr%p087$GX?h$R|2j@{X literal 0 HcmV?d00001 diff --git a/NOKIA_G/uk_vodafone.nol b/NOKIA_G/uk_vodafone.nol new file mode 100644 index 0000000000000000000000000000000000000000..69ab4c15e23605fd9b1414cafb1c43d1ae42efe0 GIT binary patch literal 1155 zcmd5%QA)!=5ZxZYdWAVanr1)auT~0;7OdcRv`Z3f-H-%Buk0z@ot;T1RiOxi3)y+| z-kUd@`*o%!>O)(HfPLAiyW0$dPX>y@OFE{-?%~q z*1(dA8rlXs=CLU`j(CHosdB>(qz9EB#S;{R>zp>K+>BYD;MdXdkiV08GX9{_b2-O_ zU@Bf;Hgd){>MwIB5d+;7f``X=K$I^CdC{?wNjSU}k4T~%RFHNA1!4`lpW>y20wa?C z3tZQx$vfN3GFw=4{&4J js(6c_?7I4DKJWWJehr@47Nz*b?jyL%w+5aMCovbF1vBfS literal 0 HcmV?d00001 diff --git a/NUM2TXT.PAS b/NUM2TXT.PAS new file mode 100644 index 0000000..296c2ad --- /dev/null +++ b/NUM2TXT.PAS @@ -0,0 +1,273 @@ +program Num2Txt; { Invented and programmed by Markus Birth } +uses Crt, Logo; + +label Ready, Again; + +const + one = 'eins'; + one1 = 'ein'; + one2 = 'eine'; + eleven = 'elf'; + two = 'zwei'; + twelve = 'zwlf'; + three = 'drei'; + four = 'vier'; + five = 'fnf'; + six = 'sechs'; + six1 = 'sech'; + seven = 'sieben'; + seven1 = 'sieb'; + eight = 'acht'; + nine = 'neun'; + zero = 'null'; + teen = 'zehn'; + twen = 'zwan'; + and1 = 'und'; + ty = 'zig'; + ty1 = 'ig'; + hundred = 'hundert'; + thousand = 'tausend'; + mill = 'mill'; + ion = 'ion'; + ion1 = 'ionen'; + iard = 'iarde'; + iard1 = 'iarden'; + minus = 'minus'; + point = 'komma'; + connector = ''; + language = 'GERMAN'; + +var Number: real; + NText: string; + Chosen: Char; + Mrd: real; + Mil: real; + Tau: real; + Hun: real; + +procedure Combi(Source: string); + begin + NText := NText + Source + connector; + end; + +procedure ZeichMal; + begin + GotoXY(1,7); + WriteLn(NText); + end; + +procedure ConvertHundred(dreier: real); + var H, Z, E, Z1: integer; + begin + H := Trunc(dreier/100); + Z := Trunc(dreier/10) - H*10; + E := Trunc(dreier) - Z*10 - H*100; + Z1 := E + Z*10; + case H of + 1: Combi(one1); + 2: Combi(two); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six); + 7: Combi(seven); + 8: Combi(eight); + 9: Combi(nine); + end; + if H<>0 then Combi(hundred); + + case Z1 of { 10, 11 oder 12 } + 10: Combi(teen); + 11: Combi(eleven); + 12: Combi(twelve); + end; + + if (Z=1) AND (E>2) then { Einser von 13-19 } + begin + case E of + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six1); + 7: Combi(seven1); + 8: Combi(eight); + 9: Combi(nine); + end; + Combi(teen); + end; + + if Z>1 then { Einser, Rest } + begin + case E of + 1: Combi(one1); + 2: Combi(two); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six); + 7: Combi(seven); + 8: Combi(eight); + 9: Combi(nine); + end; + end; + if (E<>0) AND (Z>1) then Combi(and1); + + case Z of { Zehner } + 2: Combi(twen); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six1); + 7: Combi(seven1); + 8: Combi(eight); + 9: Combi(nine); + end; + if (Z<>3) AND (Z>1) then Combi(ty); + if Z=3 then Combi(ty1); + + if Z=0 then { einstellige Zahlen } + begin + if E=1 then + begin + if (dreier=Hun) then Combi(one); + if dreier=Tau then Combi(one1); + if (dreier<>Hun) AND (dreier<>Tau) then Combi(one2); + end; + case E of + 2: Combi(two); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six); + 7: Combi(seven); + 8: Combi(eight); + 9: Combi(nine); + end; + end; + end; + +begin + ClrScr; + TextColor(15); { White } + WriteLn('Another fine program from'); + WriteLogo; + WriteLn; + TextColor(14); { Yellow } + WriteLn('-= Number2Text Converter =-'); + WriteLn; + TextColor(7); { LightGray } + WriteLn('Press any key to continue...'); + ReadKey; +Again: + NText := connector; + ClrScr; + TextColor(14); { Yellow } + TextBackground(1); { Blue } + Write(' -= Num2Text =- '); + TextColor(7); { LightGray } + TextBackground(0); { Black } + WriteLn(' written by RoboCop IND. of TRC Inc.'); + WriteLn; + TextColor(14); { Yellow } + Write('Enter a number: '); + TextColor(15); { White } + ReadLn(Number); + TextColor(14); { Yellow } + WriteLn('Beginning process using '+language+' language set ...'); + if Number<0 then + begin + Combi(minus); + end; + Number := Abs(Number); + if Number=0 then + begin + Combi(zero); + goto Ready; + end; + +ZeichMal; + +{ Milliarden } + Mrd := Int(Number / 1000000000); + if Mrd=1 then + begin + Combi(one2); + Combi(mill); + Combi(iard); + end; + if Mrd=2 then + begin + Combi(two); + Combi(mill); + Combi(iard1); + end; + +ZeichMal; + +{ Millionen } + Mil := Int(Number / 1000000) - Mrd*1000; + if Mil=1 then + begin + Combi(one2); + Combi(mill); + Combi(ion); + end; + if Mil>1 then + begin + ConvertHundred(Mil); + Combi(mill); + Combi(ion1); + end; + +ZeichMal; + +{ Tausend } + Tau := Int(Number / 1000) - Mil*1000 - Mrd*1000000; + ConvertHundred(Tau); + if Tau<>0 then Combi(thousand); + +ZeichMal; + +{ Hunderter } + Hun := Int(Number) - Tau*1000 - Mil*1000000 - Mrd*1000000000; + ConvertHundred(Hun); + +ZeichMal; + +Ready: + GotoXY(1,6); + WriteLn('Number converted to text with following result:'); + TextColor(15); { White } + WriteLn(NText); + WriteLn; + TextColor(14); { Yellow } + Write('Again (Y/N)? '); + Chosen := ReadKey; + if Chosen='y' then goto Again; + if Chosen='Y' then goto Again; + ClrScr; + TextColor(7); { LightGray } + WriteLn('Exiting...'); + WriteLn; + if Chosen='!' then + begin + WriteLn('Greetz are going out to:'); + TextColor(12); { LightRed } + Write('Mister X, '); + TextColor(10); { LightGreen } + Write('Fred Krger, '); + TextColor(11); { LightCyan } + Write('Calle vHH, '); + TextColor(14); { Yellow } + Write('Memphis, '); + TextColor(13); { LightMagenta } + Write('Scorpion '); + TextColor(15); { White } + WriteLn('and all others I forgot!'); + WriteLn; + TextColor(15+128); { White + Blink } + WriteLn('Go to the IRC irc.germany.net (Port 6667)! There you''ll find me.'); + WriteLn; + end; + TextColor(15); { White } +end. diff --git a/NUMB2TST.PAS b/NUMB2TST.PAS new file mode 100644 index 0000000..3e84ec7 --- /dev/null +++ b/NUMB2TST.PAS @@ -0,0 +1,25 @@ +uses numbers, Crt; + +var inu: longint; + hex: string; + y: integer; + +begin + repeat + WriteLn('==================='); + y := WhereY; + if (y=25) then y:=24; + Write('Enter number: '); + ReadLn(inu); + GotoXY(1,y); + ClrEol; + GotoXY(1,y); Write('d ',inu); + GotoXY(20,y); Write('h ',Dec2Hex(inu),' '); + GotoXY(40,y); WriteLn('b ',Dec2Bin(inu)); + until (inu=0); + { repeat + Write('Enter Hex-string: '); + ReadLn(hex); + WriteLn('Dec: ',Hex2Dec(hex)); + until (hex='q'); } +end. diff --git a/NUMB3TST.PAS b/NUMB3TST.PAS new file mode 100644 index 0000000..46e67ca --- /dev/null +++ b/NUMB3TST.PAS @@ -0,0 +1,16 @@ +uses numbers; + +var tmp: string; + tmp2: real; + +begin + + Write('Enter Floating Point Bin number: '); + ReadLn(tmp); + WriteLn('It''s: ',FPBin2Dec(tmp):0:10); +{ + Write('Enter FP decimal: '); + ReadLn(tmp2); + WriteLn('It''s: ',Dec2FPBin(tmp2)); +} +end. diff --git a/NUMBERS_.PAS b/NUMBERS_.PAS new file mode 100644 index 0000000..39e9e49 --- /dev/null +++ b/NUMBERS_.PAS @@ -0,0 +1,35 @@ +program Unit_Numbers_Test; + +uses Crt,Numbers; + +var n,z,fac: integer; + +begin + ClrScr; + WriteLn('-=+ Unit: Numbers - CheckOut +=-'); + WriteLn; + + WriteLn('Dec2Hex 254 Dec ==> Hex: ',Dec2Hex(254)); + + WriteLn('Hex2Dec F0 Hex ==> Dec: ',Hex2Dec('F0')); + + WriteLn('Bin2Dec 10101100 Bin ==> Dec: ',Bin2Dec('10101100')); + + Write('Shorten 525/365 Fraction : '); + Shorten(525,365,n,z,fac); + WriteLn(n,'/',z,' --- GGT:',fac); + + Write('AddFrac 6/8 + 4/7 Fraction : '); + AddFrac(6,8,4,7,n,z,false); + Write(n,'/',z,' ==> '); + AddFrac(6,8,4,7,n,z,true); + WriteLn(n,'/',z); + + Write('SubFrac 6/8 - 4/7 Fraction : '); + SubFrac(6,8,4,7,n,z,false); + Write(n,'/',z,' ==> '); + SubFrac(6,8,4,7,n,z,true); + WriteLn(n,'/',z); + + +end. \ No newline at end of file diff --git a/NUMB_TST.PAS b/NUMB_TST.PAS new file mode 100644 index 0000000..6e86868 --- /dev/null +++ b/NUMB_TST.PAS @@ -0,0 +1,13 @@ +uses Crt,Numbers; + +var zahl: longint; + +begin + ClrScr; + zahl := 1; + while zahl<>0 do begin + ReadLn(zahl); + GotoXY(1,WhereY-1); + WriteLn(zahl:0,': ',Dec2Bin(zahl)); + end; +end. diff --git a/PACMAN.PAS b/PACMAN.PAS new file mode 100644 index 0000000..27e6c96 --- /dev/null +++ b/PACMAN.PAS @@ -0,0 +1,99 @@ +program _PacMan_; + +uses Crt, Graph, BGIP; + +const rad=10; + pcol:byte=14; + +var xmax, ymax, xmed, ymed: word; + k: char; + angle,direct: word; + + +procedure GraphInit; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +procedure GraphOutit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +procedure PacMan(x,y,dir,a: word); +var tmp: string; + sa,ea: real; + x1,y1,x2,y2: word; + xm,ym: word; +begin + SetFillStyle(SolidFill,0); + SetColor(0); + Bar(xmed-rad,ymed-rad,xmed+rad,ymed+rad); + SetColor(pcol); + SetFillStyle(SolidFill,pcol); + Circle(x,y,rad); + FloodFill(x,y,pcol); + + SetColor(0); + SetFillStyle(SolidFill,0); + sa := (dir+a)/180*Pi; + ea := (dir-a)/180*Pi; + x1 := x+Trunc(Cos(sa)*(rad+1)); + y1 := y+Trunc(Sin(sa)*(rad+1)); + x2 := x+Trunc(Cos(ea)*(rad+1)); + y2 := y+Trunc(Sin(ea)*(rad+1)); + + MoveTo(x,y); + LineTo(x1,y1); + MoveTo(x,y); + LineTo(x2,y2); + + xm := (x1+x2+x) DIV 3; + ym := (y1+y2+y) DIV 3; + + SetColor(0); + SetFillStyle(SolidFill,0); + FloodFill(xm,ym,0); + + (* { Statistics following } + Bar(0,0,100,100); + SetColor(15); + Str(a:3, tmp); + OutTextXY(5,5,'Angle: '+tmp); + Str(dir:3, tmp); + OutTextXY(5,15,'Direc: '+tmp); *) +end; + +begin + GraphInit; + angle := 20; + direct := 270; + pcol := 15; + SetTextJustify(CenterText, CenterText); + OutTextXY(320,10,'Sieht aus wie eine ''Spalt N'', was?'); + repeat + PacMan(xmed,ymed,direct,angle); + k := ReadKey; + pcol := 14; + SetColor(15); + OutTextXY(320,20,'Ist aber der allbeliebte PACMAN!!'); + case k of + '+': if (angle<360) then Inc(angle,2) else angle:=0; + '-': if (angle>0) then Dec(angle,2) else angle:=359; + '*': if (direct<360) then Inc(direct,2) else direct:=0; + '/': if (direct>0) then Dec(direct,2) else direct:=359; + end; + until k=#27; + GraphOutit; +end. \ No newline at end of file diff --git a/PKURS/DREIEC01.PAS b/PKURS/DREIEC01.PAS new file mode 100644 index 0000000..10b48fc --- /dev/null +++ b/PKURS/DREIEC01.PAS @@ -0,0 +1,68 @@ +program Dreieck; + +uses Crt; +var X1,X2,X3,Y1,Y2,Y3: real; + Flaeche, LAB, LBC, LCA, SAB, SBC, SCA, MABx, MABy, MBCx, MBCy, MCAx, MCAy: real; + +function Mittelpunkt(P1,P2: real): real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(X1,X2,Y1,Y2: real): real; +begin + Laenge := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); +end; + + +function SHB(X,MX,Y,MY: real): real; +begin + SHB := Sqrt(Sqr(X-MX)+Sqr(Y-MY)); +end; + +begin + WriteLn('-= Dreiecksberechnung =-'); + WriteLn; + Write('Punkt A (x): '); ReadLn(X1); + Write('Punkt A (y): '); ReadLn(Y1); + Write('Punkt B (x): '); ReadLn(X2); + Write('Punkt B (y): '); ReadLn(Y2); + Write('Punkt C (x): '); ReadLn(X3); + Write('Punkt C (y): '); ReadLn(Y3); + + Flaeche := 0.5*Abs((Y1*(X3-X2)+Y2*(X1-X3)+Y3*(X2-X1))); + + WriteLn('####### Jetzt beginnt die Ausgabe #######'); + Write('Die Flche des 3ecks ist ',Flaeche:5:3); + + if Flaeche = 0 then WriteLn(' --- kein Dreieck! Punkte sind kollinear') else WriteLn; + + LAB := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); + LBC := Sqrt(Sqr(X3-X2)+Sqr(Y3-Y2)); + LCA := Sqrt(Sqr(X1-X3)+Sqr(Y1-Y3)); + WriteLn('Lnge Strecke AB: ',LAB:4:2); + WriteLn('Lnge Strecke BC: ',LBC:4:2); + WriteLn('Lnge Strecke CA: ',LCA:4:2); + + MABx := (X1+X2)/2; + MABy := (Y1+Y2)/2; + MBCx := (X2+X3)/2; + MBCy := (Y2+Y3)/2; + MCAx := (X3+X1)/2; + MCAy := (Y3+Y1)/2; + WriteLn('Mittelpunkt AB: ',MABx:3:1,'|',MABy:3:1); + WriteLn('Mittelpunkt BC: ',MBCx:3:1,'|',MBCy:3:1); + WriteLn('Mittelpunkt CA: ',MCAx:3:1,'|',MCAy:3:1); + + SAB := Sqrt(Sqr(X1-MBCx)+Sqr(Y1-MBCy)); + SBC := Sqrt(Sqr(X2-MCAx)+Sqr(Y2-MCAy)); + SCA := Sqrt(Sqr(X3-MABx)+Sqr(Y3-MABy)); + WriteLn('Seitenhalbierende AB: ',SAB:5:1); + WriteLn('Seitenhalbierende BC: ',SBC:5:1); + WriteLn('Seitenhalbierende CA: ',SCA:5:1); + + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + + repeat until Keypressed; +end. \ No newline at end of file diff --git a/PKURS/DREIEC02.PAS b/PKURS/DREIEC02.PAS new file mode 100644 index 0000000..b491819 --- /dev/null +++ b/PKURS/DREIEC02.PAS @@ -0,0 +1,73 @@ +program Dreieck; + +uses Crt; +var X1,X2,X3,Y1,Y2,Y3: real; + Flaeche, LAB, LBC, LCA, SAB, SBC, SCA, MABx, MABy, MBCx, MBCy, MCAx, MCAy: real; + + +function Mittelpunkt(P1,P2: real): real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(X1,Y1,X2,Y2: real): real; +begin + Laenge := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); +end; + +function SHB(X,MX,Y,MY: real): real; +begin + SHB := Sqrt(Sqr(X-MX)+Sqr(Y-MY)); +end; + +function A(X1,Y1,X2,Y2,X3,Y3: real): real; +begin + A := 0.5*Abs((Y1*(X3-X2)+Y2*(X1-X3)+Y3*(X2-X1))); +end; + +begin + WriteLn('-= Dreiecksberechnung =-'); + WriteLn; + Write('Punkt A (x): '); ReadLn(X1); + Write('Punkt A (y): '); ReadLn(Y1); + Write('Punkt B (x): '); ReadLn(X2); + Write('Punkt B (y): '); ReadLn(Y2); + Write('Punkt C (x): '); ReadLn(X3); + Write('Punkt C (y): '); ReadLn(Y3); + + Flaeche := A(X1,Y1,X2,Y2,X3,Y3); + + WriteLn('####### Jetzt beginnt die Ausgabe #######'); + Write('Die Flche des 3ecks ist ',Flaeche:5:3); + + if Flaeche = 0 then WriteLn(' --- kein Dreieck! Punkte sind kollinear') else WriteLn; + + LAB := Laenge(X1,Y1,X2,Y2); + LBC := Laenge(X2,Y2,X3,Y3); + LCA := Laenge(X3,Y3,X1,Y1); + WriteLn('Lnge Strecke AB: ',LAB:4:2); + WriteLn('Lnge Strecke BC: ',LBC:4:2); + WriteLn('Lnge Strecke CA: ',LCA:4:2); + + MABx := Mittelpunkt(X1,X2); + MABy := Mittelpunkt(Y1,Y2); + MBCx := Mittelpunkt(X2,X3); + MBCy := Mittelpunkt(Y2,Y3); + MCAx := Mittelpunkt(X3,X1); + MCAy := Mittelpunkt(Y3,Y1); + WriteLn('Mittelpunkt AB: ',MABx:3:1,'|',MABy:3:1); + WriteLn('Mittelpunkt BC: ',MBCx:3:1,'|',MBCy:3:1); + WriteLn('Mittelpunkt CA: ',MCAx:3:1,'|',MCAy:3:1); + + SAB := SHB(X1,MBCx,Y1,MBCy); + SBC := SHB(X2,MCAx,Y2,MCAy); + SCA := SHB(X3,MABx,Y3,MABy); + WriteLn('Seitenhalbierende AB: ',SAB:5:1); + WriteLn('Seitenhalbierende BC: ',SBC:5:1); + WriteLn('Seitenhalbierende CA: ',SCA:5:1); + + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + + repeat until Keypressed; +end. \ No newline at end of file diff --git a/PKURS/DREIEC03.PAS b/PKURS/DREIEC03.PAS new file mode 100644 index 0000000..8a99f5a --- /dev/null +++ b/PKURS/DREIEC03.PAS @@ -0,0 +1,98 @@ +program Dreieck; { Programmname } + +uses Crt; { Crt ist fr Textausgabe und anderes Zeugs } + +type Punkt=record { Der 1. Record fr die einzelnen Punkte } + x,y: real; { Record enthlt x und y } + end; + Mittelp=record { 2. Record fr Mittelpunkte } + x,y: real; { und nochmal x und y } + end; + +var P: array[0..2] of Punkt; { Arrays fr die Records } + M: array[0..2] of Mittelp; + Flaeche, LAB, LBC, LCA, SAB, SBC, SCA: real; { misc. Vars } + i: integer; { Das i fr FOR-Schleifen } + MPS: string; { Mittelpunktbeschreibung } + + +function Mittelpunkt(P1,P2: real): real; { Berechnet das arithmetische Mittel aus 2 Zahlen } +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(X1,Y1,X2,Y2: real): real; { Berechnet Lnge 2er Koordinatenpaare } +begin + Laenge := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); +end; + +function SHB(X,MX,Y,MY: real): real; { Berechnet Seitenhalbierende aus 1 Punkt und 1 Mittelpunkt } +begin + SHB := Sqrt(Sqr(X-MX)+Sqr(Y-MY)); +end; + +function A(X1,Y1,X2,Y2,X3,Y3: real): real; { Berechnet Flche eines 3ecks beschrieben durch 3 KO-Paare } +begin + A := 0.5*Abs((Y1*(X3-X2)+Y2*(X1-X3)+Y3*(X2-X1))); +end; + +procedure GetPoint(rec: integer; ot: string); { Krallt sich die Eingaben } + begin + Write('Punkt '+ot+' (x): '); + ReadLn(P[rec].x); + Write('Punkt '+ot+' (y): '); + ReadLn(P[rec].y); + end; + +begin + ClrScr; { Erstmal Platz schaffen } + WriteLn('-= Dreiecksberechnung =-'); + WriteLn; + GetPoint(0, 'A'); { Krall Dir x und y von Punkt A } + GetPoint(1, 'B'); { und jetzt hol Dir B } + GetPoint(2, 'C'); { und C, aber mehr kriegst Du nicht aus mir heraus } + + Flaeche := A(P[0].x,P[0].y,P[1].x,P[1].y,P[2].x,P[2].y); + + WriteLn('####### Jetzt beginnt die Ausgabe #######'); + Write('Die Flche des 3ecks ist ',Flaeche:5:3); + + if Flaeche = 0 then { Flche = 0? Dann kein Dreieck! } + WriteLn(' --- kein Dreieck! Punkte sind kollinear') + else + WriteLn; + + LAB := Laenge(P[0].x,P[0].y,P[1].x,P[1].y); + LBC := Laenge(P[1].x,P[1].y,P[2].x,P[2].y); + LCA := Laenge(P[2].x,P[2].y,P[0].x,P[0].y); + WriteLn('Lnge Strecke AB: ',LAB:4:2); + WriteLn('Lnge Strecke BC: ',LBC:4:2); + WriteLn('Lnge Strecke CA: ',LCA:4:2); + + for i:=0 to 1 do begin + M[i].x := Mittelpunkt(P[i].x,P[i+1].x); + M[i].y := Mittelpunkt(P[i].y,P[i+1].x); + end; + M[2].x := Mittelpunkt(P[2].x,P[0].x); + M[2].y := Mittelpunkt(P[2].y,P[0].y); + + for i:=0 to 2 do begin + if i=0 then MPS := 'AB'; + if i=1 then MPS := 'BC'; + if i=2 then MPS := 'CA'; + WriteLn('Mittelpunkt '+MPS+': ',M[i].x:3:1,'|',M[i].y:3:1); + end; + + SAB := SHB(P[0].x,M[1].x,P[0].y,M[1].y); + SBC := SHB(P[1].x,M[2].x,P[1].y,M[2].y); + SCA := SHB(P[2].x,M[0].x,P[2].y,M[0].y); + + WriteLn('Seitenhalbierende AB: ',SAB:5:1); + WriteLn('Seitenhalbierende BC: ',SBC:5:1); + WriteLn('Seitenhalbierende CA: ',SCA:5:1); + + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + + ReadKey; +end. \ No newline at end of file diff --git a/PKURS/TEST01.PAS b/PKURS/TEST01.PAS new file mode 100644 index 0000000..553f1a1 --- /dev/null +++ b/PKURS/TEST01.PAS @@ -0,0 +1,5 @@ +program Test; +uses Crt; +begin + ReadLn; +end. \ No newline at end of file diff --git a/PKURS/TEST02.PAS b/PKURS/TEST02.PAS new file mode 100644 index 0000000..0214f12 --- /dev/null +++ b/PKURS/TEST02.PAS @@ -0,0 +1,9 @@ +program Test; + +uses Crt; +var t:string; + +begin + ReadLn(t); + WriteLn('Ausgabe: '+t); +end. \ No newline at end of file diff --git a/PPDIR/PPDIR.PAS b/PPDIR/PPDIR.PAS new file mode 100644 index 0000000..c301167 --- /dev/null +++ b/PPDIR/PPDIR.PAS @@ -0,0 +1,236 @@ +program PushPopDir; + +{$M 8192,0,0} + +uses Dos; + +const TmpFile='dirmem.$$$'; + +var where: string; + what: string; + debug: boolean; + +function UC(str: string): string; +var i: integer; + tmp: string; +begin + tmp := ''; + for i:=1 to Length(str) do begin + tmp := tmp + UpCase(str[i]); + end; + UC := tmp; +end; + +function Contains(str, what: string): boolean; +var i,sl: integer; +begin + sl := Length(what); + what := UC(what); + for i:=Length(str) downto 1 do begin + if UC(Copy(str,i,sl))=what then begin + if debug then WriteLn(' Contains result: ''',what,''' in ParamStr(0): true'); + Contains := true; + Exit; + end; + end; + if debug then WriteLn(' Contains result: ''',what,''' in ParamStr(0): false'); + Contains := false; +end; + +function GetTempFile: string; +var td: string; +begin + td := GetEnv('TEMP'); + if td='' then td := GetEnv('TMP'); + if td='' then td := 'C:\'; + if Copy(td,Length(td)-1,1)='\' then td := td+TmpFile else td := td+'\'+TmpFile; + if debug then WriteLn(' GetTempFile result: ',td); + GetTempFile := td; +end; + +procedure PopDir; +var tmp: text; + dir: string; +begin + dir := ''; + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Resetting tmp'); + Reset(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('No directory in memory!'); + Halt; + end; + {$I+} + if debug then WriteLn(' Read pushed dir, if NOT Eof(tmp)'); + if NOT Eof(tmp) then ReadLn(tmp,dir); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' Erasing tmp'); + Erase(tmp); + if debug then WriteLn(' Result check'); + if dir='' then begin + WriteLn('No directory in memory! [2]'); + Halt; + end; + if debug then WriteLn(' Changing to directory ''',dir,''); + ChDir(dir); + WriteLn('Changed directory to ',dir,'.'); + Halt; +end; + +procedure PushDir; +var tmp: text; +begin + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Rewriting tmp'); + Rewrite(tmp); + if debug then WriteLn(' Writing ''',where,''' to tmp'); + WriteLn(tmp,where); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('There was an error!'); + Halt; + end; + {$I+} + WriteLn('Pushed current directory into memory.'); + Halt; +end; + +procedure SwapDir; +var tmp: text; + dir: string; +begin + dir := ''; + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Resetting tmp'); + Reset(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('No directory in memory!'); + Halt; + end; + {$I+} + if debug then WriteLn(' Read pushed dir, if NOT Eof(tmp)'); + if NOT Eof(tmp) then ReadLn(tmp,dir); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' Erasing tmp'); + Erase(tmp); + if debug then WriteLn(' Result check'); + if dir='' then begin + WriteLn('No directory in memory! [2]'); + Halt; + end; + if debug then WriteLn(' Changing to directory ''',dir,''); + ChDir(dir); + {$I-} + if debug then WriteLn(' Rewriting tmp'); + Rewrite(tmp); + if debug then WriteLn(' Writing ''',where,''' to tmp'); + WriteLn(tmp,where); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('There was an error!'); + Halt; + end; + {$I+} + WriteLn('Swapped directory with those in memory.'); +end; + +procedure ShowDir; +var tmp: text; + dir: string; +begin + dir := ''; + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Resetting tmp'); + Reset(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('No directory in memory!'); + Halt; + end; + if debug then WriteLn(' Read pushed dir, if NOT Eof(tmp)'); + if NOT Eof(tmp) then ReadLn(tmp,dir); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if dir='' then begin + if debug then WriteLn(' No valid dir in mem ==> Erasing tmp'); + Erase(tmp); + WriteLn('No directory in memory! [2]'); + Halt; + end; + WriteLn('Pushed directory: ',dir); + Halt; +end; + +procedure CreatePackage; +var tmp: text; +begin + if debug then WriteLn(' Assigning $$_cp_$$.bat to tmp'); + Assign(tmp,'$$_cp_$$.bat'); + {$I-} + if debug then WriteLn(' Rewriting tmp'); + Rewrite(tmp); + if debug then WriteLn(' Writing commands to tmp'); + WriteLn(tmp,'@echo off'); + WriteLn(tmp,'ECHO Building package of %1 ...'); + WriteLn(tmp,'DEL popd.exe >NUL'); + WriteLn(tmp,'DEL pushd.exe >NUL'); + WriteLn(tmp,'DEL swapd.exe >NUL'); + WriteLn(tmp,'COPY %1 popd.exe >NUL'); + WriteLn(tmp,'COPY %1 pushd.exe >NUL'); + WriteLn(tmp,'COPY %1 swapd.exe >NUL'); + WriteLn(tmp,'DEL %1 >NUL'); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('There was an error! Could not create package. Make sure, that there is no'); + WriteLn('file named $$_cp_$$.bat in this directory and try again.'); + Halt; + end; + {$I+} + if debug then WriteLn(' Swapping Vectors out'); + SwapVectors; + if debug then WriteLn(' Execing anti-packager'); + Exec(GetEnv('COMSPEC'),'/C $$_cp_$$.bat '+ParamStr(0)); + if debug then WriteLn(' Swapping Vectors in'); + SwapVectors; + if debug then WriteLn(' Checking DOSError'); + if DOSError<>0 then begin + WriteLn('There was an error during the building of the package. Make sure your environ-'); + WriteLn('ment variable COMSPEC points to your command-interpreter.'); + Halt; + end; + if debug then WriteLn(' Erasing tmp'); + Erase(tmp); + WriteLn; + WriteLn('Now you''re ready to use PushPopDir. Read the PPDIR.TXT for further instructions.'); + Halt; +end; + +begin + debug := false; + GetDir(0,where); + what := ParamStr(0); + if ((ParamStr(1)<>'') AND (ParamStr(1)='debug')) then debug:=true; + if (((NOT debug) AND (ParamCount>0)) OR ((debug) AND (ParamCount>1))) then ShowDir; + if Contains(what,'popd') then PopDir; + if Contains(what,'pushd') then PushDir; + if Contains(what,'swapd') then SwapDir; + CreatePackage; +end. \ No newline at end of file diff --git a/PPDIR/PPDIR.TXT b/PPDIR/PPDIR.TXT new file mode 100644 index 0000000..b653506 --- /dev/null +++ b/PPDIR/PPDIR.TXT @@ -0,0 +1,31 @@ +PushPopDir - an add-on for the command line written by Markus Birth +------------------------------------------------------------------------------- +(c)1998 by Markus Birth + +To install PPDir, just copy the executable PPDIR.EXE to a directory which is +in your path and run it there. It will extract itself into 3 parts: + PUSHD.EXE + POPD.EXE +and SWAPD.EXE + +PUSHD is used to save the current directory into the temporary buffer. The + buffer-file is stored in the TEMP-directory so that it survives + system reboots. + +POPD is used to change to the directory which is stored in the buffer. The + buffer will be deleted after the chdir succeeds. + +SWAPD will save the current directory into the buffer and then switch to + the directory which was in the buffer before. If you run SWAPD again + you will have the same state as before the first run. + + +To see what's in the buffer, just type any parameter after any command. If you +use 'debug' as parameter (without quotation marks) you will get into the +debug-mode which will show things happening during the performance of the +commands. + + +Now have your phun! +------------------------------------------------------------------------------- +Bug report to M.Birth@ThePentagon.com diff --git a/PZIP.PAS b/PZIP.PAS new file mode 100644 index 0000000..e12c30e --- /dev/null +++ b/PZIP.PAS @@ -0,0 +1,45 @@ +program pZipCompressor; + +uses Crt, Dos; + +var infile, outfile: file; + insize, outsize: longint; + infname, outfname: string; + +procedure Init; +begin + infname := ParamStr(1); + Assign(infile,infname); + Reset(infile); + insize := FileSize(infile); + Close(infile); +end; + +procedure ExecPacker; +begin + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C pack_.bat '+infname); + SwapVectors; +end; + +procedure After; +begin + Assign(outfile,'!'+infname); + Reset(outfile); + outsize := FileSize(outfile); + Close(outfile); +end; + +procedure Out; +begin + WriteLn('Statistics'); + WriteLn('Original size: ',insize,' Bytes'); + WriteLn('Packed size: ',outsize,' Bytes'); +end; + +begin + Init; + ExecPacker; + After; + Out; +end. \ No newline at end of file diff --git a/RANDTEST.PAS b/RANDTEST.PAS new file mode 100644 index 0000000..6b237e4 --- /dev/null +++ b/RANDTEST.PAS @@ -0,0 +1,72 @@ +program Randomize_TEST; + +uses Crt; + +const RSInit=255; + +var i,j: integer; + bla: string; + +function AddOrd(var x: char; wert: byte): char; +var y: integer; +begin + y := Ord(x); + y := y + wert; + if y>255 then y:=y-255; + AddOrd := Chr(y); +end; + +function SubOrd(var x: char; wert: byte): char; +var y: integer; +begin + y := Ord(x); + y := y - wert; + if y<0 then y:=y+255; + SubOrd := Chr(y); +end; + + +procedure Code(var x: string); +var i: integer; + fin: string; +begin + RandSeed:=RSInit; + fin := ''; + for i:=1 to Length(x) do begin + fin := fin + AddOrd(x[i],Random(256)); + end; + x := fin; +end; + +procedure DeCode(var x: string); +var i: integer; + fin: string; +begin + RandSeed:=RSInit; + fin := ''; + for i:=1 to Length(x) do begin + fin := fin + SubOrd(x[i],Random(256)); + end; + x := fin; +end; + + +begin + ClrScr; + RandSeed := RSInit; + for j:=0 to 7 do begin + { RandSeed := 200; { Randomize weist RandSeed einen Wert abhngig } + for i:=1 to 15 do begin { von der Systemzeit zu. Durch manuelle Zuweisung erhlt } + GotoXY(j*10+1,i); { man IMMER die gleichen "Zufallszahlen". Dies ist gut } + WriteLn(Random(256)); { fr z.B. Verschlsselungsverfahren. } + end; + end; + Write('Gib Deine letzten Worte ein: '); + ReadLn(bla); + WriteLn; + WriteLn('Original: ',bla); + Code(bla); + WriteLn('Codiert : ',bla); + DeCode(bla); + WriteLn('Decoded : ',bla); +end. diff --git a/RANGEBOT.OLD b/RANGEBOT.OLD new file mode 100644 index 0000000..a1213aa --- /dev/null +++ b/RANGEBOT.OLD @@ -0,0 +1,204 @@ +{$Q-} {$R-} + +{ +This is the story of a nice little robot called Ranger, who has a nice +little malfunction. The malfunction makes him moving randomly around. Because +of his malfunction he looses parts - and he must not go on them because he +would stumble and fall down (and die). He's allowed to make a max. of ssx +steps right/left and ssy steps up/down. There is a force field from 1 to usex +in x-dir and from 1 to usey in y-dir. He must not go through it (because he +will get toasted). + + Good luck, Ranger! +} + +program Ranger; { Ranger joined the game } + +uses Crt,Dos; { Dos only needed for time stats } + +const ssx=2; { maximum steps in x-dir } + ssy=2; { maximum steps in y-dir } + inact=8; { color for inactive sign } + inacts: string = #01; { string for inactive } + act=14; { color for active sign } + acts: string = #02; { string for bot } + bg=0; { bg color } + del=100; { delay between jumps } + usex=80; { how many fields to use x } + usey=49; { how many fields to use y } + +var x,y: byte; { Target coords } + ox,oy: byte; { old Target coords } + sx,sy: shortint; { how many steps } + dsx,dsy: byte; { double sx/sy 'cause he can go left AND right } + GSCt: integer; { Counter for calls of GetStep } + pGSCt: integer; { Peak of GSCt } + ABORT: boolean; { if Ranger can't move then restart } + deads: integer; { mistakes(deads) of Ranger } + sh,sm,ss,shn: word; { Prog-Starttime } + th,tm,ts,thn: word; { Ranger-Starttime } + ch,cm,cs,chn: word; { Current time } + uh,um,us,uhn: shortint; { Prog UpTime } + lh,lm,ls,lhn: shortint; { (current) Ranger's UpTime } + ph,pm,ps: shortint; { Peak of lh,lm,ls } + a: array[0..usex, 0..usey] of boolean; { used to control whether a field has already been used } + +procedure Initialize; { Ranger - get ready!! } +begin + Randomize; { some new Random-values? } + TextMode(3+256); { well, let's switch to 80x50 } + TextBackground(bg); { choose color bg - it's nicer } + ClrScr; { Put all those shit from my screen! } + GetTime(sh,sm,ss,shn); { Program: What time is it?? - Computer: well, let me look at my clock } + GetTime(th,tm,ts,thn); { Ranger: What time is it?? - Computer: don't get on my nerves } + ox := usex div 2; { well, well, well.... } + oy := usey div 2; { .... let's start in the middle } + dsx := ssx*2+1; { how many steps? .... } + dsy := ssy*2+1; { .... hmmm.... what do you think? } +end; + +procedure EndSeq; { Everything has an end! } +begin + TextMode(3); { Back to DOS-Mode } + TextBackground(0); { this shitty black } + TextColor(7); { combinated with those stupid gray } + ClrScr; { just real fuck! } +end; + +function LZ(wo: real; c: integer): String; { Leading Zero maker } +var st: String; + i: integer; +begin + Str(wo:0:0,st); + for i:=1 to c-Length(st) do begin + st := '0' + st; + end; + LZ := st; +end; + +procedure WriteStatus; { Calculates and writes the Stats } +begin + GotoXY(1,50); + GetTime(ch,cm,cs,chn); + uh := ch-sh; + um := cm-sm; + us := cs-ss; + if um<0 then begin + um := um+60; + uh := uh-1; + end; + if us<0 then begin + us := us+60; + um := um-1; + end; + + lh := ch-th; + lm := cm-tm; + ls := cs-ts; + if lm<0 then begin + lm := lm+60; + lh := lh-1; + end; + if ls<0 then begin + ls := ls+60; + lm := lm-1; + end; + TextColor(8); + Write('R:',LZ(GSCt,3),'-P:',LZ(pGSCt,3),' - '); + Write('Kills:',LZ(deads,4),' - '); + Write('CurBot:',LZ(lh,2),':',LZ(lm,2),'.',LZ(ls,2),' - '); + Write('Oldest:'); + if ph+pm+ps<>0 then Write(LZ(ph,2),':',LZ(pm,2),'.',LZ(ps,2),' - ') else Write('--:--.-- - '); + Write('UpTime: ',LZ(uh,2),':',LZ(um,2),'.',LZ(us,2)); +end; + +procedure CalcNewPos; { Where do you want to go today? } +begin + if ox+sx>usex+1-Length(acts) then x:=usex+1-Length(acts); + if ox+sx<1 then x:=1; + if ((ox+sx>0) AND (ox+sxusey-1 then y:=usey-1; + if oy+sy<1 then y:=1; + if ((oy+sy>0) AND (oy+sy199 then begin { Well, I give you 199 tries per step } + ABORT := True; { to make the Randomizer find some } + GSCt := 0; { GOOD values to move to. } + Exit; + end; + CalcNewPos; { Let's see where we would land... } + Delay(del); { Wait a sec....not so fast } + if a[x,y] then begin + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(act); + if oy>1 then Write('?') else Write(''); + GetStep; { Already gone there? } + end; + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(inact); + if oy>1 then begin + if a[ox,oy-1] then Write(inacts) else Write(' '); + end else begin + if a[ox,oy+1] then Write(inacts) else Write(' '); + end; + if GSCt>pGSCt then pGSCt:=GSCt; { a new HIGHSCORE? } + GSCt := 0; +end; + +procedure WriteNewPos; { Brings Ranger to the new position } +var c: integer; +begin + GotoXY(Trunc(ox),Trunc(oy)); + TextColor(inact); + for c:=1 to Length(acts) div Length(inacts) do Write(inacts); { write even chars of inactive over active } + Write(Copy(inacts,1,Length(acts) mod Length(inacts))); { if there's something missing, write another char } + GotoXY(x,y); + a[x,y]:=true; + TextColor(act); + Write(acts); + ox := x; + oy := y; +end; + +procedure ReRun; { Died? Well, you have unlimited credits! hehe } +begin + for x:=1 to usex do begin + for y:=1 to usey do begin + a[x,y]:=false; + end; + end; + ClrScr; + ox := usex div 2; + oy := usey div 2; + dsx := ssx*2+1; + dsy := ssy*2+1; + ABORT := false; { ABORT complete - we're here. that's important } + GetTime(th,tm,ts,thn); { Ranger: What time is it? } + Inc(Deads); { Uh oh.... } + if lh*3600+lm*60+ls>ph*3600+pm*60+ps then begin { a new HIGHSCORE?? } + ph := lh; + pm := lm; + ps := ls; + end; +end; + +begin + Initialize; { Let's go .... } + repeat { Yeah, unlimited credits... } + GetStep; { Gimme some numbers... } + CalcNewPos; { Where would we land? } + WriteNewPos; { Okay, let's go there } + Randomize; { Hmm...let's get new numbers } + if ABORT then ReRun; { No more space to move to? } + until keypressed; { Hey, wanna quit? } + EndSeq; { Okay, let's restore the old shit } +end. { Bye! } \ No newline at end of file diff --git a/RANGEBOT.PAS b/RANGEBOT.PAS new file mode 100644 index 0000000..3f25de0 --- /dev/null +++ b/RANGEBOT.PAS @@ -0,0 +1,210 @@ +{$Q-} {$R-} + +{ +This is the story of a nice little robot called Ranger, who has a nice +little malfunction. The malfunction makes him moving randomly around. Because +of his malfunction he looses parts - and he must not go on them because he +would stumble and fall down (and die). He's allowed to make a max. of ssx +steps right/left and ssy steps up/down. There is a force field from 1 to usex +in x-dir and from 1 to usey in y-dir. He must not go through it (because he +will get toasted). + + Good luck, Ranger! +} + +program Ranger; { Ranger joined the game } + +uses Crt,Dos; { Dos only needed for time stats } + +const ssx=2; { maximum steps in x-dir } + ssy=2; { maximum steps in y-dir } + inact=8; { color for inactive sign } + inacts: string = #01; { string for inactive } + act=14; { color for active sign } + acts: string = #02; { string for bot } + bg=0; { bg color } + del=10; { delay between jumps } + usex=80; { how many fields to use x } + usey=49; { how many fields to use y } + +var x,y: byte; { Target coords } + ox,oy: byte; { old Target coords } + sx,sy: shortint; { how many steps } + dsx,dsy: byte; { double sx/sy 'cause he can go left AND right } + GSCt: integer; { Counter for calls of GetStep } + pGSCt: integer; { Peak of GSCt } + ABORT: boolean; { if Ranger can't move then restart } + deads: integer; { mistakes(deads) of Ranger } + rc: integer; + sh,sm,ss,shn: word; { Prog-Starttime } + th,tm,ts,thn: word; { Ranger-Starttime } + ch,cm,cs,chn: word; { Current time } + uh,um,us,uhn: shortint; { Prog UpTime } + lh,lm,ls,lhn: shortint; { (current) Ranger's UpTime } + ph,pm,ps: shortint; { Peak of lh,lm,ls } + a: array[0..usex, 0..usey] of boolean; { used to control whether a field has already been used } + +procedure Initialize; { Ranger - get ready!! } +begin + Randomize; { some new Random-values? } + rc := 0; + TextMode(3+256); { well, let's switch to 80x50 } + TextBackground(bg); { choose color bg - it's nicer } + ClrScr; { Put all those shit from my screen! } + GetTime(sh,sm,ss,shn); { Program: What time is it?? - Computer: well, let me look at my clock } + GetTime(th,tm,ts,thn); { Ranger: What time is it?? - Computer: don't get on my nerves } + ox := usex div 2; { well, well, well.... } + oy := usey div 2; { .... let's start in the middle } + dsx := ssx*2+1; { how many steps? .... } + dsy := ssy*2+1; { .... hmmm.... what do you think? } +end; + +procedure EndSeq; { Everything has an end! } +begin + TextMode(3); { Back to DOS-Mode } + TextBackground(0); { this shitty black } + TextColor(7); { combinated with those stupid gray } + ClrScr; { just real fuck! } +end; + +function LZ(wo: real; c: integer): String; { Leading Zero maker } +var st: String; + i: integer; +begin + Str(wo:0:0,st); + for i:=1 to c-Length(st) do begin + st := '0' + st; + end; + LZ := st; +end; + +procedure WriteStatus; { Calculates and writes the Stats } +begin + GotoXY(1,50); + GetTime(ch,cm,cs,chn); + uh := ch-sh; + um := cm-sm; + us := cs-ss; + if um<0 then begin + um := um+60; + uh := uh-1; + end; + if us<0 then begin + us := us+60; + um := um-1; + end; + + lh := ch-th; + lm := cm-tm; + ls := cs-ts; + if lm<0 then begin + lm := lm+60; + lh := lh-1; + end; + if ls<0 then begin + ls := ls+60; + lm := lm-1; + end; + TextColor(8); + Write('R:',LZ(GSCt,3),'-P:',LZ(pGSCt,3),' - '); + Write('Kills:',LZ(deads,4),' - '); + Write('CurBot:',LZ(lh,2),':',LZ(lm,2),'.',LZ(ls,2),' - '); + Write('Oldest:'); + if ph+pm+ps<>0 then Write(LZ(ph,2),':',LZ(pm,2),'.',LZ(ps,2),' - ') else Write('--:--.-- - '); + Write('UpTime: ',LZ(uh,2),':',LZ(um,2),'.',LZ(us,2)); +end; + +procedure CalcNewPos; { Where do you want to go today? } +begin + if ox+sx>usex+1-Length(acts) then x:=usex+1-Length(acts); + if ox+sx<1 then x:=1; + if ((ox+sx>0) AND (ox+sxusey-1 then y:=usey-1; + if oy+sy<1 then y:=1; + if ((oy+sy>0) AND (oy+sy199 then begin { Well, I give you 199 tries per step } + ABORT := True; { to make the Randomizer find some } + GSCt := 0; { GOOD values to move to. } + Exit; + end; + CalcNewPos; { Let's see where we would land... } + Delay(del); { Wait a sec....not so fast } + if a[x,y] then begin + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(act); + if oy>1 then Write('?') else Write(''); + GetStep; { Already gone there? } + end; + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(inact); + if oy>1 then begin + if a[ox,oy-1] then Write(inacts) else Write(' '); + end else begin + if a[ox,oy+1] then Write(inacts) else Write(' '); + end; + if GSCt>pGSCt then pGSCt:=GSCt; { a new HIGHSCORE? } + GSCt := 0; +end; + +procedure WriteNewPos; { Brings Ranger to the new position } +var c: integer; +begin + GotoXY(Trunc(ox),Trunc(oy)); + TextColor(inact); + for c:=1 to Length(acts) div Length(inacts) do Write(inacts); { write even chars of inactive over active } + Write(Copy(inacts,1,Length(acts) mod Length(inacts))); { if there's something missing, write another char } + GotoXY(x,y); + a[x,y]:=true; + TextColor(act); + Write(acts); + ox := x; + oy := y; +end; + +procedure ReRun; { Died? Well, you have unlimited credits! hehe } +begin + for x:=1 to usex do begin + for y:=1 to usey do begin + a[x,y]:=false; + end; + end; + ClrScr; + ox := usex div 2; + oy := usey div 2; + dsx := ssx*2+1; + dsy := ssy*2+1; + ABORT := false; { ABORT complete - we're here. that's important } + GetTime(th,tm,ts,thn); { Ranger: What time is it? } + Inc(Deads); { Uh oh.... } + if lh*3600+lm*60+ls>ph*3600+pm*60+ps then begin { a new HIGHSCORE?? } + ph := lh; + pm := lm; + ps := ls; + end; +end; + +begin + Initialize; { Let's go .... } + repeat { Yeah, unlimited credits... } + GetStep; { Gimme some numbers... } + CalcNewPos; { Where would we land? } + WriteNewPos; { Okay, let's go there } + if (rc>500) then begin + Randomize; { Hmm...let's get new numbers } + rc := 0; + end; + if ABORT then ReRun; { No more space to move to? } + until keypressed; { Hey, wanna quit? } + EndSeq; { Okay, let's restore the old shit } +end. { Bye! } \ No newline at end of file diff --git a/REKURSIV.PAS b/REKURSIV.PAS new file mode 100644 index 0000000..0e9c7bf --- /dev/null +++ b/REKURSIV.PAS @@ -0,0 +1,16 @@ +program Rekursivitaet; +uses Crt; + +procedure Zeichen; +var ch: char; +begin + ch := ReadKey; + Write(ch); + if ch<>'-' then Zeichen; + Write(ch); +end; + +begin + ClrScr; + Zeichen; +end. \ No newline at end of file diff --git a/ReverZ/INSTALL2.PAS b/ReverZ/INSTALL2.PAS new file mode 100644 index 0000000..82d087c --- /dev/null +++ b/ReverZ/INSTALL2.PAS @@ -0,0 +1,99 @@ +{$M $4000,0,0} +program ReverZ2_CD_installer; + +uses Crt,DOS; + +var cddrv,tmpdir,tmpdirr,tmp: string; + f: text; + i: integer; + +procedure Abort(msg: string); +begin + WriteLn('Failed.'); + WriteLn; + WriteLn(msg); + WriteLn('Press any key to exit.'); + ReadKey; + Halt; +end; + +begin + WriteLn('Welcome to the ReverZ2-CD installer with the D-Info ''99 autumn database'); + WriteLn; + Write('Checking TEMP-directory....'); + tmpdir:=GetEnv('TEMP'); + if tmpdir='' then Abort('Set your TEMP-envvar!'); + WriteLn('done. TEMP-dir is ',tmpdir); + Write('Checking write access to TEMP....'); + Assign(f,tmpdir+'\reverz2.$$$'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Get write access to TEMP-dir or change envvar!'); + {$I+} + WriteLn(f,'ReverZ write test'); + Close(f); + {$I-} + Reset(f); + if IOResult<>0 then Abort('Write possible, read not - DO SOMETHING!'); + {$I+} + ReadLn(f,tmp); + Close(f); + if tmp<>'ReverZ write test' then Abort('Read data not equal to written!'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz2.$$$ could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + Write('Searching install drive letter....'); + tmp := ParamStr(0); + cddrv := tmp[1]; + WriteLn('done. Install drive is ',cddrv,':'); + Write('Creating Registry-entries....'); + Assign(f,tmpdir+'\reverz2.reg'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Error while writing reverz2.reg to '+tmpdir+'!'); + {$I+} + tmpdirr := ''; + for i:=1 to Length(tmpdir) do + if tmpdir[i]='\' then tmpdirr:=tmpdirr+'\\' else tmpdirr:=tmpdirr+tmpdir[i]; + WriteLn(f,'REGEDIT4'); + WriteLn(f,''); + WriteLn(f,'[HKEY_CURRENT_USER\Software\Topware\D-Info ''99_1\ReverZ]'); + WriteLn(f,'"IndexLong"="',cddrv,':\\DATA\\rev_long.idx"'); + WriteLn(f,'"IndexShort"="',cddrv,':\\DATA\\rev_shor.idx"'); + WriteLn(f,'"CDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"HDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"TempPath"="',tmpdirr,'"'); + WriteLn(f,'"NotFound"=dword:00000000'); + WriteLn(f,'"Folge"=dword:00000001'); + WriteLn(f,'"F4Start"=dword:00000001'); + WriteLn(f,'"IgnoreCDWarnung"=dword:00000000'); + WriteLn(f,'"Index"=dword:00000002'); + WriteLn(f,''); + Close(f); + WriteLn('done.'); + Write('Importing Registry entries....'); + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C START /w regedit /s '+tmpdir+'\reverz2.reg'); + SwapVectors; + WriteLn('hopefully done.'); + Write('Deleting reverz2.reg....'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz2.reg could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + WriteLn; + WriteLn('All done.'); +end. diff --git a/ReverZ/autorun.inf b/ReverZ/autorun.inf new file mode 100644 index 0000000..c0c06aa --- /dev/null +++ b/ReverZ/autorun.inf @@ -0,0 +1,3 @@ +[autorun] +Icon=ReverZ.exe,0 +Open=INSTALL.PIF diff --git a/ReverZ/install.pas b/ReverZ/install.pas new file mode 100644 index 0000000..7f3d104 --- /dev/null +++ b/ReverZ/install.pas @@ -0,0 +1,100 @@ +{$M $4000,0,0} +program ReverZ_CD_installer; + +uses Crt,DOS; + +var cddrv,tmpdir,tmpdirr,tmp: string; + f: text; + i: integer; + +procedure Abort(msg: string); +begin + WriteLn('Failed.'); + WriteLn; + WriteLn(msg); + WriteLn('Press any key to exit.'); + ReadKey; + Halt; +end; + +begin + WriteLn('Welcome to the ReverZ-CD installer with the D-Info ''99 database'); + WriteLn; + Write('Checking TEMP-directory....'); + tmpdir:=GetEnv('TEMP'); + if tmpdir='' then Abort('Set your TEMP-envvar!'); + WriteLn('done. TEMP-dir is ',tmpdir); + Write('Checking write access to TEMP....'); + Assign(f,tmpdir+'\reverz.$$$'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Get write access to TEMP-dir or change envvar!'); + {$I+} + WriteLn(f,'ReverZ write test'); + Close(f); + {$I-} + Reset(f); + if IOResult<>0 then Abort('Write possible, read not - DO SOMETHING!'); + {$I+} + ReadLn(f,tmp); + Close(f); + if tmp<>'ReverZ write test' then Abort('Read data not equal to written!'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz.$$$ could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + Write('Searching install drive letter....'); + tmp := ParamStr(0); + cddrv := tmp[1]; + WriteLn('done. Install drive is ',cddrv,':'); + Write('Creating Registry-entries....'); + Assign(f,tmpdir+'\reverz.reg'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Error while writing reverz.reg to '+tmpdir+'!'); + {$I+} + tmpdirr := ''; + for i:=1 to Length(tmpdir) do + if tmpdir[i]='\' then tmpdirr:=tmpdirr+'\\' else tmpdirr:=tmpdirr+tmpdir[i]; + WriteLn(f,'REGEDIT4'); + WriteLn(f,''); + WriteLn(f,'[HKEY_CURRENT_USER\Software\Topware\D-Info ''99\ReverZ]'); + WriteLn(f,'"IndexLong"="',cddrv,':\\DATA\\rev_long.idx"'); + WriteLn(f,'"IndexShort"="',cddrv,':\\DATA\\rev_shor.idx"'); + WriteLn(f,'"CDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"HDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"TempPath"="',tmpdirr,'"'); + WriteLn(f,'"NotFound"=dword:00000002'); + WriteLn(f,'"Folge"=dword:00000001'); + WriteLn(f,'"F4Start"=dword:00000001'); + WriteLn(f,'"IgnoreCDWarnung"=dword:00000000'); + WriteLn(f,'"Index"=dword:00000002'); + WriteLn(f,'"ConfigOkay"=dword:00000001'); + WriteLn(f,''); + Close(f); + WriteLn('done.'); + Write('Importing Registry entries....'); + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C START /w regedit /s '+tmpdir+'\reverz.reg'); + SwapVectors; + WriteLn('hopefully done.'); + Write('Deleting reverz.reg....'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz.reg could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + WriteLn; + WriteLn('All done.'); +end. diff --git a/ReverZ/readme.txt b/ReverZ/readme.txt new file mode 100644 index 0000000..ca3939c --- /dev/null +++ b/ReverZ/readme.txt @@ -0,0 +1,8 @@ +ReverZ-CD compilation based on D-Info '99 + +This CD contains all files needed for proper functioning of ReverZ. It is a stand-alone +version of ReverZ - no D-Info installation needed! Just insert the CD, let install.exe +set the paths for ReverZ correctly and then launch ReverZ.exe and have phun!! + + - RoboCop of n00b + http://www.n00b.com diff --git a/SCHED.DAT b/SCHED.DAT new file mode 100644 index 0000000..8353499 --- /dev/null +++ b/SCHED.DAT @@ -0,0 +1,14 @@ +' TERMIN.EXE - by RoboCop INDUSTRIES +' Bitte immer am Ende ein RETURN lassen + +' ==== JANUAR ==== +02.01. John Doe + +' === DEZEMBER === +02.12. Jane Doe +24.12. Weihnachten =- FREI -= +25.12. 1. Weihnachtsfeiertag +26.12. 2. Weihnachtsfeiertag +31.12. Silvester =- FREI -= + +' BENUTZER-EINTRGE diff --git a/SCHED.PAS b/SCHED.PAS new file mode 100644 index 0000000..9538a6b --- /dev/null +++ b/SCHED.PAS @@ -0,0 +1,254 @@ +program Schedule; + +{ Datendatei + ---------- + + Dateiname: [wie EXE-Datei].DAT + Format: + dd.mm. [Termin] // fr jhrliche Termine + dd.mm.yy [Termin] // fr einmalige Termine + } + + +uses Crt, Dos, VFx; + +const Days: array[0..6] of string[10] = + ('Sonntag','Montag','Dienstag', + 'Mittwoch','Donnerstag', + 'Freitag','Sonnabend'); + Months: array[1..12] of string[9] = + ('Januar','Februar','Mrz','April', + 'Mai','Juni','Juli','August','September', + 'Oktober','November','Dezember'); + +var SD,SM,SY,SDOW: word; + datf: text; + datfn: string; + increaser: byte; + waitafter: boolean; + origmode: integer; + +procedure Init; forward; +procedure Outit; forward; +procedure GetDDate(dat: string;var d,m,y: byte); forward; +function GetDDesc(dat: string): string; forward; +procedure Raise(var d,m,y: word); forward; +procedure Check4App; forward; +procedure Appointment(ter: string); forward; + + +procedure Init; +var i,lm: integer; +begin + CursorOff; + origmode := 0; + lm := LastMode; + if (lm<>3) then begin + origmode := lm; + TextMode(co80); + end; + increaser := 0; + waitafter := false; + GotoXY(1,WhereY-1); + ClrEol; + GetDate(SY,SM,SD,SDOW); + SY := SY - (SY DIV 100) * 100; + CWriteLn(' %%15#Ŀ'); + CWrite('%%8#%%7#%%15#Ĵ %%14#Schedule/DOS%%15# Ĵ '); + TextColor(7); + Write('Es ist heute ',Days[SDOW],', der ',SD,'. ',Months[SM],' ',SY,'. '); + TextColor(15); + Write(''); + Write(MultiChar('',77-WhereX)); + CWrite('%%7#%%8#'); + CWrite(' %%15#%%7# '); + WriteLn; + TextColor(7); + for i:=Length(ParamStr(0)) downto 1 do begin + if Copy(ParamStr(0),i,1)='.' then datfn := Copy(ParamStr(0),1,i-1)+'.dat'; + end; + Assign(datf,datfn); + {$I-} + Reset(datf); + if IOResult<>0 then begin + TextColor(12+blink); + Write(' '); + TextColor(12); + WriteLn('Fehler ',IOResult,' beim ffnen von ',datfn,'.'); + WriteLn; + Outit; + Halt; + end; + if Eof(datf) then begin + TextColor(12+blink); + Write(' '); + TextColor(12); + WriteLn('Datendatei ',datfn,' ist leer.'); + WriteLn; + Outit; + Halt; + end; + {$I+} +end; + +procedure Outit; +var i: integer; + h,m,s,hu,os: word; + li,c: byte; +begin + c := 9; + CWrite('%%8#%%7#%%15#'); + if waitafter then begin + Write(MultiChar('',12),' '); + CWrite('%%8#Bitte eine Taste drcken, oder # Sek. warten%%15#'); + Write(' ',MultiChar('',12)); + end else Write(MultiChar('',77-WhereX)); + CWrite('%%7#%%8#'); + li := WhereY-1; + if waitafter then begin + GetTime(h,m,os,hu); + while c<>0 do begin + GotoXY(50,li); + Write(c:1); + GetTime(h,m,s,hu); + if s<>os then begin + Dec(c); + Sound(1500); + Delay(50); + NoSound; + end; + os := s; + if keypressed then begin + ReadKey; + GotoXY(1,li); + CWrite('%%8#%%7#%%15#'); + Write(MultiChar('',72)); + CWrite('%%7#%%8#'); + CursorOn; + NormVideo; + if origmode<>0 then TextMode(origmode); + Halt; + end; + end; + end; + GotoXY(1,li); + CWrite('%%8#%%7#%%15#'); + Write(MultiChar('',72)); + CWrite('%%7#%%8#'); + CursorOn; + ReadyBeep; + NormVideo; + if origmode<>0 then TextMode(origmode); + Halt; +end; + +procedure GetDDate(dat: string;var d,m,y: byte); +var i,co: integer; + date: string; + oldp: integer; +begin + d := 0; + m := 0; + y := 0; + oldp := 1; + for i:=1 to Length(dat) do begin + if dat[i]=' ' then begin + date := Copy(dat,1,i-1); + Break; + end; + end; + Val(Copy(date,1,2),d,co); + Val(Copy(date,4,2),m,co); + if Length(date)>6 then Val(Copy(date,7,2),y,co) else y:=0; +end; + +function GetDDesc(dat: string): string; +var i: integer; +begin + for i:=1 to Length(dat) do begin + if dat[i]=' ' then begin + GetDDesc := Copy(dat,i+1,Length(dat)-i); + Break; + end; + end; +end; + +procedure Raise(var d,m,y: word); +begin + Inc(d); + Inc(increaser); + case m of + 1,3,5,7,8,10,12: if d>31 then begin + Inc(m); + d := 1; + end; + 4,6,9,11: if d>30 then begin + Inc(m); + d := 1; + end; + 2: if ((y/4=y div 4) AND (d>29)) then begin + Inc(m); + d := 1; + end else if ((y/4<>y div 4) AND (d>28)) then begin + Inc(m); + d := 1; + end; + end; + if m>12 then begin + Inc(y); + m := 1; + end; +end; + +procedure Check4App; +var tmp: string; + d,m,y: byte; + i: integer; +begin + for i:=1 to 5 do begin + Reset(datf); + while NOT Eof(datf) do begin + ReadLn(datf, tmp); + case tmp[1] of + '0'..'9': begin + GetDDate(tmp,d,m,y); + { Write('Date: ',TD,'.',TM,'.',TY,' --- '); + WriteLn('Seek for: ',d,'.',m,'.',y); } + if ((d=SD) AND (m=SM) AND ((y=SY) OR (y=0))) then Appointment(tmp); + end; + end; + end; + Raise(SD,SM,SY); + end; +end; + +procedure Appointment(ter: string); +var d,m,y: byte; +begin + GetDDate(ter,d,m,y); + case increaser of + 0: TextColor(12+blink); + 1: TextColor(12); + 2,3: TextColor(14); + 4,5: TextColor(10); + end; + Write(' '); + case increaser of + 0: begin Write('-HEUTE- '); waitafter := true; end; + 1: begin Write('-MORGEN- '); waitafter := true; end; + else begin + Write(d:2,'.',m:2,'.'); + if y<>0 then Write(y:2,' ') else Write(' '); + end; + end; + Write(''); + if ((increaser=0) OR (increaser=0)) then TextColor(15) else TextColor(7); + + WriteLn(' ',GetDDesc(ter)); +end; + +begin + Init; + Check4App; + Outit; +end. \ No newline at end of file diff --git a/SCHWINGN.PAS b/SCHWINGN.PAS new file mode 100644 index 0000000..0c47720 --- /dev/null +++ b/SCHWINGN.PAS @@ -0,0 +1,293 @@ +program Schwingungsberechnungen; {Autor: RoboCop IND.} +uses Crt,Logo; +label ChosAgain, AllAgain, Ende; +var Chosen: Char; + + + + + procedure Elong; + label ChoAgain, ContHere, PerDKnown,FreqKnown; + var Elongation, Amplitude, Wert, Omikron, Time: real; + Choose: Char; + begin; + ClrScr; + TextBackground(0); + TextColor(15); + WriteLn('-= ELONGATIONSBERECHNUNG =-'); + WriteLn; + TextColor(7); + Write('Amplitude eingeben (cm): '); + TextColor(14); + ReadLn(Amplitude); + WriteLn; + TextColor(15); + WriteLn('Auswhlen: 1 - Frequenz bekannt'); + WriteLn(' 2 - Periodendauer bekannt'); + + ChoAgain:; + TextColor(15); + Write('Ihre Wahl: '); + TextColor(14); + Choose := ReadKey; + WriteLn(Choose); + if Choose = '1' then goto FreqKnown; + if Choose = '2' then goto PerDKnown; + TextColor(12); + WriteLn('Falsche Auswahl! Es ist nur 1 oder 2 zugelassen.'); + goto ChoAgain; + + FreqKnown:; + TextColor(7); + Write ('Frequenz eingeben (Hz): '); + TextColor(14); + ReadLn (Wert); + Omikron := 2*Pi*Wert; {Ausrechnen von Omikron (w)} + goto ContHere; {bei Vorgabe der Frequenz.} + + PerDKnown:; + TextColor(7); + Write ('Periodendauer eingeben (s): '); + TextColor(14); + ReadLn (Wert); + Omikron := (2*Pi)/Wert; {Ausrechnen von Omikron bei} + goto ContHere; {Vorgabe der Frequenz.} + + ContHere:; + TextColor(7); + Write ('Gewnschter Zeitpunkt (s): '); + TextColor(14); + ReadLn (Time); + Elongation := Amplitude * sin(Omikron*Time); {Ausrechnen der Elongation} + ClrScr; {nach y=Ymax*sin(w*t)} + TextColor(15); + WriteLn ('-= ELONGATIONSBERECHNUNG =-'); + WriteLn; + TextColor(10); + WriteLn ('*** Auswertung ***'); + WriteLn; + TextColor(14); + WriteLn ('Amplitude: ',Amplitude:0:3,' cm'); + if Choose = '1' then WriteLn ('Frequenz: ',Wert:0:3,' Hz'); + if Choose = '2' then WriteLn ('Periodendauer: ',Wert:0:3,' s'); + WriteLn ('Zeitpunkt: ',Time:0:3,' s'); + WriteLn ('Elongation: ',Elongation:0:3,' cm'); + WriteLn; + TextColor(7); + WriteLn ('Die Elongation zum Zeitpunkt t=',Time:0:1,' s, bei einer maximalen'); + Write ('Auslenkung von Ymax=',Amplitude:0:1,' cm und einer '); + if Choose = '1' then WriteLn ('Frequenz von f=',Wert:0:1,' Hz'); + if Choose = '2' then WriteLn ('Periodendauer von T=',Wert:0:1,' s'); + WriteLn ('betrgt y=',Elongation:0:2,' cm.'); + WriteLn; + TextColor(14); + WriteLn ('Wenn bereit, eine Taste drcken.'); + ReadKey; + end; + + + + + procedure PDauer; + label ChoAgain, ContHere; + var Length, Gravitation, PDauer: real; + Choose: char; + Planet: string[5]; + + begin; + ClrScr; + TextBackground(0); + TextColor(15); + WriteLn('-= PERIODENDAUERBERECHNUNG =-'); + WriteLn; + TextColor(7); + Write('Lnge des Pendels eingeben (cm): '); + TextColor(14); + ReadLn(Length); + WriteLn; + TextColor(15); + WriteLn('Planet whlen: 1 - Erde'); + WriteLn(' 2 - Sonne'); + WriteLn(' 3 - Mond'); + + ChoAgain:; + TextColor(15); + Write('Ihre Wahl: '); + TextColor(14); + Choose := ReadKey; + WriteLn(Choose); + if Choose = '1' then + begin; + Gravitation := 9.80665; + Planet := 'Erde'; + goto ContHere; + end; + if Choose = '2' then + begin; + Gravitation := 274; + Planet := 'Sonne'; + goto ContHere; + end; + if Choose = '3' then + begin; + Gravitation := 1.62; + Planet := 'Mond'; + goto ContHere; + end; + TextColor(12); + WriteLn('Falsche Auswahl! Es sind nur 1, 2 oder 3 zugelassen.'); + goto ChoAgain; + + ContHere:; + ClrScr; + PDauer := 2*Pi*Sqrt(Length/Gravitation); + TextColor(15); + WriteLn('-= PERIODENDAUERBERECHNUNG =-'); + WriteLn; + TextColor(10); + WriteLn('*** AUSWERTUNG ***'); + WriteLn; + TextColor(14); + WriteLn('Lnge des Pendels: ',Length:0:3,' cm'); + WriteLn('Basierend auf ',Planet,' [',Gravitation:0:5,']'); + WriteLn('Dauer einer Periode: ',PDauer:0:3,' s'); + WriteLn; + TextColor(7); + WriteLn('Die Dauer einer Periode eines Fadenpendels mit der Lnge'); + WriteLn('l=',Length:0:1,' cm auf der/dem ',Planet,' mit einer'); + WriteLn('Anziehungskraft von g=',Gravitation:0:1,' m/s betrgt'); + WriteLn('T=',PDauer:0:2,' s.'); + WriteLn; + TextColor(14); + WriteLn('Wenn bereit, eine Taste drcken.'); + ReadKey; + end; + + + + + procedure PLength; + label ChoAgain, ContHere; + var PDauer, Gravitation, Length: real; + Planet: string[5]; + Choose: char; + + begin; + ClrScr; + TextBackground(0); + TextColor(15); + WriteLn('-= PENDELLNGENBERECHNUNG =-'); + WriteLn; + TextColor(7); + Write('Dauer einer Periode eingeben (s): '); + TextColor(14); + ReadLn(PDauer); + WriteLn; + TextColor(15); + WriteLn('Planet whlen: 1 - Erde'); + WriteLn(' 2 - Sonne'); + WriteLn(' 3 - Mond'); + + ChoAgain:; + TextColor(15); + Write('Ihre Wahl: '); + TextColor(14); + Choose := ReadKey; + WriteLn(Choose); + if Choose = '1' then + begin; + Gravitation := 9.80665; + Planet := 'Erde'; + goto ContHere; + end; + if Choose = '2' then + begin; + Gravitation := 274; + Planet := 'Sonne'; + goto ContHere; + end; + if Choose = '3' then + begin; + Gravitation := 1.62; + Planet := 'Mond'; + goto ContHere; + end; + TextColor(12); + WriteLn('Falsche Auswahl! Es sind nur 1, 2 oder 3 zugelassen.'); + goto ChoAgain; + + ContHere:; + ClrScr; + Length := (Sqr(PDauer)*Gravitation)/(4*Sqr(Pi)); + TextColor(15); + WriteLn('-= PENDELLNGENBERECHNUNG =-'); + WriteLn; + TextColor(10); + WriteLn('*** AUSWERTUNG ***'); + WriteLn; + TextColor(14); + WriteLn('Dauer einer Periode: ',PDauer:0:0,' s'); + WriteLn('Basierend auf ',Planet,' [',Gravitation:0:0,']'); + WriteLn('Lnge des Pendels: ',Length:0:0,' cm'); + WriteLn; + TextColor(7); + WriteLn('Die Lnge eines Fadenpendels mit der Periodendauer'); + WriteLn('T=',PDauer:0:0,' s auf der/dem ',Planet,' mit einer'); + WriteLn('Anziehungskraft von g=',Gravitation:0:0,' m/s betrgt'); + WriteLn('l=',PDauer:0:0,' cm.'); + WriteLn; + TextColor(14); + WriteLn('Wenn bereit, eine Taste drcken.'); + ReadKey; + end; + + + + +begin; +AllAgain:; + ClrScr; + TextColor(15); + WriteLn('-= SCHWINGUNGSBERECHNUNGEN =-'); + WriteLn; + WriteLn('1st program by'); + WriteLogo; + TextColor(7); + WriteLn('Bitte Auswahl treffen:'); + WriteLn(' 1 - Unter Eingabe von Ymax,f od. T & t, Ausrechnung von y'); + WriteLn(' 2 - Unter Eingabe von l und Auswahl von g, Ausrechnung von T'); + WriteLn(' 3 - Unter Eingabe von T und Auswahl von g, Ausrechnung von l'); + WriteLn(' 4 - Programm beenden.'); + WriteLn; +ChosAgain:; + TextColor(14); + Write('Ihre Wahl: '); + Chosen := ReadKey; + WriteLn(Chosen); + if Chosen = '1' then + begin; + Elong; + goto AllAgain; + end; + if Chosen = '2' then + begin; + PDauer; + goto AllAgain; + end; + if Chosen = '3' then + begin; + PLength; + goto AllAgain; + end; + if Chosen = '4' then + begin; + ClrScr; + TextColor(7); + WriteLn('SCHWINGUNGEN normal beendet.'); + goto Ende; + end; + TextColor(12); + WriteLn('Falsche Auswahl, drcken Sie bitte eine Taste von 1-4.'); + goto ChosAgain; +Ende:; +end. \ No newline at end of file diff --git a/SEARCH.PAS b/SEARCH.PAS new file mode 100644 index 0000000..5414ce4 --- /dev/null +++ b/SEARCH.PAS @@ -0,0 +1,174 @@ +program Search; + +uses Crt; + +var Target,Max,LastTry,LBO,Try,Step,MaxSteps,MaxSTarget: longint; + oldx,oldy: integer; + oldestx,oldesty: integer; + Steps:array[1..31] of longint; + Time: integer; + +procedure CursorOff;assembler; +asm + xor ax,ax + mov ah,01h + mov ch,20h + mov cl,20h + int 10h +end; + +procedure CursorOn;assembler; +asm + mov ah,01h + mov cx,0607h + int 10h +end; + +procedure AskForData; +begin + WriteLn(' Search-Prog '); + WriteLn; + Write('Geben Sie den Zahlenbereich an (0 fr 2147483647): 0-'); + ReadLn(Max); + if Max=0 then begin + Max:=2147483647; + GotoXY(54,3); + Write(Max); + GotoXY(1,4); + end; + Write('Geben Sie die Zahl ein, die ich suchen soll: '); + ReadLn(Target); + WriteLn; + WriteLn('Dateneingabe komplett.'); + Delay(500); + ClrScr; +end; + +procedure GetRandomData; +begin + Max:=2147483647; + Target:=Round(Random*1E3+Random*1E6+Random*1E9); +end; + +procedure GetAll; +begin + Max:=2147483637; + Inc(Target); +end; + +function Half(v1,v2: longint):longint; +begin + if v1>v2 then Half:=Round((v1-v2)/2); + if v124 then begin + co:=co+40; + li:=1; + end; + LBO:=LastTry; + LastTry:=Try; + if TryTarget then Write(Try:10,' ',Chr(16),' 0'); + if Try=Target then begin + if ((oldestx<>0) AND (oldesty<>0)) then begin + GotoXY(oldestx,oldesty); + TextColor(8); + Write(Chr(16)); + end; + oldestx:=oldx; + oldesty:=oldy; + if ((oldx<>0) AND (oldy<>0)) then begin + GotoXY(oldx,oldy); + TextColor(4); + Write(Chr(16)); + end; + oldx:=co-1; + oldy:=li; + GotoXY(co-1,li); + TextColor(12); + Write(Chr(16),Try:10,' ',Chr(29),' '); + Inc(Steps[step]); + end; + if Try<>Target then goto TryAgain; + { Delay(2000); } + Inc(Time); + if Time>1000 then begin + Time := 0; + CalcPerc; + end; + { CursorOn; } +end; + +begin + Time := 0; + TextBackground(0); + CursorOff; + ClrScr; + Randomize; + { AskForData; } + MakeList; + while not keypressed do begin + Step:=0; + GetRandomData; + { GetAll; } + Calculate; + if Step>MaxSteps then begin + MaxSteps:=Step; + MaxSTarget:=Target; + end; + end; + ReadKey; +end. \ No newline at end of file diff --git a/SETYEAR.PAS b/SETYEAR.PAS new file mode 100644 index 0000000..3a906ff --- /dev/null +++ b/SETYEAR.PAS @@ -0,0 +1,15 @@ +program SetYear; + +uses Dos; + +var y,m,d,dow: word; + ec,ny: integer; + +begin + GetDate(y,m,d,dow); + WriteLn('Datum im Computer: ',d,'.',m,'.',y); + Val(ParamStr(1),ny,ec); + SetDate(ny,m,d); + GetDate(y,m,d,dow); + WriteLn('Neues Datum : ',d,'.',m,'.',y); +end. diff --git a/SETYEAR.TXT b/SETYEAR.TXT new file mode 100644 index 0000000..64d3d79 --- /dev/null +++ b/SETYEAR.TXT @@ -0,0 +1,27 @@ +SetYear + + +Dieses Programm ndert das Systemjahr immer auf die Zahl, die hinter dem Dateinamen angegeben wird. + +z.B.: + +SETYEAR 2001 + +ndert das Systemdatum auf das Jahr 2001. + + + +Zum ndern von Date2000 gehen Sie wie folgt vor: + +- Kopieren Sie SETYEAR.EXE nach C:\ (DOS: "copy A:\SETYEAR.EXE C:\"; Windows95: mit dem Explorer kopieren) +- Finden Sie die Datei AUTOEXEC.BAT (im Verzeichnis C:\) +- Editieren Sie sie (Unter DOS: "EDIT AUTOEXEC.BAT"; Windows95: Rechtsklick auf Datei --> Bearbeiten) +- Finden Sie die Zeile mit "DATE2000" +- Lschen Sie diese Zeile und schreiben Sie stattdessen "SETYEAR 2001" (Jahreszahl anpassen!) +- Speichern Sie die Datei (DOS: Alt+D --> Speichern; Windows95: Datei --> Speichern) +- Beenden Sie den Editor (DOS: Alt+D --> Beenden; Windows95: Datei --> Beenden) +- Starten Sie Ihren Rechner neu + + +Jetzt mu man jedes Silvester nur noch die Zahl ndern. + diff --git a/SINGLCHR.PAS b/SINGLCHR.PAS new file mode 100644 index 0000000..b101cf3 --- /dev/null +++ b/SINGLCHR.PAS @@ -0,0 +1,36 @@ +program SingleChar; + +uses Crt, TimeStatus, VFx; + +var atall: longint; + +procedure WriteSign; +begin + { GotoXY(1,1); } + Write(''); +end; + +procedure OutStat; +begin + GotoXY(20,2); + Write(PerSec(atall):6:3,' chars/s'); +end; + +begin + CursorOff; + ClrScr; + atall := 0; + InitTimer; + repeat + WriteSign; + Inc(atall); + if atall/1920=Int(atall/1920) then GotoXY(1,1); + until keypressed; + ReadKey; + GotoXY(1,3); + WriteLn(atall,' chars written in ',TimeGone,' milliseconds.'); + WriteLn(PerMS(atall):0:3,' chars/ms'); + WriteLn(PerSec(atall):0:3,' chars/sec'); + WriteLn(PerMin(atall):0:3,' chars/min'); + CursorOn; +end. diff --git a/SIREN.PAS b/SIREN.PAS new file mode 100644 index 0000000..7e5f57b --- /dev/null +++ b/SIREN.PAS @@ -0,0 +1,28 @@ +program Siren; + +uses Crt; + +const MaxVal = 1200; + MinVal = 800; + +var i: integer; + tmp: integer; + +function GetSoundVal(t: real): integer; +begin + GetSoundVal := Trunc(Sin(t)*(MaxVal-MinVal)+MinVal); +end; + +begin + i:=0; + repeat + Inc(i); + tmp := GetSoundVal(i/100); + Sound(tmp); + GotoXY(1,1); Write(tmp,' Hz '); + Delay(10); + until keypressed; + NoSound; + WriteLn('* Press any key *'); + ReadKey; +end. \ No newline at end of file diff --git a/SOUNDS_T.PAS b/SOUNDS_T.PAS new file mode 100644 index 0000000..6447604 --- /dev/null +++ b/SOUNDS_T.PAS @@ -0,0 +1,38 @@ +program Sounds_Test; + +uses Crt,Sounds; + +var i,j: integer; + Killsound: boolean; + +begin + Debug := true; + Killsound := false; + if Killsound then begin + WriteLn('Killing sound NOW!'); + WriteLn('Time to die!'); + NoSound; + WriteLn('Sound is no more! Exiting...'); + Write('* Press any - and that means ANY - key *'); + ReadKey; + ClrScr; + Exit; + end; + Delay(1000); + Tone(1000,500); { Syntax: Tone(Hertz,Delay) } + Delay(100); + Siren(600,1200,5000,7); { Syntax: Siren(LoTone,HiTone,Delay,Divisor [for speed]) } + DualTone(1750,2000,1000,1); { Syntax: DualTone(Tone1,Tone2,Delay,ToneDelay) } + Write('* Press any key *'); + ReadKey; + ClrScr; + for i:=4 downto 1 do begin + for j:=16 downto 1 do begin + DualTone(i*800,j*200,500,1); + + end; + end; + Write('* Press this key again *'); + ReadKey; + ClrScr; +end. \ No newline at end of file diff --git a/SS_WIND.PAS b/SS_WIND.PAS new file mode 100644 index 0000000..606dbe8 --- /dev/null +++ b/SS_WIND.PAS @@ -0,0 +1,77 @@ +program ScreenSaver_Windows; + +uses Crt; + +const chars: string=' #'; { chars for use to fill windows } + del=100; { delay between windows } + +var x1, y1: integer; + x2, y2: integer; + rfc, rbc: integer; + usech: integer; + +procedure Initialize; +begin + TextMode(3+256); { Goes to 80x50 mode (for more windows ;-) } +end; + +procedure Shutdown; { resets all changes } +begin + TextMode(3); + Window(1,1,80,25); + TextColor(7); + TextBackground(0); +end; + +procedure GetRandomPos; +var tv: integer; +begin + x1:=Random(81); { Get some coordinates from tha nice randomizer } + x2:=Random(81); + y1:=Random(51); + y2:=Random(51); + if x1>x2 then begin { did you hear that x1 is greater than x2? } + tv := x2; + x2 := x1; + x1 := tv; + end; + if y1>y2 then begin { or even that y1 is greater than y2? } + tv := y2; + y2 := y1; + y1 := tv; + end; +end; + +procedure GetRandomColors; +begin + rfc:=Random(16); { which color do we want to use? } + rbc:=Random(16); { and behind those little chars? } +end; + +procedure GetRandomChar; +begin + usech:=Random(Length(chars))+1; { What chars? } +end; + +procedure DrawWindow; +var x: integer; +begin + window(x1,y1,x2,y2); { This has nothing to do with MICROSHITs product } + GotoXY(1,1); { go to the upper left corner } + TextColor(rfc); { tell the bios which color to use.... } + TextBackground(rbc); + for x:=1 to (x2-x1+1)*(y2-y1+1)-(x2-x1+1) do Write(chars[usech]); { fill all with those nice little chars...hehe } +end; + +begin + Initialize; { set videomode } + repeat + GetRandomPos; { get some coordinates } + GetRandomColors; { get some colors } + GetRandomChar; { get the pos of the right char } + DrawWindow; { make such a nice window } + Delay(del); { wait a sec.... } + Randomize; { reinitialize randomizer } + until keypressed; { heeeeree weee gooo agaaaiiinn ..... } + Shutdown; { shut all down - restore vidmode } +end. \ No newline at end of file diff --git a/TAN-1.PAS b/TAN-1.PAS new file mode 100644 index 0000000..008596f --- /dev/null +++ b/TAN-1.PAS @@ -0,0 +1,13 @@ +program test; + +var s,t,u,a,v: real; + +begin + a := Pi; + t := sin(a); + s := cos(a); + u := t/s; + v := t*360; + + WriteLn('Wert: ',a:8:5,' sin: ',t:8:5,' cos: ',s:8:5,' tan: ',u:8:5,' v: ',v:8:5); +end. \ No newline at end of file diff --git a/TEST.BMP b/TEST.BMP new file mode 100644 index 0000000000000000000000000000000000000000..89b3a84f4a25ecdf996be10d7bdbefe342ecb3a5 GIT binary patch literal 4038 zcmbuC&x$QO6~=zc01hKO8Rzrgvr6PQI)^-&$EofBBQYeCMvWU($b{=chcs z;Q7|w7xesQ{?Fe&o<8u;?(N+jpS!njk1u*&dEVZA`0#;=)<1Wx>5Yd!4blDRe{2t} z$3xQV?7!q*9_(tZ z6_y3yeHZ=OX+d9fdEl*Oy8`f=Z`S6ORkoQvt~tFlpPtY|xaD0!pBj z-lBP6o-rfSMII|f2?O1eH{b{=OFFZlfW(!f8OXg~rL(nD<_$+ZhxzTB7XmAbCBrIwN$W)fJo zV;A4!*0h8VEmrhZxr&K4d%v|tj$$5Gz)~bFg zkD6y|t&l2zDN`C^428|cL`aj6D1-?}#mnyR%{F9&mQ$B|0DS@C2?Tl}r7xzdnl%!Z zq`IKW8;?Q4-I(k4)dWfwg0=K*L{%BPJS2BNz=srTmnjI`i&(a{z7@Bgr>#AwXEbMH z;90s^s5)#Zp*{abvVNGEaw(?kg2rLr7w3Mz;SrA=z4ej@CC=IS;@-D*ou5*5&Vh5M z(?&qpw}&5PEZ%)=?PZBmi^FW|vP58RJZ+_HE3R~&CD5H(xDK(I>zpKS5YD-c#+JZi z=>|EUkvk&>|CTpjC zm|!$+r#I$A$x zTKRY~%K{;v9wP)gXA(#!KMtA|U$$p)AE!O!9HzldrVhix@si!}Yu~lfV_(M7^ZDKW zn9`#e;Lpr+m?*4AI!JHdM=A}|c^_JgVfbo5VHikiJKk_?=VM=zuUpvnmh2G1oQy?Y zuB3sJePjtu{ITC)|9#3a#9<1}F2la;ai52d(FUfTiode1@sv$SW{z_WP-n>ezPJc?ztEWJvh<@EeD1*m?#5RVij&3)?D9Wd$@(a>S^ zoLfcSG_j6I*Bbc~2zB(bkMBq=pbptYJ;+m}x=pGIG|Hu4yWW0Ziq%)pj8|JHOqfjM z1c%yw8&UmJNv|F&W2>oBmFqOcsGUKHS}Fg?>^PmOsnn^~8W0t7kbznttYQpJ>$L=YdrE-Yeu_flHN=c#7z`Tn2enCngyuy zLuJ2g1_C07sEHMlZHikwhjAUb>{)P<2hR9az-cn0nQDs95f(UY^T-u1x=&sfu*C_PjgE%3F5U>Wh z<1^vLESA&62)I=O2_hH7Z0btpmypf4t>oxtxi#K!>})d0 then Halt; + {$I+} + sum := 0; + op := 0; + while NOT Eof(f) do begin + Read(f,t); + if (Ord(Upcase(t))>64) AND (Ord(Upcase(t))<91) then Inc(s[Ord(Upcase(t))-64]); + Inc(sum); + p := (sum/FileSize(f))*100; + if (p>op+1) OR (p=100) then begin + GotoXY(1,1); + for i:=1 to 26 do WriteLn(Chr(i+64),': ',s[i]:4,' (',(s[i]/sum)*100:9:5,'%)'); + WriteLn('Chars analyzed: ',sum:5); + WriteLn('Percentage completed: ',p:9:3); + op := p; + end; + end; + Close(f); + ReadKey; +end. diff --git a/TMPCLEAR.PAS b/TMPCLEAR.PAS new file mode 100644 index 0000000..2ce2b75 --- /dev/null +++ b/TMPCLEAR.PAS @@ -0,0 +1,209 @@ +program DelTemp; + +uses Crt, DOS; + +type Tpb = record + x: word; + y: word; + end; + +const level: byte = 0; + border: record + frame: string[6]; + width, height: word; + end = (frame:'ɻȼ';width:80;height:4); + ac: byte = 1; + dircount: integer = 1; + filcount: integer = 1; + +var TempDir: string[40]; + screen: array[1..50, 1..80, 1..2] of byte absolute $b800:0000; + pb: Tpb; + +procedure Abort_NoTempFound; +begin + TextColor(12); + WriteLn('Temporary Directory not found. Check your Envvars TEMP and/or TMP!'); + TextColor(7); + Halt(1); +end; + +procedure Abort_FileLocked(f: string); +begin + WriteLn('Oooops with ',f,'. Exiting...'); + Halt(2); +end; + +procedure DrawBorder; +var i: integer; +begin + screen[WhereY,1,1] := Ord(border.frame[1]); + for i:=2 to border.width-1 do screen[WhereY,i,1] := Ord(border.frame[6]); + screen[WhereY,border.width,1] := Ord(border.frame[2]); + WriteLn; + for i:=2 to border.height-1 do begin + screen[WhereY,1,1] := Ord(border.frame[5]); + screen[WhereY,border.width,1] := Ord(border.frame[5]); + WriteLn; + end; + screen[WhereY,1,1] := Ord(border.frame[3]); + for i:=2 to border.width-1 do screen[WhereY,i,1] := Ord(border.frame[6]); + screen[WhereY,border.width,1] := Ord(border.frame[4]); + WriteLn; + pb.x := 1; + pb.y := WhereY-border.height; +end; + +procedure UpdatePb; +const e=0; + d=7; +var i: integer; + c: byte; +begin + c := ac; + Inc(ac); + if ac>3 then ac:=1; + for i:=1 to border.width do begin + if (c=3) then screen[pb.y,i,2] := d else screen[pb.y,i,2] := e; + Dec(c); + if c<1 then c:=3; + end; + for i:=1 to border.height-2 do begin + if (c=3) then screen[pb.y+i,border.width,2] := d else screen[pb.y+i,border.width,2] := e; + Dec(c); + if c<1 then c:=3; + end; + for i:=border.width downto 1 do begin + if (c=3) then screen[pb.y+border.height-1,i,2] := d else screen[pb.y+border.height-1,i,2] := e; + Dec(c); + if c<1 then c:=3; + end; + for i:=border.height-2 downto 1 do begin + if (c=3) then screen[pb.y+i,1,2] := d else screen[pb.y+i,1,2] := e; + Dec(c); + if c<1 then c:=3; + end; +end; + +procedure RestorePb; +var i: word; +begin + for i:=1 to border.width do begin + screen[pb.y,i,2] := 7; + screen[pb.y+border.height-1,i,2] := 7; + end; + for i:=1 to border.height-2 do begin + screen[pb.y+i,1,2] := 7; + screen[pb.y+i,border.width,2] := 7; + end; +end; + +function IS(f: SearchRec; a: byte): boolean; +var tmp: byte; +begin + tmp := f.Attr AND a; + if (tmp=a) then IS := true else IS := false; +end; + +procedure WritePathInfo(x: string;l: integer); +var out: string[69]; + i: integer; +begin + GotoXY(pb.x+9,pb.y+1); + Str(level:0,out); + out := '['+out+'] '+x+'\'; + for i:=Length(out) to 69 do out := out + ' '; + Write(out); +end; + +function LZ(x: integer): string; +var tmp: string; +begin + Str(x:0,tmp); + if Length(tmp)<2 then tmp := '0'+tmp; + LZ := tmp; +end; + +procedure WriteFileInfo(f: SearchRec); +var i,j: integer; + tm: DateTime; +begin + GotoXY(pb.x+9,pb.y+2); + for i:=Length(f.Name) downto 1 do begin + if f.Name[i]='.' then begin + Write(Copy(f.Name,1,i-1)); + for j:=i to 9 do Write(' '); + Write(Copy(f.Name,i+1,Length(f.Name)-i)); + end; + end; + GotoXY(22,WhereY); + Write(f.Size:9,' '); + if IS(f,Directory) then Write('D') + else if IS(f,VolumeID) then Write('V') + else Write('-'); + if IS(f,Archive) then Write('A') else Write('-'); + if IS(f,Hidden) then Write('H') else Write('-'); + if IS(f,ReadOnly) then Write('R') else Write('-'); + if IS(f,SysFile) then Write('S') else Write('-'); + Write(' '); + UnpackTime(f.Time,tm); + Write(LZ(tm.Day)+'.'+LZ(tm.Month)+'.',tm.Year,' '+LZ(tm.Hour)+':'+LZ(tm.Min)+'.'+LZ(tm.Sec)); +end; + +procedure ParseDirRec(x: string); +var DC: SearchRec; + f: file; +begin + Inc(level); + Inc(dircount); + WritePathInfo(x,level); + FindFirst(x+'\*.*',AnyFile,DC); + while DosError=0 do begin + UpdatePb; + Delay(50); + if (DC.Name<>'.') AND (DC.Name<>'..') then begin + WriteFileInfo(DC); + if IS(DC,Directory) then begin + ParseDirRec(x+'\'+DC.Name); + WritePathInfo(x,level); + { RmDir(x+'\'+DC.Name); } + end else begin + Assign(f,x+'\'+DC.Name); + if (IS(DC,ReadOnly)) OR (IS(DC,Hidden)) OR (IS(DC,SysFile)) then SetFAttr(f,Archive); + if DosError=5 then begin + Abort_FileLocked(x+'\'+DC.Name); + end; + Inc(filcount); + { Erase(f); } + end; + end; + FindNext(DC); + end; + Dec(level); +end; + +procedure WriteFinalStats; +var i: integer; +begin + for i:=2 to 79 do begin + screen[pb.y+1,i,1] := 32; + screen[pb.y+2,i,1] := 32; + end; + GotoXY(pb.x+2,pb.y+1); Write('Directories parsed: ',dircount); + GotoXY(pb.x+2,pb.y+2); Write('Files deleted: ',filcount); +end; + +begin + WriteLn('-=+ TempClear +=- (c)2000 by Markus Birth '); + TempDir := GetEnv('TEMP'); + if TempDir='' then TempDir := GetEnv('TMP'); + if TempDir='' then Abort_NoTempFound; + GotoXY(1,WhereY-1); + DrawBorder; + GotoXY(pb.x+2,pb.y+1); Write(' Path:'); + GotoXY(pb.x+2,pb.y+2); Write('Entry:'); + ParseDirRec(TempDir); + RestorePb; + WriteFinalStats; + GotoXY(1,pb.y+border.height); +end. diff --git a/TRIPLSND.PAS b/TRIPLSND.PAS new file mode 100644 index 0000000..7152070 --- /dev/null +++ b/TRIPLSND.PAS @@ -0,0 +1,16 @@ +uses Crt; + +var i: integer; + + +begin + for i:=1 to 50 do begin + Sound(800); + Delay(1); + Sound(1000); + Delay(1); + Sound(1200); + Delay(1); + end; + NoSound; +end. \ No newline at end of file diff --git a/TYPEFILE.PAS b/TYPEFILE.PAS new file mode 100644 index 0000000..16e10ce --- /dev/null +++ b/TYPEFILE.PAS @@ -0,0 +1,21 @@ +program TypeTest; + +type TTest=record + x,y: integer; + bla: string[20]; + end; + +var Test: TTest; + f: file of TTest; + +begin + Assign(f,'test.dat'); + Rewrite(f); + Test.x := 5; + Test.y := 10; + Test.bla := 'This is only a test!!'; + Write(f, Test); + + + +end. diff --git a/Terranet/AUSWERT.HTM b/Terranet/AUSWERT.HTM new file mode 100644 index 0000000..2340930 --- /dev/null +++ b/Terranet/AUSWERT.HTM @@ -0,0 +1,156 @@ +"Nr.","Nickname","Statements","gesagte Wrter""durchschn. Wrterzahl / Statement","benutzte Smileys","actions" +"1","Das Auge","23","118","5.13","0","0" +"2","martina (experte)","34","269","7.91","0","0" +"3","WC","0","0","0.00","0","0" +"4","Jojo","1","7","7.00","0","0" +"5","ronald(Experte)","46","313","6.80","1","0" +"6","IN@Cafe Mainz","0","0","0.00","0","0" +"7","IN@Cafe 2 Mainz","0","0","0.00","0","0" +"8","Tammo","23","166","7.22","0","0" +"9","RoboCop","0","0","0.00","0","0" +"10","work3@Cafe Mainz","1","8","8.00","0","0" +"11","Robi","4","24","6.00","0","0" +"12","Walter M.","20","128","6.40","0","0" +"13","Kiki","12","99","8.25","0","0" +"14","Jrgen","2","17","8.50","0","0" +"15","Superman","3","21","7.00","0","0" +"16","Frank","1","8","8.00","0","0" +"17","terranetcafe","44","422","9.59","0","0" +"18","carlotta","8","35","4.38","0","0" +"19","philipp","30","229","7.63","0","0" +"20","Lorchi","0","0","0.00","0","0" +"21","hobbes","2","7","3.50","0","0" +"22","Beate","18","130","7.22","1","0" +"23","mr. croley","1","10","10.00","0","0" +"24","Fank","0","0","0.00","0","0" +"25","TL","1","9","9.00","0","0" +"26","Ralph In@Caf Mainz","2","10","5.00","0","0" +"27","Ric","4","30","7.50","0","0" +"28","Ogawoga","0","0","0.00","0","0" +"29","semikolon","2","21","10.50","0","0" +"30","Sren","34","156","4.59","0","0" +"31","Lorchi (Experte)","9","94","10.44","0","0" +"32","Martin","0","0","0.00","0","0" +"33","D-FENS","0","0","0.00","0","0" +"34","FReaKER","25","350","14.00","0","0" +"35","duke","1","2","2.00","0","0" +"36","Kent","6","57","9.50","0","0" +"37","TMD","0","0","0.00","0","0" +"38","SmokyII","0","0","0.00","0","0" +"39","mr. crowley","7","52","7.43","0","0" +"40","Elroy","1","8","8.00","0","0" +"41","Joe","0","0","0.00","0","0" +"42","Ralph","20","137","6.85","0","0" +"43","send to Moderator: Beate","5","35","7.00","0","0" +"44","Smoky","1","4","4.00","0","0" +"45","Kai","22","179","8.14","3","0" +"46","LonelyOne","1","7","7.00","0","0" +"47","Taal","1","5","5.00","0","0" +"48","arschbacke","2","3","1.50","0","0" +"49","Spiky","3","29","9.67","0","0" +"50","Lonely1","0","0","0.00","0","0" +"51","wonderer","0","0","0.00","0","0" +"52","Thorsten","1","7","7.00","0","0" +"53","Andreas M","4","19","4.75","0","0" +"54","c2","0","0","0.00","0","0" +"55","koforce","8","52","6.50","0","0" +"56","roger rabbit","0","0","0.00","0","0" +"57","pluto","0","0","0.00","0","0" +"58","Felitsche","6","39","6.50","0","0" +"59","salco","0","0","0.00","0","0" +"60","charly","1","7","7.00","0","0" +"61","Gabilein","2","18","9.00","0","0" +"62","meter","3","9","3.00","0","0" +"63","Klaas aus Mainz","1","4","4.00","0","0" +"64","send to Moderator: Das Auge","1","6","6.00","0","0" +"65","Koze","0","0","0.00","0","0" +"66","Peter","8","63","7.88","0","0" +"67","Berndd","0","0","0.00","0","0" +"68","maldoror","0","0","0.00","0","0" +"69","girl15","24","165","6.88","0","1" +"70","Fouche","0","0","0.00","0","0" +"71","penelope","1","17","17.00","0","0" +"72","pepe","1","10","10.00","0","0" +"73","Derkologe","0","0","0.00","0","0" +"74","Harvey","0","0","0.00","0","0" +"75","obelix","0","0","0.00","0","0" +"76","DaKilla","1","7","7.00","0","0" +"77","fliege","0","0","0.00","0","0" +"78","TiPPeR","1","10","10.00","0","0" +"79","Andreas","1","19","19.00","0","0" +"80","Stratton","0","0","0.00","0","0" +"81","link","1","1","1.00","0","0" +"82","Jan","0","0","0.00","0","0" +"83","Tommy","0","0","0.00","0","0" +"84","Phantom","1","2","2.00","0","0" +"85","Teufel","1","6","6.00","0","0" +"86","Don Dan","9","83","9.22","2","0" +"87","Lancelot","2","13","6.50","0","0" +"88","Otto","0","0","0.00","0","0" +"89","rollsplitt","7","84","12.00","0","0" +"90","Jrgen S","3","15","5.00","0","0" +"91","hansjrg","3","28","9.33","0","0" +"92","send to Moderator: Tammo","3","34","11.33","0","0" +"93","Talimee","0","0","0.00","0","0" +"94","Bobby","0","0","0.00","0","0" +"95","overflyer","1","5","5.00","0","0" +"96","Dragon","1","11","11.00","0","0" +"97","Anna","7","44","6.29","0","0" +"98","Volker","2","16","8.00","0","0" +"99","mirj","1","7","7.00","0","0" +"100","Lonely","0","0","0.00","0","0" +"101","Christie","0","0","0.00","0","0" +"102","merlimo","0","0","0.00","0","0" +"103","Blu","0","0","0.00","0","0" +"104","Nichtbertreiber","3","30","10.00","0","0" +"105","TimSEbonn","1","2","2.00","0","0" +"106","Monty","1","15","15.00","0","0" +"107","gnom","0","0","0.00","0","0" +"108","Michael S","1","8","8.00","0","0" +"109","Ravem","0","0","0.00","0","0" +"110","Tom","1","15","15.00","0","0" +"111","send to Moderator: Ravem","1","3","3.00","0","0" +"112","mike","0","0","0.00","0","0" +"113","Franz","2","17","8.50","0","0" +"114","fred","0","0","0.00","0","0" +"115","arielle","0","0","0.00","0","0" +"116","Woopy","5","24","4.80","0","0" +"117","Uli","6","22","3.67","0","0" +"118","Trdie","2","2","1.00","0","0" +"119","MW","0","0","0.00","0","0" +"120","HHL","0","0","0.00","0","0" +"121","madddin","0","0","0.00","0","0" +"122","marcel","3","23","7.67","0","0" +"123","Steffen","2","4","2.00","0","0" +"124","ThaRoon","1","1","1.00","0","0" +"125","mark","0","0","0.00","0","0" +"126","eniac","3","26","8.67","0","0" +"127","Footix","3","31","10.33","0","0" +"128","Adi","3","28","9.33","1","0" +"129","Magic7","0","0","0.00","0","0" +"130","Duke","10","92","9.20","0","0" +"131","Hugo","0","0","0.00","0","0" +"132","maiden","0","0","0.00","0","0" +"133","pp","0","0","0.00","0","0" +"134","ich","3","29","9.67","0","0" +"135","ari","3","8","2.67","0","0" +"136","Gekko","2","11","5.50","0","0" +"137","Pitty","8","77","9.63","0","0" +"138","T|m","0","0","0.00","0","0" +"139","pepsi","1","5","5.00","0","0" +"140","Frankii","0","0","0.00","0","0" +"141","------","0","0","0.00","0","0" +"142","woluk","0","0","0.00","0","0" +"143","ghs","0","0","0.00","0","0" +"144","Anne-Sophie","6","30","5.00","0","0" +"145","Billy","0","0","0.00","0","0" +"146","Wc","0","0","0.00","0","0" +"147","Pitty+","0","0","0.00","0","0" +"148","Six","0","0","0.00","0","0" +"149","Hax","1","2","2.00","0","0" +"150","j","0","0","0.00","0","0" +"151","sindex","0","0","0.00","0","0" +"152","GUIGOU","3","6","2.00","0","0" +"","Gesamt:","601","4511","7.51","8","1" + + diff --git a/Terranet/NAMES.DAT b/Terranet/NAMES.DAT new file mode 100644 index 0000000..48f3214 --- /dev/null +++ b/Terranet/NAMES.DAT @@ -0,0 +1,152 @@ +Das Auge +martina (experte) +WC +Jojo +ronald(Experte) +IN@Cafe Mainz +IN@Cafe 2 Mainz +Tammo +RoboCop +work3@Cafe Mainz +Robi +Walter M. +Kiki +Jürgen +Superman +Frank +terranetcafe +carlotta +philipp +Lorchi +hobbes +Beate +mr. croley +Fank +TL +Ralph In@Café Mainz +Ric +Ogawoga +semikolon +Sören +Lorchi (Experte) +Martin +D-FENS +FReaKER +duke +Kent +TMD +SmokyII +mr. crowley +Elroy +Joe +Ralph +send to Moderator: Beate +Smoky +Kai +LonelyOne +Taal +arschbacke +Spiky +Lonely1 +wonderer +Thorsten +Andreas M +c2 +ökoforce +roger rabbit +pluto +Felitsche +salco +charly +Gabilein +meter +Klaas aus Mainz +send to Moderator: Das Auge +Koze +Peter +Berndd +maldoror +girl15 +Fouche +penelope +pepe +DerÖkologe +Harvey +obelix +DaKilla +fliege +TiPPeR +Andreas +Stratton +link +Jan +Tommy +Phantom +Teufel +Don Dan +Lancelot +Otto +rollsplitt +Jürgen S +hansjörg +send to Moderator: Tammo +Talimee +Bobby +overflyer +Dragon +Anna +Volker +mirj +Lonely +Christie +merlimo +Blu +Nichtübertreiber +TimSEbonn +Monty +gnom +Michael S +Ravem +Tom +send to Moderator: Ravem +mike +Franz +fred +arielle +Woopy +Uli +Tördie +MW +HHL +madddin +marcel +Steffen +ThaRoon +mark +eniac +Footix +Adi +Magic7 +Duke +Hugo +maiden +pp +ich +ari +Gekko +Pitty +T|m +pepsi +Frankii +------ +woluk +ghs +Anne-Sophie +Billy +Wc +Pitty+ +Six +Hax +j +sindex +GUIGOU diff --git a/Terranet/ORIGINAL.STA b/Terranet/ORIGINAL.STA new file mode 100644 index 0000000..f08022e --- /dev/null +++ b/Terranet/ORIGINAL.STA @@ -0,0 +1,115 @@ + + +