+ All Categories
Home > Documents > Ida tastiera Attributi video · ca riga ci saranno utili quei cinque ... 312- C9 69 C~lP lI$99...

Ida tastiera Attributi video · ca riga ci saranno utili quei cinque ... 312- C9 69 C~lP lI$99...

Date post: 06-Mar-2019
Category:
Upload: buicong
View: 213 times
Download: 0 times
Share this document with a friend
4
4cura di Va/ter Di Dio 2 Due programmi per chi programma Questa puntata del software Apple è riservata ai programmatori, sia a quelli che programmano in Basic, sia ai programmatori in linguaggio macchina. Infatti pre- sentiamo due utility abbastanza interessanti: la prima permetje di attivare gli attri- buti video (INVERSE, NORMA L, FLASH) direttamente da tastiera e dentro agli stessi programmi; la seconda serve invece per rilocare (il più possibile automatica- mente) un programma in linguaggio macchina di cui non si abbia il sorgente. Come si fa Il programma base è quello di figu- ra I, come si vede è lungo solo trenta byte ed inoltre può essere trasferito, e lavorare, in qualsiasi zona libera della memoria. Una volta determinata la posizione in cui si vuole il programma, si deve avvisare il DOS di modificare i puntatori alla routine di stampa in modo che guardino al nostro program- mino. Questo si ottiene scrivendo la parte bassa dell'indirizzo nella loca- Questo «miniprogramma» in lin- guaggio macchina permette di ottene- re tutti e tre gli attributi video diretta- mente dentro una stessa stringa di out- put, semplicemente battendo da tastie- ra Control I per INVERSE, Contro I N per NORMAL e Control F per FLASH. Inoltre, avendo la utility atti- vata, si possono vedere, già nel listato, le stampe che contengono parole in in- verso o in flash, esattamente come ver- ranno sullo schermo. La utility non fa altro che intercetta- re il carattere inviato al video e, se questo è uno dei tre carateri di con- trollo, attivare, tramite il contenuto della locazione 50, la relativa visualiz- zazione. Data l'esigua occupazione di memo- ria (e un po' come esercizio program- matorio) si è deciso di mettere il pro- gramma direttamente dentro a quello in Basic. 3) Battere: •80B < 300.31 DM < return )- questo sposta il programma in lin- guaggio macchina al posto dei puntini, dentro la REM. Se a questo punto tor- nate al Basic ed effettuate un LIST vi ritrovate con la seguente riga ... 10 ••••• REM - HLlN = SPEED = h DEL 2' - DIM = SPEED = DEL 2' - TEXT = SPE- ED = ? DEL 2'L OVERFLOW h Che altro non è che il codice del no- stro programma, interpretato come se fosse Basic. Per eliminare l'antiesteti- ca riga ci saranno utili quei cinque asterischi messi prima del REM. 4) Dal monitor battete: ·805:020202020 ·etrl C 5) tornate al Basic e riprovate il LIST. Della riga IO è rimasto solo il numero di riga (IO appunto). Scrivete ora la chiamata al DOS: 20 POKE 54,11 :POKE55,8:CALL 1002 o al proDOS 20 PRINT CHR$(4) "PR # ,A$80B •• Provate ora a scrivere un'altra riga in questo modo: 60 PRINT "Questo è < F> FLASH < N> e questo < I > INVERSO < N> •• Dove i caratteri tra parentesi acute vanno battuti con il tasto Control pre- muto; salvate il programma con un nome qualsiasi, poi date il RUN, se tutto è stato fatto con cura, la scritta deve avere la parola FLASH lampeg- giante e quella INVERSO in inverso. Se ora provate a listare il programma vedrete direttamente nel listato le scritte esattamente come appariranno in fase di RU . ota: Avere il programma diretta- mente dentro a quello Basic permette di caricare la routine insieme al pro- gramma stesso senza dover utilizzare file binari o liste di DATA, se però si carica un altro programma con la rou- tine ancora attiva, si rischia di inc/lio- dare il sistema (niente paura, basta il RESET), prima di cambiare program- ma conviene allora battere PR:Il:O op- pure premere djrpttamente il tasto RE- ' ....300- C9 8E CMP 1I$8E 0302- 00 C'5 BNE $0309 0.3',)4- 0'\9FF LDA lI$FF 031)6- 85 32 STA $32 03(;8- be, RTS 0309- C9 86 CMP 11$86 0308- D0 05 BNE $031.2 0300- A9 7F LDA #$7F 1~!:5(JF- 85 32 STA $'":"'") ->~ 0311- 60 RTS ')312- C9 69 C~lP lI$99 0314- DO 05 BNE $031B 0316- A9 :::;F LDA li$3F 0318- 85 32 STA $32 t:!.31A- Ol) RTS 031B- 4C FO FD JMP $FDFO Figura I: Rouline che permerre di geslire gli arrri- buli video (Flash ed Inverse) direrrame11fe all'inler- no delle sIringhe di slampa. zione 54, quella alta nella 55 e poi ef- fettuando una CALL alla routine 1002 che effettua il cosiddetto ricollega- mento del DOS. Per chi 'lavora sotto proDOS il comando è stato semplifi- cato in PR:Il:,A indirizzo (indirizzo che può anche essere scritto in esadecima- le se preceduto dal simbolo $). Per nascondere la routine dentro al programma che la utilizza occorre se- guire le seguenti istruzioni: 1) Scrivere una riga come la se- guente: 10····· REM . i puntini dopo il REM sono 30; AT- TENZIONE, non mettere lo spazio tra il REM e il primo puntino! 2) Caricare in memoria nella zona 300 il codice oggetto di figura I (quin- di CALL-151, poi 300:C9 8E DO 4C FO FD < return >). Attributi video da tastiera I 116 MCmicrocomputer n. 48 - gennaio 1986
Transcript

