![]() |
![]() |
---|
Et kontrolleril pole autonoomset suhtlemisvõimalust, siis on see teostatud loogikaanalüsaatori ja personaalarvuti vahendusel.
MUX on multipleksor, mis võimaldab printeriga ühendada kuni 4 personaalarvutit. Kõige esimesena signaali saatnud arvuti saab kõige esimesena printerit kasutada. Järgmised peavad ootama, kuni järjekord nendeni jõuab.
Signaalide testimiseks kasutatakse loogikaanalüsaatorit BLACK STAR 3332 [11]. Testimiseks tuleb analüsaator ühendada mooduliga PM3332 ja see omakorda kontrolleriga. Ühendusteks on olemas vastavad juhtmed.
Analüsaatori toite sisselülitamise järel ilmub ekraanile peamenüü, kus on menüüd SETUP, ACQUIRE, DISPLAY ja UTILITIES. Nende menüüde alammenüüdes kasutada erinevate parameetrite vahel liikumiseks TAB-klahvi (valitud parameeter paistab negatiivis), parameetri muutmiseks aga INC- ja DEC-klahve. Alammenüüst väljutakse ESC-klahviga. Kõigis menüüdes saab abiinfot, kui vajutada HELP-klahvi.
SETUP-menüü alammenüüs CLOCK tuleb kasutatavaks taktiallikaks (CLOCK USED) valida
INTRERNAL, käivitushetkeks (CLK1) valida langusfront NEG, trigeri positsioon (TRIG POSITION) seada seisu 0000, TRIG DELAY ja TRIG HOLD-OFF seisu OFF. TRESHOLD-iks valida TTL. Sagedus (INT CLOCK) tuleb valida selline, et analüsaator oleks võimeline signaalide olekuid ajaliselt eristama. Madalaima piiri seab sagedusele protsessori taktsagedus.
SETUP-menüü alammenüüdes TRIGGER1,2 saab paika panna tingimused, millal analüsaator peab käivituma. Kui kasutatakse vaid ühte trigersõna, peab vastavas TRIGGER-menüüs olema valitud sõna ON, teises, mida ei kasutata, aga OFF. Trigersõna saab seada nii heksa-, okta- kui ka kahendkoodis. Seejuures on kõigis koodides olevad sõnad oma tähenduselt identsed, erinev on vaid kood. Kuna analüsaatoril kasutatakse kõiki 32-te andmekanalit, siis on kõige mõtekam trigersõna paika seada kahendkoodis, mille korral igale bitile vastab üks testitav analüsaatori sisendkanal.
KANAL | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HI | CLK | A0 | A1 | A2 | A3 | A4 | A5 | A6 | A7 | A8 | A9 | A10 | A11 | A12 | A13 | A14 |
KANAL | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LOW | A15 | CLK | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | /RD | /WR | /IORQ | /MREQ | /M1 | CLK |
Biti seis 1 vastab kontrolleri signaali kõrgele olekule, seis 0 - madalale olekule ja X märgib signaali suvalist olekut. Kuna signaale on palju, ei piisa 1..2 biti seadmisest, vaid tuleb valida kombinatsioon, mis kindlustaks analüsaatori käivitumise kasutaja poolt soovitud hetkel.
Seejärel valida DISPLAY-menüü alammenüü TIMING, misjärel ilmuvad ekraanile kursor ning 8 kanali seisundite ajadiagramm. Nüüd tuleb vajutada RUN-klahvi ja ekraanile ilmunud alammenüüst valida vajalik reziim. Tavaliselt on selleks SINGLE, mille korral käivitub analüsaator trigersõnaga etteantud tingimuste täitumisel ja loeb andmeid mällu, kuni viimane on täidetud. Andmed ilmuvad kohe ka ekraanile. Seetõttu ongi mugav avada enne analüsaatori käivitamist TIMING-menüü. Loomulikult saab RUN-klahviga analüsaatorit ka teistest menüüdest käivitada. Seejärel käivitada kontrolleris olev programm.
Saadud andmed püsivad analüsaatori ACQ-mälus kuni järgmise käivitamiseni. Andmete mugavamaks töötlemiseks ja salvestamiseks tuleb käivitada programm LA_VIEW:
Lisas 2 graafikul 1 on kõik 2048 lugemit, mida analüsaator võimaldab, graafikul 2 on ühe programmi ajal siinidel olnud signaalid ja graafikul 3 - sama programmi esimesed käsud.
Kontrolleriga suhtlemiseks tuleb personaalarvutil käivitada programm Z180.
Silumiskeskkonna käsud [12]:
! HELP EXIT BREAK DUMP GO PATCH XREG TRACE MOVE MATH COLDBOOT! READ WRITE LIST VIEW CSUM Lisainfo saamiseks käsu kohta: HELP käskKontrollerisse laaditud programmi kontrolleri mälus ja mälupesade sisu saab testida käsuga DUMP:
DUMP [n1 [n2]] D [n1 [n2]] Näitab Z180 mälu sisu ekraanil 16-ndsüsteemis ja ASCII tekstina alates aadressist n1 ja lõpetades aadressiga n2 (kui on antud). Näide: DUMP .256 Näide: D driver_start driver_end-1 Nt. Z180> d 8390 ADDR 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 01234567 89ABCDEF ---- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -------- -------- 8390 65 73 74 20 4F 4B 0D 00 0D 52 41 4D 65 6D 6F 72 est OK.. .RAMemor 83A0 79 20 74 65 73 74 20 61 62 6F 72 74 65 64 00 20 y test a borted. 83B0 62 79 74 65 73 20 4F 4B 20 61 6E 64 20 61 76 61 bytes OK and ava 83C0 69 6C 61 62 6C 65 00 00 00 00 00 00 00 00 00 00 ilable.. ........ 83D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 83E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........Mälus olevat programmi saab assembleris vaadata käsuga LIST:
LIST [n1 [n2]] L [n1 [n2]] Disassembleriga näitab Z180 käske alates aadressist n1 ja lõpetades aadressiga n2 (kui on antud). Näide: LIST 0100 Näide: L 0100 cpu_end Nt: Z180>l 8000 FILL: 8000 2600 LD H,00 8002 DD211A80 LD IX,LOOP 8006 01FF03 LD BC,03FF FILL1: 8009 DD7400 LD (IX+00),H 800C DD23 INC IXMälu sisu saab baithaaval redigeerida käsuga PATCH:
PATCH [n] P [n] Alustab mälu sisu baithaaval redigeerimist aadressist n. Näide: PATCH 2F60 Näide: P TABLE Nt: Z180> p 8071 8071H (10H) = 0a 8072H (4aH) =Registrite ja lippude seisude vaatamiseks ja redigeerimiseks on käsk XREG:
XREG [rr n] X [rr n] Kui argumente pole antud, näitab Z180 registrite jooksvaid väärtusi. Kui argumendid on antud, siis register/lipp saab uue väärtuse n. rr = register/lipp, mida muudetakse, üks järgnevatest: registrid: A F B C D E H L AF BC DE HL IX IY SP PC lipud: SF ZF HF P/V NF CF Näide: XREG BC .63000 (16-bitine BC) Näide: XREG B 11 (8-bitine B) Näide: X ZF 1 ( ZERO lipp tõene) Näide: X CF 0 ( CARRY lipp väär) Nt. Z180> x A F B C D E H L IX IY SP PC 006C F80C 6C39 83AF 2A88 888C B000 8294 SF=0 ZF=1 HF=0 P/V=1 NF=0 CF=0 MEM7: 8294 CF RST 08 Z180> x pc 8000 Z180> x A F B C D E H L IX IY SP PC 006C F80C 6C39 83AF 2A88 888C B000 8000 SF=0 ZF=1 HF=0 P/V=1 NF=0 CF=0 INIT0: 8000 210780 LD HL,TALK0Programmi saab sammhaaval täita käsuga TRACE:
TRACE [n] T [n] Täidab n (vaikimisi = 1) Z180 käsku alates jooksvast Z180 PC väärtusest. Z180 registrite ja lippude seis ilmub ekraanile iga käsu täitmise järel. Näide: TRACE Näide: T .10 Nt: Z180>x pc algus Z180>x Z180> t A F B C D E H L IX IY SP PC 006C F80C 6C39 83AF 2A88 888C B000 8233 SF=0 ZF=1 HF=0 P/V=1 NF=0 CF=0 8233 CD0080 CALL INIT0 Z180> t A F B C D E H L IX IY SP PC 006C F80C 6C39 83AF 2A88 888C AFFE 8000 SF=0 ZF=1 HF=0 P/V=1 NF=0 CF=0 INIT0: 8000 210780 LD HL,TALK0 Z180> t A F B C D E H L IX IY SP PC 006C F80C 6C39 8007 2A88 888C AFFE 8003 SF=0 ZF=1 HF=0 P/V=1 NF=0 CF=0 8003 CD0810 CALL putsKuvari seisu saab vaadata ja salvestada käsuga VIEW:
VIEW [filename] V [filename] Ilma parameetrita käsu korral saab vaadata ekraani väljundi salvestust. VIEW-reziimis saab ekraanil infot nihutada üles/alla noole- ning PgUp-, PgDown-klahvidega. ESC-klahviga saab VIEW-reziimist tagasi normaalsesse reziimi. Kui parameetriks anda faili nimi, siis kirjutatakse ekraani puhver faili.
Silumiskeskkonnast väljumiseks on käsk EXIT (E). Kõigi käskude kirjeldused on juhendis [12].
Arvud on monitorprogrammis 16-ndsüsteemis. Numbrilised väärtused käskudes antakse järgneval kujul:
FFFF - 16-ndsüsteemi arv
Z180 käskude operandid võivad olla 8- vôi 16-bitised arvud [12]. 8-bitise operandi väärtus võib kujutada:
16-bitise operandi väärtuste vahemik on suurem: 0..65535 märgita ja -32768..+32767 märgiga arvudel.
Arvud on assembleris 10-ndsüsteemis. 16-ndsüsteemi arvude tunnuseks on H täht lõpus. Kuna ka 16-ndsüsteemi arv peab algama numbriga, siis tuleb tähega alguse korral ette lisada 0. Assembler ei tee vahet suur- ja väiketähtedel.
Sümboli kood tuleb kirjutada apostroofide vahele.
Näited konstantidest:
1) õige on 10, 0123H, 65535, -1234, 0FFH, 'u';
2) vale on FFH (ei alga numbriga), 100000 (liiga suur arv).
Operandiks võib olla ka avaldis, mille koosseisus on konstandid ja märgendid. Avaldises on lubatud liitmine, lahutamine, korrutamine, jagamine, sulud. Avaldise väärtus peab mahtuma vastavalt 8- vôi 16-bitise operandi lubatud piiridesse.
Näide avaldisest:
LD HL,(RUUT+3*2) ....... RUUT: DW 0,1*1,2*2,3*3,4*4DW-käsuga defineeritaks ruutude tabel, iga arv tabelis vôtab 2 baiti. LD-käsuga loetakse ruutude tabeli algusest 6 baidi võrra suuremalt aadressilt 16-bitine väärtus 3*3=9 HL-registrisse.
Kasutaja koostatavad programmid algavad üldjuhul aadressilt 8000H, s.t. muutmälu algusest. Programmi järel tuleb reserveerida mälu andmete salvestamiseks. Mälu reserveerimiseks on käsud DS, DB, DW.
DS on andmetele mälu reserveerimiseks. Mälu seis programmi töö alguses ei ole määratud. Rea üldkuju on DS NNN , kus NNN on konstant, mis näitab reserveeritavate baitide arvu.
Nt:
DS 1 DS 1000Nende kahe käsuga reserveeritakse kokku 1001 baiti.
DB 2,5,7,11,13,17,19,23 DB 0EFH,0CDH,01H,075H,0FFH DB 'H','e','l','l','o',0Lisaks on olemas eraldi variand teksti kirjeldamiseks, kus sümbolid on kokku kirjutatud ühiste apostroofide vahele. Eelmise näite viimase rea saaks kirjutada
DB 'Hello',016-bitiste arvude kirjeldamiseks on eraldi korraldus DW (define word). Selle korralduse üldkuju on DW W1,..,WN, kus W1,..,WN tähistab komaga eraldatud 16-bitiste väärtuste loetelu. Nt:
DW 1, 10, 100, 1000, 10000 DW 0FFFFH, 0ABCDH, 1000H,/FONT> Iga programmis kirjeldatud masinkäsu või andmevälja ette võib panna märgendi, et edaspidi selle abil vastavale aadressile viidata. Märgend on rea algusesse paigutatud tähtedest ja numbritest koosnev nimi, mis algab tähega ja lõppu lisatud kooloniga.
Erinevalt märgendist ei ole siin nime lõpus koolonit vaja.nimi EQU väärtus.
PORTA EQU 300H CR EQU 0DH IN (PORTA) CP CRKoostatav programm algab alati reaga include lkz180.inc. Sellega liidetakse programmi algusesse failis lkz180.inc olevad korraldused. Põhiliselt on seal EQU-direktiivid, millega LKZ180 välisseadmetele on antud nimed. Samuti defineeritakse seal programmi algusaadressiks 8000H ja püsimälus olevate alamprogrammide aadressid.
Programmi iga rida koosneb oma ülesehituselt järgnevatest osadest:
Osad peavad olema omavahel tabulaatori või tühikutega eraldatud. Kõige mugavam on eraldajaks kasutada tabulaatorklahvi, siis on käsud ja operandid automaatselt kenasti tulpades. Rea alguses võib olla märgend. Käsukoodi ees peab olema tabulaator või tühik. Operandid on omavahel eraldatud komadega. Rea lõppu võib lisada kommentaari, mis algab semikooloniga. Programmi transleerimisel ignoreeritakse kommentaare.märgend käsukood operandid.
Programmi lõpetamiseks on kolm võimalust:
Programmi lähtetekst tuleb valmis kirjutada ASCII-tekstiredaktoriga, soovitavalt Norton Editoriga. Kirjutamisel tuleb järgida eelnevalt antud reegleid. Lähtefaili laiendiks peab olema .ASM. Programmiga lingitavate failide laiendid võib ise valida.
Programmi transleerimiseks tuleb sisestada MS-DOS-i käsurealt a
Programmi laadimiseks kontrollerisse tuleb sisestada MS-DOS-i käsurealt z180
READ [n]R [n] Loeb faili filename.typ alates aadressist n (vaikimisi = 0100h). .HEX faile lugedes n ignoreeritakse ja arvestatakse aadresse .HEX kirjetes. See on tavaline moodus laadida täidetav programm mällu. Nt: Z180>r c:\heiki\kylg\kylg Nt: Z180>r kylg
![]() |
![]() |
![]() |
![]() |
---|