home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s199 / 1.img / M6809C.ABL < prev    next >
Encoding:
Text File  |  1986-02-04  |  1.0 KB  |  35 lines

  1. module m6809c  
  2. title '6809 memory decode
  3. Jean Designer    Data I/O Corp Redmond WA   24 Feb 1984'
  4.  
  5.             U09c    device    'P14L4';
  6.     A15,A14,A13,A12,A11,A10    pin 1,2,3,4,5,6;
  7.     ROM1,IO,ROM2,DRAM    pin 14,15,16,17;
  8.  
  9.     H,L,X    = 1,0,.X.;
  10.     Address    = [A15,A14,A13,A12, A11,A10,X,X, X,X,X,X, X,X,X,X];
  11.  
  12. " This macro will return an 'L' if the address (a) is between the
  13. " two limits (b,c), otherwise it returns an 'H'.
  14. between macro (a,b,c)
  15.         {@if ((?a>=?b)&(?a<=?c)){L}@if!((?a>=?b)&(?a<=?c)){H}};
  16.  
  17. equations
  18.     !DRAM    = (Address <= ^hDFFF);
  19.  
  20.     !IO    = (Address >= ^hE000) & (Address <= ^hE7FF);
  21.  
  22.     !ROM2   = (Address >= ^hF000) & (Address <= ^hF7FF);
  23.  
  24.     !ROM1    = (Address >= ^hF800);
  25.  
  26. test_vectors (Address -> [DRAM, IO, ROM2, ROM1])
  27.     @CONST    addrs = ^hD000;
  28.     @REPEAT 6 {
  29.         addrs   -> [ between (addrs,^h0000,^hDFFF),    " DRAM
  30.                      between (addrs,^hE000,^hE7FF),    " IO
  31.                      between (addrs,^hF000,^hF7FF),    " ROM2
  32.                      between (addrs,^hF800,^hFFFF)];    " ROM1
  33.     @CONST  addrs = addrs + ^h800;}
  34. end m6809c
  35.