4cura di Va/ter Di Dio2

Due programmi per chi programmaQuesta puntata del software Apple è riservata ai programmatori, sia a quelli che

programmano in Basic, sia ai programmatori in linguaggio macchina. Infatti pre-sentiamo due utility abbastanza interessanti: la prima permetje di attivare gli attri-buti video (INVERSE, NORMA L, FLASH) direttamente da tastiera e dentro aglistessi programmi; la seconda serve invece per rilocare (il più possibile automatica-mente) un programma in linguaggio macchina di cui non si abbia il sorgente.

Come si faIl programma base è quello di figu-

ra I, come si vede è lungo solo trentabyte ed inoltre può essere trasferito, elavorare, in qualsiasi zona libera dellamemoria. Una volta determinata laposizione in cui si vuole il programma,si deve avvisare il DOS di modificare ipuntatori alla routine di stampa inmodo che guardino al nostro program-mino. Questo si ottiene scrivendo laparte bassa dell'indirizzo nella loca-

Questo «miniprogramma» in lin-guaggio macchina permette di ottene-re tutti e tre gli attributi video diretta-mente dentro una stessa stringa di out-put, semplicemente battendo da tastie-ra Control I per INVERSE, Contro I Nper NORMAL e Control F perFLASH. Inoltre, avendo la utility atti-vata, si possono vedere, già nel listato,le stampe che contengono parole in in-verso o in flash, esattamente come ver-ranno sullo schermo.

La utility non fa altro che intercetta-re il carattere inviato al video e, sequesto è uno dei tre carateri di con-trollo, attivare, tramite il contenutodella locazione 50, la relativa visualiz-zazione.

Data l'esigua occupazione di memo-ria (e un po' come esercizio program-matorio) si è deciso di mettere il pro-gramma direttamente dentro a quelloin Basic.

3) Battere:•80B < 300.31 DM < return )-

questo sposta il programma in lin-guaggio macchina al posto dei puntini,dentro la REM. Se a questo punto tor-nate al Basic ed effettuate un LIST viritrovate con la seguente riga ...

10 ••••• REM - HLlN = SPEED = h DEL 2'- DIM = SPEED = DEL 2' - TEXT = SPE-ED = ? DEL 2'L OVERFLOW h

Che altro non è che il codice del no-stro programma, interpretato come sefosse Basic. Per eliminare l'antiesteti-ca riga ci saranno utili quei cinqueasterischi messi prima del REM.

4) Dal monitor battete:·805:020202020·etrl C5) tornate al Basic e riprovate il

LIST. Della riga IO è rimasto solo ilnumero di riga (IO appunto). Scriveteora la chiamata al DOS:

