Page 142

inseriti e presenta la possibilità di rilocare la routine (in questo caso la chiamata dovrà essere PRINT USR <origine> ,.... ). Una volta caricato il codice lo si deve salvare su nastro con SA VE "delete" CODE 64588,41, in modo da poterlo poi caricare quando serve.

Cali Quando si utilizzano delle routine in linguaggio macchina, specialmente in fase di prova, è spesso necessario inizializzare i registri della CPU, ed è altrettanto utile vedere i loro contenuti al rientro: questa routine permette proprio di effettuare tali

1 DEF FN Cla$)=CODE a$-~8-7*( CO()E .~$ >6~) 2 DEF FN bla$)=FN cla$)*16tFN ': (è!

$

(2)

)

3 DEF FN wlè!$)=256*FN b (.~ $ (:3

N

TO

REM ********************** REM * * REM * CALL * REM * * REM ********************** F;:E 1'1 INPUT "IndirizZo iniziaLe ','

".; ne'.\1

è!

$ (3

T l]

):

N E XT

i:

I F

su m - F N ~) 1

a$)=0 THEN GO TO 1090 1115 LET L=PEEK 23639t256*PEEK 2 36~Otl: LET Line=256*PEEK LtPEEK ILtl)-l 1120 PRINT "el-rore in Linea ".;Li ne: :5TOP 1200 PEAO a $ : IF a $="" THEN BEEP 1 ,0: PR INT "Co d ice cè!l" i ca t (o -3 " ;nel!.I: STOP 1205 IF .;1 $="" THEN GO TO 1200 1207 LET a=FN I)) (a$): LET -3$=a$(5 TI]

)

1210 RRNOOMIZE PEEK Inewta)t256* PEEI<.(ne I.~tè!t1) tde: PO~~E neI~I tè!t1 .. PEEK 23671: POKE newtè!,PEEK 2367 0: GO TO 1205 . 8';":18 ~,TOP 8999 F;:Et-l o:!.:it.i .:.s·:io:!ecima i ':1000ORTA "FO:36~700E7FEF52028FD3 ~002193FOE5CD19FOC5CD2~FD18FAE7C 05~FOCDA22D 12B':I" ':1001['RTA "FD3~~ 7C90FFE00280AFE3 A2B06FE2C28EBCF08F1F07E~7FE072B0 F30072100000D1E" 9002 OATA "E53C18F3E13DFE0720FAD DE1D1C1E1F1E37DE1C9CDFB2~FDC8017 6C0CDF1287814El" ':;j003 ORTA "8 1282E lAFE23202'321000 00B137881281A1AE6DFD610FE0A3802D 627FE1030110A88" 900~ DATA "2'32'32929856F30012418E 0~44DCD2B2DC9CF09C5FDE5DDE5D5C5E 5F5110BFD01100~; " 9005 OATA "020E,3E0DD7C50600CD3C2 0C13E20D73E23D7E1CDBDF010EA3E0DD 7C1C97CCDC20F65" 900E, ['RTA "FD7DF5Ee,F01F lF lF lFFE0 A3FCE3027D7F1E60FFE0A3FCE3027D7C '3~146~84C~20F53" '3007 [,RTA "~34~~549584959020F" 9199 DATA "" 9200 DATA "000D00110015001B009D0 0E;400BF" .. ""

142

(2)

)

:3 OEF FN wla$)=256*FN (a

$ 13 TI]· ) )

bla$)tF

