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+14
    A+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.