Retro listauksia lehdestä...
-
Vanhoja lehtiä lukiessa löysin numerosta 5/88 ohjelman nimeltä Examon, ja siitä lukiessa tuli sellainen fiilis, että tätä ohjelmaahan on oikesti mietitty! Listauksesta joku on vieläpä saanut 1500mk, joten voisihan tätä ohjelmaa vaikka kokeillakin... Ensin piti tietysti naputella 6-7/88 lehdestä tarkastaja... Jotta teidän ei tarvitsisi, niin tässä tarkastaja MSX:lle.
[code]
1 DATA D908215EF506007E23B72809FE20
2 DATA 28F780074718F2219A03CDDF0778
3 DATA 0F0F0F0FCD0000D39878CD0000D3
4 DATA 9808D9C9E60FC630FE3AD8C607C9
5 '
6 DATA 3EC33220FF2A48FC2221FFE51139
7 DATA 00192248FC3600232276F6E1112E
8 DATA 0019545D01F3FF097323722B0106
9 DATA 0009732372C90000000000000000
10 OS=256PEEK(-951)+PEEK(-952)
11 FOR A=0 TO 7:READ A$
12 FOR B=0 TO 27 STEP 2
13 C=VAL("&H"+MID$(A$,B+1,2))
14 POKE OS+14A+B/2,C:D=D+C
15 NEXT:NEXT:KEY 1,""
16 IF D<>10194 THEN PRINT"Datoissa virhe":END
17 SCREEN 0:PRINT "Tarkastaja OK"
18 DEFUSR0=OS+56:A=USR(0):NEW
[/code]Bonuksena tässä vielä Spectrumille:
[code]
1 LET sum=0: FOR i=65015 TO 65015+145
2 READ a: POKE i,a: LET sum=sum+a
3 NEXT i
4 IF sum<>17570 THEN PRINT "virhe": STOP
5 SAVE "TARKASTAJA"CODE 65015, 146
10 DATA 62, 253, 237,71,237,94, 201,13,1,254
11 DATA 255,243, 245,197, 229,33, 254, 253,70
12 DATA 58,8,92,119,254,13,32,6,120, 254,13
13 DATA 196, 29, 254, 225, 193, 241,251,201,42
14 DATA 89,92,126, 254,32,32,3,35,24,248,14
15 DATA 58,185, 208, 254, 48,216,35,126,185
16 DATA 56, 251,1,0,0,126,254,58,40,18,254
17 DATA 13,40,17,254, 234, 40,13,4,197, 79
18 DATA 175,129,16,253,193,129,79,35,24
19 DATA 230, 213, 205,94, 254,62,191,219,254
20 DATA 15, 48, 249, 209, 201,17,254,80,121,15
21 DATA 15,15,15, 205, 106, 254,121,230,15
22 DATA 198,144,39,206,64,39,213,111,38,0
23 DATA 41,41,41,124,198,60,103,6,8,126, 47
24 DATA 18,35,20,16,249,209,19,201
[/code]Sitten pääsin varsinaisen Examon-ohjelmalistauksen kimppuun... Tässä se on valmiiksi naputeltuna:
[code]
10 REM EXAMON (C) MJM 1987
20 CLEAR200,&HC000
30 CLS:KEY OFF:PRINT"odota..."
40 AD=&HC000:E=258:GOSUB 130
50 AD=&HF975:E=8:GOSUB 130
60 PRINT"Tallennus:"
70 PRINT"Paina jotain näppäintä"
80 IFINKEY$=""THEN80
90 PRINT" -- tallennus -- "
100 BSAVE"EXAMON",&HF975,&HF9ED
110 BSAVE"EMO",&HC000,&HCE27
120 DEFUSR=&HF97B:A=USR(0):END
130 FOR A=0 TO E:READ A$
140 FOR B=0 TO 27 STEP 2
150 C=VAL("&H"+MID$(A$,B+1,2))
160 D=AD+14*A+B/2:POKE D,C
170 NEXT:NEXT:RETURN
180 DATA97329797323404C33937ED7B40FA
190 DATAF1C3A036ED7340FAE9C5CDB53AC1
200 DATAC9E52A283F7ECD553A2803324B3F
210 DATAE1C90945582041462C4146270803
220 DATA455858D90343504C2F0353434637
230 DATA035252411F03525244ED67045245
240 DATA5449ED4D04494E4452EDBA044F55
250 DATA5444EDAB044F544952EDB3024449
260 DATAF304494D2031ED56034C4444EDA8
270 DATA044C444452EDB8034C4449EDA004
280 DATA4C444952EDB0034E4547ED440352
290 DATA4C411704525243410F045245544E
300 DATAED4503494E49EDA2044F544452ED
310 DATABB034E4F5000024549FB04494D20
320 DATA32ED5E03435044EDA90443504452
330 DATAEDB903435049EDA10443504952ED
340 DATAB10344414127034343463F04524C
350 DATA43410703524C44ED6F03494E44ED
360 DATAAA04494E4952EDB2044F555449ED
370 DATAA30448414C547604494D2030ED46
380 DATA084C442053502C484CF9074A5020
390 DATA28484C29E903524554C903534554
400 DATA81CBC00352455381CB8003424954
410 DATA81CB400353524C10CB3803534C4C
420 DATA10CB300353524110CB2803534C41
430 DATA10CB2002525210CB1802524C10CB
440 DATA100352524310CB0803524C4310CB
450 DATA00024C444EED57E4ED4711404B3A
460 DATAB432CB2ABC224F0A1806F4022901
470 DATA2BED4BB2ED430352535480C70450
480 DATA55534830C503504F5030C1024558
490 DATADCE3034445431005200B03494E43
500 DATA1004200302494E15ED404ADB034F
510 DATA555451ED41A4D302435010B880FE
520 DATA024F5210B080F603584F5210A880
530 DATAEE03414E4410A080E60353424341
540 DATA9848DEC2ED4203535542109080D6
550 DATA03414443418848CEC2ED4A044341
560 DATA4C4C90CD79C403414444418048C6
570 DATAC209024A5090C379C20352455470
580 DATAC0024A5280189018682069200444
590 DATA4A4E5A8010901000A00000B00000
600 DATA8000009000000000014110074000
610 DATA0142100001431001601870180144
620 DATA1002014510030241463030800002
630 DATA4243200030008000024445201030
640 DATA10D0088000025350203003284329
650 DATA5000015A60087008024E5A600070
660 DATA00024E436010701002504F702002
670 DATA5045702801507030014D70380428
680 DATA535029D0000149E0000152E00804
690 DATA28424329F000A0000428444529F0
700 DATA10A0000428484C29100601481004
710 DATA014C100502484C20203020C00000
720 DATA3020C00000FFFFFF3E0DCD6C0821
730 DATAF1C322B1FF21DE3022B3FF1E0121
740 DATA363E0615CDD4301E01CD4137CDB1
750 DATA00CD9B3721003F012800CD493528
760 DATAEACD91353021CDA734DAA036EB11
770 DATA2134480604AF121B10FCEDB0CD5D
780 DATA35C900000000CD793518C40B0B0B
790 DATAED532E3FCD543528B87EFE2D2819
800 DATACDD334DAA0362A2E3F1A77231310
810 DATAFAEBCD3935C3F0330000000B23CD
820 DATA9135DAA036D5FDE10B0B0B0BCD54
830 DATA35DD21B73EDD7EFFBE280E0604DD
840 DATA2310FCA720F103DD212B36230BCD
850 DATA5435280BCD91353006CDD334DAA0
860 DATA362A2E3FCDCC35CD2D37D5FD54FD
870 DATA5DE7D128F138EFCDCC37C3EB3323
880 DATA7E2BFE20C2273ED17EF523CD5435
890 DATAC4D334F121DB3E4F7EB9280A2323
900 DATA2323A720F5C3A03623CDE630C3EB
910 DATA337E23410505FE27EBC800EB0600
920 DATAFE5B201306FF11503F04C5CD4E37
930 DATAC1121330F61E50A7C90B2BDDE5FD
940 DATAE5CD273EFDE1DDE1C9CDA8002818
950 DATAC312379732253FEBC3926E973225
960 DATA3FEBC3C66ECDA8002004F1C3A036
970 DATA1ACDA5001310F9C93EC932A4FDC9
980 DATA3EFFC3F3007A531E01CD7D377ACD
990 DATA7D373E20C3A2003E2011273FEBCD
1000 DATAC63703EB3E20CDC037002B03C9F3
1010 DATAED73343F31363FFDE1DDE1E1D1C1
1020 DATAF1D908E1D1C1F1ED7B343FFBC9F3
1030 DATAED73343F314A3FF5C5D5E5D908F5
1040 DATAC5D5E5DDE5FDE518E2C5E5CD4E37
1050 DATA380B57CD4E3738055FC1C1A7C9E1
1060 DATAC1C9F5D5E5FDE5DDE5E5D5C5F521
1070 DATA963E7ECDA20023FE3A20F7D1CD39
1080 DATA3597BE20EFCDCC37E1D1F1C9DDE9
1090 DATACDB736DDE5FDE5CD2B3DFDE1DDE1
1100 DATAC9EDA0C9C51B48CD0C38C1EBCCB1
1110 DATA36EB1323C91ABE2805EBCDB136EB
1120 DATA2313C9EBCDB1363E5BCDA200EBD5
1130 DATAE51101000608CD323A21B13E0603
1140 DATACD39370608E1D17EFE2030023E1C
1150 DATACDA2002310F3C3CC37E5EBCDB136
1160 DATAEBCDCE352805060221B43E1E01CD
1170 DATA3937E17ECD553A20143E1DCDA200
1180 DATACDA200E5237E23CDC436EBCDB136
1190 DATAE1CDCC37183AE5D597324B3FCDCE
1200 DATA35D1E1CD9A3608C03A4B3FA7C8E5
1210 DATA2B462B4EE52A2E3FE509A7ED52C1
1220 DATAE5A7ED42C1E1380CE5FDE5E1ED42
1230 DATAE13803712370E1C908856FD024C9
1240 DATA3E3FCDA200CDA200CDCC37CDC000
1250 DATAC3F033D5CD3935D1C911603F0104
1260 DATA00ED53283FEDB0C94F0600CB7F20
1270 DATA0209C9BD443F4FED42C9C5D51A77
1280 DATA231310FAD1C1C91A4E7779122313
1290 DATAC9DD21DD35E7D0E5FDE500E1C1C5
1300 DATA19A7ED42EBE1DD21FF36C9FD7E00
1310 DATA121BFD2BC9FE80CB7C20013FD812
1320 DATA1BC9E5F521A4FD3EC300772336A5
1330 DATA233600F1E1C9CD5D35CDA635C379
1340 DATA35CDB700D2BA00F1C3EB3300007E
1350 DATACD433A2310F9C9214B3E0609CD39
1360 DATA373E0DC3A2000100027ECD6F37D8
1370 DATACB21CB21CB21CB21FE413802C609
1380 DATAE60FB14F2310E679373FC9FE30D8
1390 DATAFE473FD8FE3A3FD0FE41C9F5E6F0
1400 DATA0F0F0F0FFE0A3802C607C630CD43
1410 DATA3AF1E60FFE0A3802C607C3413A3A
1420 DATADCF3D60226000707076F4F060009
1430 DATA0909090E99ED6900ED6121003F06
1440 DATA280DEDA20020FBC9EDA1C0E018FA
1450 DATAEDA9C0E018FA3E0ACDA2003E0DC3
1460 DATAA20013835F3E008A57C9081ACDF9
1470 DATA3720011313C9081ACD0538C0131A
1480 DATACDF9372001131318F0FEEDC8FEFD
1490 DATAC8FEDDC8FECBC90000FE10D8AFC9
1500 DATAE5D5412B13231ABE200210F8D1E1
1510 DATA0600C9081AB9CC0C38F51ACDD637
1520 DATAF1C808A7CCDE37FE01CCE837FE02
1530 DATACCE837FD7D9320E0FD7C9220DB08
1540 DATAFE02C0111A337E23FE2828071313
1550 DATA131313132BCD093D0878FE02C879
1560 DATACD193E08D8CD4E37D832293F1313
1570 DATA13C900000000FD4E00790601CDF9
1580 DATA37200404FD4E01CDD438282DCDF7
1590 DATA382812CDC638C03A283FFE08301A
1600 DATA070707672E00C93A283FFE39300C
1610 DATAF5E6072006F184672E00C9F1E137
1620 DATAC97DFE10F52801EBCB24CB24CB24
1630 DATAF1C8EBC9FD7E00FECBC0FD7E01FE
1640 DATA40D8AFC9FD7E00FEED2006FD7E01
1650 DATAE686C9FE40300BE6C7FE06C8FE05
1660 DATAC8FE04C9CB7FC900000000FD7E00
1670 DATAFEC7D82FE607C97DFE803FD0FEB1
1680 DATAC9110031FD210432AFCD1D38CAB5
1690 DATA39E5C53E20EDB1E2B139D1E3C5EB
1700 DATA37ED423E01BDD2B139EB424B1104
1710 DATA32FD211933CD1D382075C1E1D5D9
1720 DATAC1D9E53E2CEDB1D1F5C5E520012B
1730 DATA373FED52444DEB112833FD21C733
1740 DATA3E02CD143DD5D9E1D9E1C1112633
1750 DATAF120081128333E02CD143DD5D9D1
1760 DATAD5E50AE6F0BE200E0ACB27CB27CB
1770 DATA27CB27EBBEEB283323237ECD0538
1780 DATA28E4E113131ACD053828DAD1030A
1790 DATACDF937200103030ACD053828C918
1800 DATA02E1E137C90006011ACDF937373F
1810 DATAC004C9F1F103C5FDE1E5EB5E2356
1820 DATAE17E23666F0601CD7438798482D8
1830 DATA4FCD01393805EBCD0139EBF5212A
1840 DATA3F3E01B83005FD7E00772371112A
1850 DATA3FF1D0002304E61020053A283F77
1860 DATAC979CD553A201BED5B2E3FE52A28
1870 DATA3F7D6C671313A7ED52D17CED44B8
1880 DATA3FD87DC307373A293F7723043A28
1890 DATA3F77A7C97ECD7D373E20CB42C4A2
1900 DATA002310F2C9C630CB43C2A200CB4B
1910 DATA2006DD7700DD23C97723C9FE10D8
1920 DATAFE39D0E607C997C5E5B028034806
1930 DATA003E29EDB120097EFE2C2004237E
1940 DATAFE28E1C1C9CD5E3AC2093937C911
1950 DATA00310629ED53303F1A08973C08CD
1960 DATAD6372A283F1ABEF5CDF937200A13
1970 DATA083C08F120062318EEF128041310
1980 DATAD9C92A303F4623AFC9111933061F
1990 DATAED53323F1ACDD6371A13BC20031A
2000 DATABDC8131ACD053828F110E7C91104
2010 DATA32FD2A283F0621ED53303F1ACDD6
2020 DATA37D5131A08973C082A283FCDF937
2030 DATA200813083C08BE201823EB1A965F
2040 DATAEBFE40300EFE083815E607C4D438
2050 DATAC4C638280BE1131ACD053828CA10
2060 DATAC0C90E00CDD43820020E01FDE3FD
2070 DATA23CDD4383E0020023E01FD2BFDE3
2080 DATAEBE3EBA920591AE6F067CD123E20
2090 DATA054D2E0018170E00CDD43820107D
2100 DATAE6074FCB3DCB3DCB3DCB21CB21CB
2110 DATA21D5C5CDB53AC1D1202BDD2A323F
2120 DATA1AE60F070707CDD23DCDD4382006
2130 DATACB3DCB3DCB3DCDC63820047DE607
2140 DATA6FCDF73820022E00CDEB30D1C214
2150 DATA3B11003F2A303F794E060023EDB0
2160 DATAEB3620234FCDF738283ECDC63820
2170 DATA0C79E6380F0F0FF63077231814DD
2180 DATA7DFE283005DCF83B3009DDE5D1EB
2190 DATA4E23EDB0EB3A323FFE25C8362C23
2200 DATAFE28DAF83BEB2A323F4E23EDB0AF
2210 DATAEBC9791E02CD7D37AFC91E024F0C
2220 DATAFE25D0CB592803362823FD7E00CD
2230 DATAF9372002FD23CB41D5002809FD7E
2240 DATA02083C08CD7D37FD7E01083C08CD
2250 DATA7D37D1373FCB59C8362923AFC9A7
2260 DATAC8FEC0D0FE40D8CB6FC8CB77C9CD
2270 DATA813AC8CDD43AC0452E00C94FA77B
2280 DATA11893E6228090604EB5EEB771310
2290 DATAF9790781C68D6F4E237E236E11AF
2300 DATA330600EDB0325A399712C90000E5
2310 DATAC53E20EDB12805C1E1C3793AAF08
2320 DATA413E5816DDBE280B3C16FDBE2805
2330 DATA2310F03E005F202A3E0123477EFE
2340 DATA2B2804FE2D201C7EFE2DC5F523CD
2350 DATA4E372B363E2B363E2B363EF179C1
2360 DATA2003ED4423080478D5CD013ED1C1
2370 DATAE1D508F5CD793A08F108E1D87DA7
2380 DATAC81AFEED37C8EB7A11263F121348
2390 DATAC50600EDB0C10408280A21283F5E
2400 DATA7723730418073A273FFECB37C81E
2410 DATA26AFC97EFE27C24E37237E4E23C9
2420 DATA79FE01CA1D38E5CD1D38E1C0D5C5
2430 DATAE5CD2E3EE1C1D1BFC9ED73343F2A
2440 DATA283F7EFEDD11580028051CFEFD20
2450 DATA5A237EFEEDCAC83D1601FE262804
2460 DATAFE2E2003A71840FECB2804FE3620
2470 DATA05CDE33D23BFF5FE36280E7EE607
2480 DATAFE0628077EE6B8FE30201D14237E
2490 DATA0E2BCB7F28040E2DED4421703E71
2500 DATA23D51E02CD7D37D13E021806F128
2510 DATA32F53E01D95FD97AF5CD013EF1A7
2520 DATA28512A283F2322283FCDF33D201A
2530 DATAD9088308D9F12003CDE33DE52170
2540 DATA3E7423742374E1AFC9CDE33DED7B
2550 DATA343F3E0108F6FFC9076769E6D0FE
2560 DATA902003CDF1307CC9000000E5F52A
2570 DATA283F23234E237E712B77F1E1C9CD
2580 DATA413CC0CD5E3A2802BFC9F6FFC921
2590 DATA484CA728022C6322F33122FB31C3
2600 DATA4D3CCDD53DC3333C003A4C3F0000
2610 DATA3C324C3F7932283FC997324C3FC3
2620 DATA793C3A4C3FA7C0C34A380A0A0D20
2630 DATA2A2A2A204558414D4F4E202A2A2A
2640 DATA200A0A0D53656C76842E0D0A0428
2650 DATA484C29100601481004014C100502
2660 DATA484C20203020C000072849583E3E
2670 DATA3E291006025848100402584C1005
2680 DATA02495820203020C0006F777C8218
2690 DATAC7541DCC6C1BCA5B2041463A2042
2700 DATA433A2044453A0A0D20484C3A2049
2710 DATA583A2049593A005D20273F3F53C3
2720 DATAE73645C3E03556C3EF355BC3FB35
2730 DATA27C3FB3555C3603654C3D43658C3
2740 DATADF36000000000052C3243750C305
2750 DATA354DC334354EC32E354BC31D354C
2760 DATAC3153553C30D3500000000000000
2770 DATA21E7F9CDC66EF3DBA83218FAE6FC
2780 DATAD3A82100007E3C77BE2805DBA83C
2790 DATA18F0DBA83219FA3A18FAD3A85E3A
2800 DATA19FAD3A87323CB7428EFFB2100C0
2810 DATA11D43001260EEDB03A19FAD3A8CD
2820 DATAD0333A18FAD3A83EC332B1FF21CE
2830 DATAF922B2FFC92AB7F6237EFE40C023
2840 DATA7EFE45C0237EFE4DC0E1CDB5F9C3
2850 DATA394022454D4F2200000000000000
[/code]Nyt varmaan mietityttää, että "Noh, kannattiko?" ... ja vastaus lienee, että ei se kai vissiin ihan... Vaikka ohjelma on aikanaan varmasti ollut varsinkin näppärä erityisesti kokoonsa nähden, niin eihän se tietenkään voi 2000-luvun vaatimuksia täytää... Ihan kiva oli kokeilla, mutta vaiva/hyötysuhde jäi kyllä varsin heikoksi, siksi jaankin listauksen täällä, jotta säästän joltain muulta ehkä vaivan.
-
Vielä kun malttaisit kertoa mitä tuo Examon tekee...
-
Kyseessä simppeli konekielimonitori, jolla onnistuu pienimuotoinen muistissa olevien ohjelmien mulkoilu ja muokkaus.