20 POKE 54,11 :POKE55,8:CALL 1002o al proDOS

20 PRINT CHR$(4) "PR # ,A$80B ••Provate ora a scrivere un'altra riga

in questo modo:60 PRINT "Questo è < F> FLASH < N >

e questo < I > INVERSO < N > ••Dove i caratteri tra parentesi acute

vanno battuti con il tasto Control pre-muto; salvate il programma con unnome qualsiasi, poi date il RUN, setutto è stato fatto con cura, la scrittadeve avere la parola FLASH lampeg-giante e quella INVERSO in inverso.Se ora provate a listare il programmavedrete direttamente nel listato lescritte esattamente come apparirannoin fase di RU .

ota: Avere il programma diretta-mente dentro a quello Basic permettedi caricare la routine insieme al pro-gramma stesso senza dover utilizzarefile binari o liste di DATA, se però sicarica un altro programma con la rou-tine ancora attiva, si rischia di inc/lio-dare il sistema (niente paura, basta ilRESET), prima di cambiare program-ma conviene allora battere PR:Il:O op-pure premere djrpttamente il tasto RE-

'....•300- C9 8E CMP 1I$8E0302- 00 C'5 BNE $03090.3',)4- 0'\9FF LDA lI$FF031)6- 85 32 STA $3203(;8- be, RTS0309- C9 86 CMP 11$860308- D0 05 BNE $031.20300- A9 7F LDA #$7F1~!:5(JF- 85 32 STA $'":"'")->~

0311- 60 RTS')312- C9 69 C~lP lI$990314- DO 05 BNE $031B0316- A9 :::;F LDA li$3F0318- 85 32 STA $32t:!.31A- Ol) RTS031B- 4C FO FD JMP $FDFO

Figura I: Rouline che permerre di geslire gli arrri-buli video (Flash ed Inverse) direrrame11fe all'inler-no delle sIringhe di slampa.

zione 54, quella alta nella 55 e poi ef-fettuando una CALL alla routine 1002che effettua il cosiddetto ricollega-mento del DOS. Per chi 'lavora sottoproDOS il comando è stato semplifi-cato in PR:Il:,A indirizzo (indirizzo chepuò anche essere scritto in esadecima-le se preceduto dal simbolo $).

Per nascondere la routine dentro alprogramma che la utilizza occorre se-guire le seguenti istruzioni:

1) Scrivere una riga come la se-guente:10····· REM .i puntini dopo il REM sono 30; AT-TENZIONE, non mettere lo spaziotra il REM e il primo puntino!

2) Caricare in memoria nella zona300 il codice oggetto di figura I (quin-di CALL-151, poi 300:C9 8E DO4C FO FD < return >).

Attributi videoda tastieraI

116 MCmicrocomputer n. 48 - gennaio 1986

----------- .....softwareSET. Chi volesse lasciare la routine al-l'indirizzo $300 (dee. 768) deve cam-biare la riga 20 in:20 POKE 54,0:POKE 55,3:CALL 1002oppure, sotto proDOS, battere PR #,A$300 direttamente da tastiera o den-tro al programma.

Nel caso che la routine sia allocatafuori dall'area Basic, rimane attiva fi-no alla pressione del RESET o all'ese-cuzione di un comando PR #.

IRilocatoredi programmi in LM

Quando si scrive un programma inlinguaggio macchina occorre sapere inpartenza in quale zona della memoriaquesto dovrà risiedere; ciò perché, al-cune delle istruzioni del microproces-sore (ad esc::mpio i salti) fanno riferi-mento ad una precisa locazione di me-moria. Anche molte aree dati si trova-no in posizioni predeterminate e, sequalcuno le sposta, il programma nonè più in grado di trovarle.

Spesso, però, si presenta la necessitàdi trasferire'un programma in una zo-na di memoria diversa da quella percui era stato scritto (ad esempio per-ché si è allungato, oppure perché creaconflitti con le aree variabili del Ba-sic). Trasferire un programma in lin-guaggio macchina, da una posizionedi memoria ad un'altra, si dice «riloca-re», ed è il classico «lavoro da certosi-no». Infatti, con il disassemblato inmano, occorre trovare tutte le istruzio-ni con indirizzamento assoluto, cioètutte quelle che fanno riferimento aduna determinata locazione (ad esem-pio LDA $4?FF che legge il contenutodella locazione $45FF).

