Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1.                 cpu     68hc11k4
  2.                 page    0
  3.  
  4.                 ; no windowing
  5.  
  6.                 assume  mmwbr:$00,mmsiz:$00,mm1cr:$00,mm2cr:$00
  7.                 ;prwins
  8.  
  9.                 adr     phys2cpu($0000)         ; unbanked -> $0000
  10.                 adr     phys2cpu($1000)         ; unbanked -> $1000
  11.                 adr     phys2cpu($2000)         ; unbanked -> $2000
  12.                 adr     phys2cpu($3000)         ; unbanked -> $3000
  13.                 adr     phys2cpu($4000)         ; unbanked -> $4000
  14.                 adr     phys2cpu($5000)         ; unbanked -> $5000
  15.                 adr     phys2cpu($6000)         ; unbanked -> $6000
  16.                 adr     phys2cpu($7000)         ; unbanked -> $7000
  17.                 adr     phys2cpu($8000)         ; unbanked -> $8000
  18.                 adr     phys2cpu($9000)         ; unbanked -> $9000
  19.                 adr     phys2cpu($a000)         ; unbanked -> $a000
  20.                 adr     phys2cpu($b000)         ; unbanked -> $b000
  21.                 adr     phys2cpu($c000)         ; unbanked -> $c000
  22.                 adr     phys2cpu($d000)         ; unbanked -> $d000
  23.                 adr     phys2cpu($e000)         ; unbanked -> $e000
  24.                 adr     phys2cpu($f000)         ; unbanked -> $f000
  25.  
  26.                 ; window 1 @ $4000, 8 K (starts at $10000 in 'AS address space')
  27.                 ; window 2 disabled
  28.  
  29.                 assume  mmwbr:$04,mmsiz:$41,mm1cr:$00,mm2cr:$00
  30.                 ;prwins
  31.  
  32.                 adr     phys2cpu($0000)         ; unbanked -> $0000
  33.                 adr     phys2cpu($1000)         ; unbanked -> $1000
  34.                 adr     phys2cpu($2000)         ; unbanked -> $2000
  35.                 adr     phys2cpu($3000)         ; unbanked -> $3000
  36.                 adr     phys2cpu($10000)        ; banked (window 1) -> $4000
  37.                 adr     phys2cpu($11000)        ; banked (window 1) -> $5000
  38.                 adr     phys2cpu($6000)         ; unbanked -> $6000
  39.                 adr     phys2cpu($7000)         ; unbanked -> $7000
  40.                 adr     phys2cpu($8000)         ; unbanked -> $8000
  41.                 adr     phys2cpu($9000)         ; unbanked -> $9000
  42.                 adr     phys2cpu($a000)         ; unbanked -> $a000
  43.                 adr     phys2cpu($b000)         ; unbanked -> $b000
  44.                 adr     phys2cpu($c000)         ; unbanked -> $c000
  45.                 adr     phys2cpu($d000)         ; unbanked -> $d000
  46.                 adr     phys2cpu($e000)         ; unbanked -> $e000
  47.                 adr     phys2cpu($f000)         ; unbanked -> $f000
  48.  
  49.                 ; window 1 @ $4000, 8 K (starts at $10000 in 'AS address space')
  50.                 ; window 2 @ $8000, 16 K (starts at $90000 in 'AS address space')
  51.  
  52.                 assume  mmwbr:$84,mmsiz:$e1,mm1cr:$00,mm2cr:$00
  53.                 ;prwins
  54.  
  55.                 adr     phys2cpu($0000)         ; unbanked -> $0000
  56.                 adr     phys2cpu($1000)         ; unbanked -> $1000
  57.                 adr     phys2cpu($2000)         ; unbanked -> $2000
  58.                 adr     phys2cpu($3000)         ; unbanked -> $3000
  59.                 adr     phys2cpu($10000)        ; banked (window 1) -> $4000
  60.                 adr     phys2cpu($11000)        ; banked (window 1) -> $5000
  61.                 adr     phys2cpu($6000)         ; unbanked -> $6000
  62.                 adr     phys2cpu($7000)         ; unbanked -> $7000
  63.                 adr     phys2cpu($90000)        ; banked (window 2) -> $8000
  64.                 adr     phys2cpu($91000)        ; banked (window 2) -> $9000
  65.                 adr     phys2cpu($92000)        ; banked (window 2) -> $a000
  66.                 adr     phys2cpu($93000)        ; banked (window 2) -> $b000
  67.                 adr     phys2cpu($c000)         ; unbanked -> $c000
  68.                 adr     phys2cpu($d000)         ; unbanked -> $d000
  69.                 adr     phys2cpu($e000)         ; unbanked -> $e000
  70.                 adr     phys2cpu($f000)         ; unbanked -> $f000
  71.  
  72.                 ; window 1 @ $8000, 8 K (starts at $10000 in 'AS address space')
  73.                 ; window 2 @ $8000, 32 K (starts at $90000 in 'AS address space')
  74.                 ; window 1 overshadows first 8K of window 2
  75.  
  76.                 assume  mmwbr:$88,mmsiz:$f1,mm1cr:$00,mm2cr:$00
  77.                 ;prwins
  78.  
  79.                 adr     phys2cpu($0000)         ; unbanked -> $0000
  80.                 adr     phys2cpu($1000)         ; unbanked -> $1000
  81.                 adr     phys2cpu($2000)         ; unbanked -> $2000
  82.                 adr     phys2cpu($3000)         ; unbanked -> $3000
  83.                 adr     phys2cpu($4000)         ; unbanked -> $4000
  84.                 adr     phys2cpu($5000)         ; unbanked -> $5000
  85.                 adr     phys2cpu($6000)         ; unbanked -> $6000
  86.                 adr     phys2cpu($7000)         ; unbanked -> $7000
  87.                 adr     phys2cpu($10000)        ; banked (window 1) -> $8000
  88.                 adr     phys2cpu($11000)        ; banked (window 1) -> $9000
  89.                 adr     phys2cpu($92000)        ; banked (window 2) -> $a000
  90.                 adr     phys2cpu($93000)        ; banked (window 2) -> $b000
  91.                 adr     phys2cpu($94000)        ; banked (window 2) -> $c000
  92.                 adr     phys2cpu($95000)        ; banked (window 2) -> $d000
  93.                 adr     phys2cpu($96000)        ; banked (window 2) -> $e000
  94.                 adr     phys2cpu($97000)        ; banked (window 2) -> $f000
  95.  
  96.                 ; window 1 @ $e000, 8 K (starts at $10000 in 'AS address space')
  97.                 ; window 2 @ $8000, 32 K (starts at $90000 in 'AS address space')
  98.                 ; window 1 overshadows last 8K of window 2
  99.  
  100.                 assume  mmwbr:$8e,mmsiz:$f1,mm1cr:$00,mm2cr:$00
  101.                 ;prwins
  102.  
  103.                 adr     phys2cpu($0000)         ; unbanked -> $0000
  104.                 adr     phys2cpu($1000)         ; unbanked -> $1000
  105.                 adr     phys2cpu($2000)         ; unbanked -> $2000
  106.                 adr     phys2cpu($3000)         ; unbanked -> $3000
  107.                 adr     phys2cpu($4000)         ; unbanked -> $4000
  108.                 adr     phys2cpu($5000)         ; unbanked -> $5000
  109.                 adr     phys2cpu($6000)         ; unbanked -> $6000
  110.                 adr     phys2cpu($7000)         ; unbanked -> $7000
  111.                 adr     phys2cpu($90000)        ; banked (window 2) -> $8000
  112.                 adr     phys2cpu($91000)        ; banked (window 2) -> $9000
  113.                 adr     phys2cpu($92000)        ; banked (window 2) -> $a000
  114.                 adr     phys2cpu($93000)        ; banked (window 2) -> $b000
  115.                 adr     phys2cpu($94000)        ; banked (window 2) -> $c000
  116.                 adr     phys2cpu($95000)        ; banked (window 2) -> $d000
  117.                 adr     phys2cpu($10000)        ; banked (window 1) -> $e000
  118.                 adr     phys2cpu($11000)        ; banked (window 1) -> $f000
  119.  
  120.                 ; window 1 @ $a000, 8 K (starts at $10000 in 'AS address space')
  121.                 ; window 2 @ $8000, 32 K (starts at $90000 in 'AS address space')
  122.                 ; window 1 partially overshadows window 2, and 'cuts out' 8K in mid of the 32W window 2
  123.  
  124.                 assume  mmwbr:$8a,mmsiz:$f1,mm1cr:$00,mm2cr:$00
  125.                 ;prwins
  126.  
  127.                 adr     phys2cpu($0000)         ; unbanked -> $0000
  128.                 adr     phys2cpu($1000)         ; unbanked -> $1000
  129.                 adr     phys2cpu($2000)         ; unbanked -> $2000
  130.                 adr     phys2cpu($3000)         ; unbanked -> $3000
  131.                 adr     phys2cpu($4000)         ; unbanked -> $4000
  132.                 adr     phys2cpu($5000)         ; unbanked -> $5000
  133.                 adr     phys2cpu($6000)         ; unbanked -> $6000
  134.                 adr     phys2cpu($7000)         ; unbanked -> $7000
  135.                 adr     phys2cpu($90000)        ; banked (window 2) -> $8000
  136.                 adr     phys2cpu($91000)        ; banked (window 2) -> $9000
  137.                 adr     phys2cpu($10000)        ; banked (window 1) -> $a000
  138.                 adr     phys2cpu($11000)        ; banked (window 1) -> $b000
  139.                 adr     phys2cpu($94000)        ; banked (window 2) -> $c000
  140.                 adr     phys2cpu($95000)        ; banked (window 2) -> $d000
  141.                 adr     phys2cpu($96000)        ; banked (window 2) -> $e000
  142.                 adr     phys2cpu($97000)        ; banked (window 2) -> $f000
  143.  
  144.                 ; test symmetry of mappings:
  145.  
  146.                 listing off
  147. addr            set     $0000
  148.                 while   addr<$10000
  149.                 if      phys2cpu(cpu2phys(addr)) <> addr
  150.                 error   "mapping error at $\{ADDR}"
  151.                 endif
  152. addr            set     addr+$10
  153.                 endm
  154.                 listing on
  155.