home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / beehive / program / getrom.arc / GROM128.Z80 < prev   
Encoding:
Text File  |  1990-09-21  |  2.3 KB  |  140 lines

  1. ;Program to download contents of ROMs for the Microbee 128k,
  2. ;for archiving purposes.
  3. ;Use ccp not shell, and SAVE 32 xxx.ROM after running.
  4. ;  Pseudocode 
  5. ;    Relocate program
  6. ;    Repeat 8 times
  7. ;        set Port 50h to bring in ROM desired
  8. ;        move contents of ROM to PCG RAM
  9. ;        reset port 50h to switch out ROMs
  10. ;        move contents of PCG RAM to 100h
  11. ;    warm boot
  12. ;
  13. romstrt    equ    08000h
  14. romlen    equ    400h
  15. rommap    equ    0h
  16. cpmmap    equ    4h
  17. destin    equ    0f800h
  18. lowmem    equ    04000h
  19.  
  20.     org    100h
  21. RELOC:
  22.     ld    hl,start
  23.     ld    de,destin
  24.     ld    bc,finis-start
  25.     ldir
  26.     jp    destin
  27.  
  28. start    equ    $
  29.     ld    a,rommap
  30.     out    (50h),a
  31.     ld    hl,romstrt
  32.     ld    de,0F900h
  33.     ld    bc,romlen
  34.     ldir
  35.     ld    a,cpmmap
  36.     out    (50h),a
  37.     ld    hl,0F900h
  38.     ld    de,lowmem
  39.     ld    bc,romlen
  40.     ldir
  41. ;                next lot
  42.     ld    a,rommap 
  43.     out    (50h),a
  44.     ld    hl,romstrt + romlen
  45.     ld    de,0F900h
  46.     ld    bc,romlen
  47.     ldir
  48.     ld    a,cpmmap
  49.     out    (50h),a
  50.     ld    hl,0F900h
  51.     ld    de,lowmem + romlen
  52.     ld    bc,romlen
  53.     ldir
  54. ;                next lot
  55.     ld    a,rommap
  56.     out    (50h),a
  57.     ld    hl,romstrt + 2*romlen
  58.     ld    de,0F900h
  59.     ld    bc,romlen
  60.     ldir
  61.     ld    a,cpmmap
  62.     out    (50h),a
  63.     ld    hl,0F900h
  64.     ld    de,lowmem + 2*romlen
  65.     ld    bc,romlen
  66.     ldir
  67. ;                next lot
  68.     ld    a,rommap
  69.     out    (50h),a
  70.     ld    hl,romstrt + 3*romlen
  71.     ld    de,0F900h
  72.     ld    bc,romlen
  73.     ldir
  74.     ld    a,cpmmap
  75.     out    (50h),a
  76.     ld    hl,0F900h
  77.     ld    de,lowmem + 3*romlen
  78.     ld    bc,romlen
  79.     ldir
  80. ;                next lot
  81.     ld    a,rommap
  82.     out    (50h),a
  83.     ld    hl,romstrt + 4*romlen
  84.     ld    de,0F900h
  85.     ld    bc,romlen
  86.     ldir
  87.     ld    a,cpmmap
  88.     out    (50h),a
  89.     ld    hl,0F900h
  90.     ld    de,lowmem + 4*romlen
  91.     ld    bc,romlen
  92.     ldir
  93. ;                next lot
  94.     ld    a,rommap
  95.     out    (50h),a
  96.     ld    hl,romstrt + 5*romlen
  97.     ld    de,0F900h
  98.     ld    bc,romlen
  99.     ldir
  100.     ld    a,cpmmap
  101.     out    (50h),a
  102.     ld    hl,0F900h
  103.     ld    de,lowmem + 5*romlen
  104.     ld    bc,romlen
  105.     ldir
  106. ;                next lot
  107.     ld    a,rommap
  108.     out    (50h),a
  109.     ld    hl,romstrt + 6*romlen
  110.     ld    de,0F900h
  111.     ld    bc,romlen
  112.     ldir
  113.     ld    a,cpmmap
  114.     out    (50h),a
  115.     ld    hl,0F900h
  116.     ld    de,lowmem + 6*romlen
  117.     ld    bc,romlen
  118.     ldir
  119. ;                next lot
  120.     ld    a,rommap
  121.     out    (50h),a
  122.     ld    hl,romstrt + 7*romlen
  123.     ld    de,0F900h
  124.     ld    bc,romlen
  125.     ldir
  126.     ld    a,cpmmap
  127.     out    (50h),a
  128.     ld    hl,0F900h
  129.     ld    de,lowmem + 7*romlen
  130.     ld    bc,romlen
  131.     ldir
  132. ;
  133.     ld    hl,lowmem
  134.     ld    de,100h
  135.     ld    bc,8*romlen
  136.     ldir
  137.     jp    0        ;cold start to begin with
  138. ;    ret            ;try this if it works
  139. finis    equ    $
  140.