Le istruzioni ad indirizzamento as-soluto, o assoluto indicizzato, si rico-noscono dalle altre perché sono lun-ghe tre byte: il prill)o byte è il codicedel comando, gli altri due rappresenta-no l'indirizzo scritto «al contrario»(nell'esempib precedente FF 45).

Una volt~ individuate tutte le istru-zioni a tre byte, bisogna ancora vederequali sono quelle relative al blocco diprogramma che si sta spostando e qua-li, invece, sono relative al resto delprogramma, alla ROM del sistemaoperativo o ai soft-switch, e che, quin-di, non devono essere toccate. Trovatele istruzioni da cambiare, occorre an-cora calcolare, in base alla nuova posi-zione del p~ogramma, quale dovrà es-sere l'indirizzo definitivo e correggereopportunamente i due byte del campoindirizzo di ciascuna di queste istru-ZIOnI.

Tutto questo però, spesso, non ba-sta; infatti anche alcune istruzioni adue byte intervengono, indirettamente,nel processo di rilocazione, sono quel-

MCmicrocomputer n. 48 - gennaio 1986

le relative alla individuazione di tabel-le e punti di entrata particolari. Adesempio, se dobbiamo informare il si-stema operativo che il prossimo IN-PUT deve venire da una routine delprogramma, il codice relativo sarà:

LDA #PARTE ALTASTA INPUT ALTOLDA # PARTE BASSASTA INPUT BASSOJMP DOS INPUTOvvero, si scrive in due locazioni in

pagina zero il nuovo indirizzo e poi siavverte il DOS di andare a leggere lamodifica. Le due istruzioni LDA# NN sono istruzioni a due soli byte,e quindi non sembrerebbero da riloca-re, ma i valori Parte Alta e Parte Bassasono relativi al nuovo punto di entratadel programma e vanno, perciò, modi-ficati ugualmente.

0800- A9 FF 85 31 AO 00 20 ED0808- 08 20 F9

ti85 EB 84 EC

0810- AO 13 20 08 20 F9 080818- 85 ED 84 38 A5 ED E50820- EB 85 CE A5 EE ES EC 850828- CF 90 10 A5 CE 49 FF 690830- 00 SS CE A5 CF 49 FF 690838- 00 85 CF AO 26 20 ED 080840- 20 F9 08 85 FB 84 FC AO')848- 39 20 ED 08 20 F9 08 850850- FD 84 FE AO 4C 20 ED 08

I0858- 20 F9 08 38 E5 EB 85 F90860- 98 E5 EC 85 FA 18 AS F90868- 69 00 85 F9 A5 FA 69 200870- 85 FA AO 5F 20 ED 08 200878- OC FD C9 CD 66 FF A9 200880- 85 3B A9 00 85 3A AD 000888- CO C9 83 FO 5C 20 DO F80890- AO 02 C4 2F DO 42 38 880898- 81 3A E5 FS C8 81 3A E508AO- FC 90 ~c- A5 FD 88 Fl 3A';''J

08A8- A5 FE C8 Fl 3A 90 29 2408BO- FF 10 07 20 OC FD C9 CE0888- FO lE 18 AO 01 81 3A 65C>8CO- CE 91 3A C8 81 3A 65 CF08C8- 91 3A 20 80 FE 20 DO F808DO- 20 84 FE A9 05 20 C9 FC08D8- 20 C-~ F9 85 3A 84 38 C4'J.J

08EO- FA 90 A3 A5 F9 C5 3A 8008E8- 9D 2C 10 cb 60 A9 8D 2008FO- ED FD C8 89 05 09 DO F708F8- 60 20 6F FD AO 00 20 A70900- FF A5 3E A4 3F 60 C9 CE0908- C9 DA C9 CF AO DO D2 CF0910- C7 D2 Cl CD CD Cl BA AO0918- 00 C4 C5 D3 D4 C9 CE Cl0920- DA C9 CF CE C5 AO AO AO0928- AO EA AO 00 C9 CE C9 DA0930- C9 CF AO Cl D2 C5 Cl AO0938- D2 C9 CC AE 8A AO 00 Cb0940- C9 CE C5 AO AO AO Cl D20948- C5 Cl AO D2 Cc;>CC AE BA0950- AO 00 C6 C9 CE C5 AO DO0958- D2 CF C7 D2 Cl eD CD Cl0960- AO AO SA AO 00 Cl AD Cl0968- D5 D4 CF AO CD AD CD Cl09'"70- CE D5 Cl CC AO SA AO 00

