   Allm{n-Info
   ===========
Programmet {r t{nkt som en disassembler f|r Z-80.
(Inspreration delvis fr}n ABC-KLUBBENS Rapport Nr 1)
Programmet har tv} m|jligheter disassemblering och s|kning. 

   Disassemblering;
Man v{lja mellan Instruktioner eller ASCII.
   - " -         Hexa- eller decimal form.
   - " -         Bildsk{rm eller Printer.

Instruktioner presenteras i f|ljande form:
    Adress:Maskinkod       Instruktion     ASCII (ej ASCII => .)
    ----------------       -----------     ---------------------
    4576:195,069,108       JP    7717      .El   (Dec)
    6000 :C3456C           JP    6C45      .El   (Hex)

S|kning kan ske efter Instruktioner eller egen "text".
Efter val presenteras ett exempel p} instr., f|r det {r viktigt med
mellanslag eftersom programmet s|ker medelst INSTR(1,A$,S|k$).

FNScroll {r t{nkt som en scroll av bildsk{rmen med rad 0+1 of|r{ndrade.

I |vrigt {r m}nga Funktioner l}nade fr}n BIT F\R BIT MED ABC 800 (Tack !).

 Maskinkoderna {r lagrade som textvektorer i OPCODE.DAT

      Dessa  textvaribler {r:
    Kod$(1-63)      Entydiga Maskinkoder (1-63)
    Kodh$(192-255)    -"-        -"-     (192-255)
    Reg$(0-7)        "Register" (B,C,D,E,H,L,(HL),A)
    Las$(0-15)       F|rsta delen f|r Maskinkoder (64-191),i komb. med Reg$.
    Cb$(0-31)        De instr som b|rjar p} CBH, i komb. med Reg$.
    Dd$(9-249)       De instr som b|rjar p} DDH
    Ed$(64-187)      De instr som b|rjar p} EDH
                     De instr som b|rjar p} FDH {r samma som Dd$ med IY <==> IX
    Dessutom anv{nds i textvariablerna flaggor med f|ljande betydelse
    NN               16-bitars tal/adress
    d                relativt hopp/adress
    n                8-bitars tal

Jag har valt att inte spara p} skiva, f|r d{r har alla sina egna regler. 
Men det {r l{tt att kompletera med detta.
 
En fullst{ndig disassembler,m}ste antagligen g|ras i 2 steg.
F|rsta steget spar Instruktionerna p} skiva.
Andra steget letar r{tt p} tabeller
och s{tter namn p} CALL och JUMP adresser, och spar p} skiva.

Det finns s{kert en del som kan f|rb{ttras, s} lycka till.
830830   Lars Thor

PS
  Tangenternas funktion:
  PF1             Avbryter p}g}ende rutin och }terg}r till meny.
  PF8+CTRL+SHIFT  Dumpar bildsk{rm p} printer.
  Vid             INMATNING
  ---             ---------
  ->              Flyttar mark|ren }t h|ger,utan att radera. 
  <-              Flyttar mark|ren }t v{nster,utan att radera. 
  PF8             Raderar det tecken som mark|ren befinner sig p}.
  CE              Raderar hela raden.
  RETURN          Avslutar inmatning i ett f{lt,eller verifierar ett val.



F|r er som inte t{nker k|ra p} ABC-800C s} byt ut FNGet i programmet mot
nedanst}ende FNGet.

   DEF FNGet(Pos) LOCAL T$=1
     POKE 65506,0 ! KEYFLG
     Z=FNRk(Pos) : OUT 56,14,57,Z/256,56,15,57,Z,56,10,57,(64 XOR 8)
xx   WHILE SYS(5)=0 : ; CUR(0,60) TIME$
     WEND : GET T$ : IF ASCII(T$)<>247 THEN  RETURN ASCII(T$)
     Z=FNBilddump : GOTO xx
   FNEND 
! 
! Port 56           CRTC 8-tkn ,v{lj register 
! Port 57           CRTC 8-tkn ,data till valt register
! OUT 56,14         V{lj cursor adr(h) 
! OUT 57,Z/256      Stoppa in aktuell bildmem(h)
! OUT 56,15         V{lj cursor adr(l)
! OUT 57,Z          Stoppa in aktuell bildmem(l)
! OUT 56,10         Cursor start in line 
! OUT 57,(64 XOR 8) Bit 6 satt ger blink,
! XOR med 0-8 ger olika antal linjer i cursorn