10 F;:EM 20 REM ********************** 30 REM * * ~0 REM * DELETE * 50 REM * * 60 REM ********************** 70 J=;:EM 1000 INPUT "Indirizzo iniziè!Le 'i Il.: n e: 1010 INPUT "Cl.eal"','(s/n) ".;a$: IF a$="n" THEN GO TO 1070 1020 IF a$<)"s" THEN GO TO 1010 1050 CLEAR new-l: LET new=PEEK 2 3730t256*PEEK 23731tl 1070 LET d€=n€w-65~88: RESTORE 9 000: LET i=new 1090 RERD a $: IF a $="" THEN GO T l] 121210 1100 LET n=LEN a$/2-3: LET sum=0 1110 FOR i=i TO itn: POKE i ,FN b (è!$): LET sLlrll=sumtl='EE~\ i: LET è!$ =a$(3 TO ): NEXT i: IF sum-FN wl a$)=0 THEN GO TO 112190 1115 LET l=PEEK 236:39t256*PEEK 2 36~Otl: LET line=256*PEEK LtPEEK (Ltl)-l 1120 PFHNT "e l" ro 1- e: in Line: a ".;Li ne: :STOP 120121J=;:EAO a $ : IF è!$="" THEN BEEP 1 ,e: PR INT "Co d ice: cè!l" i ca t c' a " .; ne~): STOP 1205 IF .~$="" THEN GO TO 1200 1207 LET a =FN ~)1·:1 $): LET a $=a $ 15 1.1,1

1010 Il-lPIJT "C Lea r ','15..... rd "; a $: IF è!$="n" THEN GO TI] 1070 1020 IF .~$<)"S" THEN GO TO 1010 1050 CLEAR new-l: LET new=PEEK 2 3730t256*PEEK 23731tl 1070 LET de=ne:w-6~768: RE5TORE 9 000. LET i=nelAI 10':10REA O a$. IF a$="" THEN GO T o 1200 1100 LET n=LEN è!$/2-3: LET sum=0 1110 FOR i=i TO itn: POKE i,FN b la$): LET sum=sumtPEEK i: LET a$

=

c (a $

N b

10 ~:El'l

20 30 ~0 50 60 70 1000

l DEF FN cla$)=CI]DE a$-~B-7*1 CODE a$>6~) 2 OEF FN bla$)=FN cla$)*16tFN

bla$)tF

))

operazioni direttamente dal Basic, senza appesantire ulteriormente il programma in L.M. in fase di sviluppo. Naturalmente una routine del genere è utile se è abbastanza corta e semplice da usare, perché esistono anche dei programmi monitor in L.M. che svolgono funzioni

TO

)

1210 RRNDOMIZE PEEK Ine:wta)+256* PEEI<.(nel!J+atl) +de: PO~:~Enew+è!+l .. PEEK 23671: POKE ne:w+a,PEEK 2367 0: GO TO 1205 . ;3'39;::; :STOP 6'3 '3 '3 ~: Et-l 912100C'RTA "COE2FFC06E l':,IE5COE2FF2 3CD6E19D1C3eAAe" '312101 DATA "E51'3DFFE2C201eE7CDFB2 ~FDCB0176280871" '3002 DATA "e6CDA22D6069C'3CF190~1 C" '319'3DATA 9200 DRTA "00010008" .. "" Inviate i vostri programmi Alcuni lettori ci chiedono, nelle loro lettere. come sottoporre i loro programmi aMC. È semplicissimo: registrate i vostri lavori su cassetta o disco (se il programma è proprio molto corto può bastare il semplice lislalo: certo, la cassetta non guasta mai ... ). corredateli dell'opportuna documenlazione e spedite il tutto alla redazione. indicando magari sulla busta la rubrica interessata. Tutti i programmi che arrivano sono esaminati ed i migliori pubblicati. Purtroppo non possiamo restituire. per ragioni organizzative, il materiale che ci viene inviato, anche in caso di mancata pubblicazione. Ricordatevi che migliore è la documentazione, maggiore è la possibilità che il vostro lavoro venga pubblicato: spiegate quindi chiaramente il funzionamento del programma ed accludete lutto quello che pensate possa essere ulile (elenco variabili e via dicendo). Soprattutto non dimenlicaledi indicare il vostro nome ed indirizzo (qualche volta succede!) e, se possibile. il numero telefonico. Ah. quasi dimenticavamo: naturalmente è previsto un compenso. che varia normalmenle Ira le 30 e le 100.000 lire, a seconda della qualità del lavoro inviato.

MCmicrocomputer

n. 38 - febbraio

1985

Profile for ADPware

038 MCmicrocomputer  

Febbraio 1985

038 MCmicrocomputer  

Febbraio 1985

Profile for adpware
Advertisement