Figura 2: Modulo oggetlo del programma rilocato-re. Va copiato in memoria e salvato con BSAVERILOCATORE,A$800,L$178.

Un secondo problema è rappresen-tato dalle tabelle di caratteri ASCII(tipicamente le scritte) che il disassem-bler Apple tenta di interpretare comeistruzioni (e spesso ci riesce), talvoltaquesta interpretazione produce un co-dice a tre byte (spesso però l'indirizzonon è tra quelli da rilocare) apparente-mente da modificare.

Questi ultimi due casi non possonoessere eseguiti da un programma auto-matico e andranno perciò controllatimanualmente; se il secondo non creaproblemi (al massimo qualche testo in-comprensibile, ma facilmente indivi-duabile) il primo porta al blocco delprogramma (e a volte alla distruzionedello stesso); per cui, dopo aver effet-tuato la rilocazione, si deve controlla-re attentamente il programma alla ri-cerca di simili occorrenze.

Il rilocatoreIl programma rilocatore funziona

sfruttando le capacità del disassem-bler interno dell'Apple. Una alla voltadisassembla le istruzioni, poi guardase sono a tre byte e se l'indirizzo è diquelli da modificare; se si, lo modificae riscrive l'istruzione corretta, altri-menti prosegue la ricerca. Nel caso sisappia in anticipo che nel programmasi possono trovare delle scritte è possi-bile fare in modo che il rilocatore siarresti prima di ciascuna istruzione damodificare chiedendo il permesso al-l'operatore. Inoltre, per permettere larilocazione anche di singole parti diprogramma, l'area di indirizzi da mo-dificare può essere definita a piacere(si può ad esempio spostare solo unasubroutine e modificare nel program-ma originale tutte le chiamate a quellaspecifica subroutine).

Per caricare la routine rilocatrice sipuò utilizzare un assemblatore (co-piando il listato sorgente di figura 3)oppure immetterla direttamente dalmonitor con il solito CALL-151 e poil'indirizzo iniziale, i due punti e i datidella figura 2 separati dallo spazio.Terminato l'inserimento si salva il tut-to battendo:

BSAVE RILOCATORE,A$800,L$178.

Naturalmente chi vuole, ora, lo puòrilocare altrove!

Nota: Alla riga 160/161 compareuna istruzione di attesa (DELA Y),questa è relativa alla gestione del regi-stratore a cassetta (ritarda ACC*.1664secondi) e non esiste nel IIc. Si puòsostituire con un LDA # $87 e JSRCOUT, naturalmente abbassando ilvolume!

117

....••

....••

3C

l)•

I1

0800

1;

08

84

85

3A

119

STA

PCL

punt

ala

Work

.are

a.08

002

,PR

OGRA

Mt-1

A08

86AO

OOCO

120

LOOP

LOA

I<EY

**lo

oppr

inci

pale

.08

003

,08

89C9

8312

1CM

P.S

83CT

RLC

=in

terr

ompe

0800

4,

RILO

CATO

RE08

8BF0

5e1

22

BEQ

RTSl

illa

voro

.08

005

,08

8020

00F8

123

JSR

ISTD

SPdi

sass

embl

ada

PC,

0800

6~1

00E

EPZ

$31

0890

AOO2

124

LOY

*$2

seè

lung

a08

007

NUML

EPZ

S3E

0892

C,",

2F12

5CP

YLE

N3

byte

0600

8NU

~lH

EPZ

$3F

0694

0042

126

BNE

CONT

Ial

lora

va08

009

PCL

EPZ

93A

0896

3812

7SE

Cri

lacata

,08

00lO

PCH

EPZ

$3B

0897

8812

8OE

Yco

ntro

lla

seil

0800

IlLE

NEP

Z92

F08

98B1

3A12

9LP

A(P

CL)

•Yca

mpo

indi

rizz

o08

001"

AUTO

EPZ

$FF

089A

E5FB

130

SBC

INRL

dell

'ist

ruzi

one

~08

001

3ST

ARTL

EPZ

$EB

089C

C813

1IN

comp

reso

0800

14ST

ARTH

EPZ

$EC

0890

B13A

13

2LD

A(P

CLl

,Yne

ll'a

rea

rllo

cabi

le.

0800

15OS

TLEP

ZSE

D08

9FES

F"C

133

SSC

INRH

0800

16OS

THEP

Z$E

E08

Al90

3513

4BC

CCO

NTI

0800

17DI

FFL

EPZ

SCE

08A3

A5FD

135

LDA

Fllo

lL08

0018

OIFF

HEP

Z$C

F08

A588

136

OEY

0800

19EN

DLEP

ZSF

908

A6F1

3A13

7SB

C(P

CLi,

Y08

0020

ENOH

EPZ

SFA

OBA8

A5FE

138

LDA

FINH

0800

21IN

RLEP

Z$F

B08

AAC8

139

INV

0800

22!N

RHEF

'Z$F

C08

ABF1

3A14

0se

c(P

CLl

,Yal

tri.

ment

in

on

va

0800

23FI

NLEP

Z$F

D08

AO90

2914

1BC

CCO

NTi

rilo

cata

~.

se51

0800

24FI

NHEP

Z$F

E06

AF24

FF14

2BI

TAU

TOde

voas

pett

are

la08

0025

;08

Bl10

0714

3BP

LGO

ONco

nier

-ma?

0800

26WO

RI<

EPZ

$20

08B3

200C

FO14

4JS

RI<

EVIN

Si,

legg

ila

tast

iera

:08

0027

;08

86C9

CE14

5CM

P""

N"se

è"N

"08

0028

~lSG

lEP

Z(;

08B8

FOIE

146

BEQ

CONT

Inon

rilo

care

~,

0800

29MS

G2EP

Z19

08SA

1814

7GO

ONCL

C**

rilo

ca**

0800

30MS

G3EP

Z38

08BB

AOOl

148

LDY

*$1

somm

a08

0031

MSG4

EPZ

5708

BOB1

3A14

9LO

A(F

U)

,Val

l'in

diri

zzo

0800

32t1

SG5

EPZ

7608

BF65

CE150

AOC

OIFF

Lde

ll~l

strL

t::l

one

0800

33

MSGb

EPZ

9~08

Cl91

3A15

1ST

A(P

CLl,

Yla

d'ls

tanz

a08

0(,\

34;

08C3

C81

52

INY

diri

loca

zion

e08

0035

COUT

EQU

$FDE

O08

C4BI

3A153

LDA

(PCL

).Y

eri

mett

e08

0036

GETL

NEQ

U$F

06F

08C6

65CF

154

AOC

DIFF

Ha

post

oil

camp

o08

0037

GETN

UMEQ

USF

FA7

0~C8

913A

155

STA

(PCL

l,Y

indi

rizz

o.08

0038

ISTD

SPEQ

USF

800

08CA

156

;08

0039

PCAD

JEQ

USF

953

08CA

2080

FE15

7JS

RSe

:TIN

VRi

stam

pain

inve

rso

0800

40SE

TINV

EQU

$FE8

008

CO20

00F8

158

JSR

ISTD

SPla

nuov

ais

truzi

one"

,5:

0800

41SE

TNRM

e:QU

SFE8

408

0020

B4FE

159

JSR

SETN

RMNo

rmal

.()

0800

42KE

YIN

EQU

$FOO

C08

03A9

0516

0WA

ITLO

A*$

5as

pett

aun

seco

ndo

308

0043

BELL

EQU

SFBD

D08

D52O

C9FC

161

JSR

DEl.

AVpe

rle

gger

la,

o08

0044

OELA

YEQ

USF

CC9

0808

162

;O

0800

45,

0808

2053

F916

3CO

NT1

JSR

PCAD

Jpo

iin

crem

enta

O08

0046

KSTR

EQU

SCOl

OST

APC

Lil

prog

ram

coun

ter

O08

0B85

3A16

43

0800

47KE

YEQ

USC

OOO

08

00

84

3B

165

STV

PCH

e-O

0800

48;

08DF

C4FA

166

CPY

ENOH

vede

seil

C m-08

0049

;I-

lonit

or08

El90

A316

7ec

cL

Q[F

prog

ramm

a....•

080e

jA9

FF50

lNIT

LOA

#$FF

pr-

ep

ara

Il08

E3A5

F916

8LO

AEN

OLè

fini

to.

:J08

0285

3151

STA

MODE

all'

uso

diGE

TNUM

.al

trim

enti

stam

pa11

prim

o08

E5C5

3A16

9C/

'IPP

CL.

-lO>-

0804

AOOO

52ST

ART

LOY

*MSG

I08

E7B0

9D17

08C

SLO

OPco

ntin

ua..

Cl)

0806

20ED

0853

JSR

OSP

mess

aggi

o",

E'

JSR

INPU

Tri

ceve

lari

spos

ta08

E917

1;

lO08

0920

F908

5408

E92C

I0CO

172

RTSl

BIT

KSTR

puli

sce

lost

robe

Cl>OB

OC85

EB55

STA

STAR

TLa

sedIc

ibi

tin

:JST

YST

ARTH

Star

t.08

EC60

173

RTS

edes

ce.

:J08

0E84

EC56

Il>57

08ED

1ì4

;è5

0810

,08

ED17

5;

SUBR

OUT

INES

0810

A013

56

LDY

lI~l

SG2

Stam

paIl

se

co

nd

o~

08EO

1ì6

(O08

1.2

20E

D')8

59JS

ROS

Pme

ss~:

.]gl

O.E'

Cl)

0815

2l)F

9l.!

8::

"JJ5

RIN

PUT

,l,-e

'oe

lo.

rela

tl'ld

08ED

A98D

177

DSP

LDA

ttSE

II)

Stam

paun

CRe

(j)

~2

4() 3

0818

85ED

61ST

ADS

TLri

spost

ain

08EF

20EO

FO17

8NE

XTJS

RCO

UTpo

iil

test

oo'

OSlA

84EE

62ST

YoS

THDe

st.

08F2

ca17

9IN

Ya

part

ire

dal

.., O08

tC63

;08

F389

0509

180

LoA

TEST

I.Y

punt

oY

efi

noa

()08

F6OO

F718

1BN

ENE

XTch

en

on

tr-o

'laO

081C

3864

SEC

308

10A5

Eo65

LDA

DSTL

Calc

ola

08F8

6018

2RT

Su

no

zero

."O

081F

E5EB

66SB

CST

ARTL

ladi

stan

za08

F918

3C ro

0821

8SCE

67ST

ADI

FFL

tra

la08

F918

4..,

08

23

A5

EE

68LD

AoS

THloc

a:::

ione

08F9

206F

FD18

5IN

PUT

JSR

GETL

NAc

cett

aun

ali

nea

?08

25E5

EC69

SBC

STAR

THin

izia

lee

08FC

AOOO

186

LDY

*SO

data

stle

rae

la~

0827

85CF

70ST

AoI

FFH

quel

la08

FE20

A7FF

187

JSR

GETN

UMfr

.ott

~nel

b~ff

er,

(Xl ,

0829

9010

71BC

CNO

COMP

final

e;se

0901

A53

E18

8LD

ANU

MLpo

i]

dtr

asfo

rma

in(Q

082B

A5CE

72

LOA

DIFF

posi

tiva

,01

<•

0903

A43F

189

Loy

NUMH

unnL

lmer

oe$

ddeC

lmal

eCl)

0820

49FF

73EO

RII

SFF

altr

imen

ti0905

6(,

190

TEST

IRT

Sch

eme

tte

lnA

edY.

:J :J08

2F69

0074

AoC

liSO

effe

ttua

il09

0619

1DJ o'

0831

85CE

75ST

ADI

FFL

comp

leme

nto

0906

C9CE

C91<;

1':'

ASC

"IN

IlIO

PROG

RAMì

-1A:

....•.

0833

A5CF

'76

LoA

olFF

Ha

due

dell

a09

09DA

C9CF

<O08

3549

FF77

EOR

.SFF

dist

anza

,ch

e,09

CJC

AODO

D2(X

l(j

)08

3769

0078

ADC

liSO

cDsì

,and

rà09

0FCF

C7D2

0839

85CF

79ST

ADI

FFH

semp

reso

mmat

a.09

12CI

CDCD

083B

80;

0915

CIBA

AO08

3BA0

2681

NOCO

MPLD

Y.~

63Te

rzo

0918

0019

3HE

X00

083D

20ED

0882

JSR

OSP

mess

aggi

oe

0919

C4C5

0319

4AS

C"D

ESTI

NAl

IONE

0840

20F9

0883

JSR

INPl

1l'

rela

tiva

risp

osta

091C

04C9

CE08

4385

FB84

STA

INRL

diin

izio

area

091F

CIDA

C908

4584

FC85

STY

INRH

ri

1!:le

abi

le.

('9~

:?CF

CEC5

0847

86;

0925

AOAO

AO08

47A0

3987

LDY

.MSG

4Ad

esso

C'92

8AO

BAAO

0849

20ED

C,8

88JS

RDS

Pch

iede

la09

2B00

195

HEX

0008

4C20

F908

89JS

RIN

PUT

fine

dell

'ar-

ea!J

92C

C9CE

C919

6AS

C"I

NIZI

OAR

EARI

L.:

"08

4F85

FO90

STA

FINL

"-'i

loca

bile

.O'

?2F

DAC9

CF08

5184

FE91

STY

FINH

09~

·;;2

AO

C1r;

~0

85

392

;09

35C5

CIAO

0853

AD4C

93LO

Y*/

'lSG

5Ch

iede

09:5

802

C9CC

0855

2OED

0894

JSR

OSP

l:'i

ndi,

.-.i

zzo

093B

AEBA

AO08

58:r

oF9O

S95

JSR

INPU

Tfi

nale

del

O~

?3E

0019

7H

EX

0008

5B38

96SE

Cp,

-ogr

amma

e09

3FC6

C9CE

198

ASC

"FIN

EAR

EARI

L.:

"as

5CE5

EB97

SBC

STAR

TLlo

usa

per

0942

C5AO

AO08

5E85

F998

STA

ENDL

calc

olar

nela

0945

AOCI

D208

6098

99TY

Alu

nghe

zza_

0948

C5CI

AO08

61E5

EC10

0SB

CST

AF:T

Hch

e.,

094B

D2C9

CC08

6385

FA10

1ST

AEN

DHso

mmat

a0'

t4E

AEBA

AO08

6518

10

2CL

Cal

l'in

di

rizz

o0

95

100

199

HEX

0008

66A5

F910

3LO

AEN

nLin

izia

lede

lla

(,95

2C

6C9C

E20

0AS

C"F

lNE

F'F\

OGRA

~1~1

A08

6869

0010

4AD

C*S

O(I

Jor-

k.a

r-e

a,

dar

'à09

55C5

AODO

086A

85F9

105

STA

ENDL

l:'i

ndir

izzo

0958

D2CF

C708

6CA5

FA10

6LD

AEN

DH'"

inal

ede

l09

5BD2

CICD

086E

6920

107

ADC

llWO

RKp.

.-og

ramm

a09

5ECD

CIAO

0870

85FA

108

STA

ENOH

r-i

loca

t,o.

0961

AOBA

AO08

7210

9;

09':

,400

201

HEX

0008

72A0

5F11

0LD

YII

MSG6

Ulti

mome

ssag

gio;

0965

CIAD

Cl20

2AS

C"A

-AUT

ON-

NANU

AL08

7420

ED08

111

JSR

D5P

auto

mati

coo

0';>

68D5

D4CF

0877

200C

FD11

2JS

RKE

YIN

manu

ale,

11Ca

r-ry

0968

AOCD

AO08

7AC9

CD11

3CM

P."

N"fi

nisc

ene

lbi

t7

O';>

6ECo

C1CE

087C

66FF

114

ROR

AUTO

diAu

to.

0971

05CI

CC08

7E11

5;

0974

A08A

AO0

87

EA

92

011

6GO

LoA

II~J

OR~"

Irll::

aep

era=

10ne

0977

0070

3HE

X00

v880

8538

117

STA

PCH

Cll

r-lJ

.oca

:lon

e.l

i.•

lI8S

:A9

0011

8LD

A~$t..'

prog

r-am

co

un

tpr

Figu

ra3:

Sorg

ente

LISA

delp

rogr

amm

ari

loca

lore

,....•

.•I

....•.

<O


Recommended