home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol006 / zxldr.zsm < prev    next >
Encoding:
Text File  |  1984-04-29  |  6.5 KB  |  484 lines

  1.     NAME    ZXLOAD
  2.     TITLE    ZXLD  VER 2.1  9/80  RMK
  3. ;
  4. ; THIS ROUTINE IS A RELOCATING LOADER FOR ZX65.
  5. ; WHEN LINKED WITH ZX65R V 2.1, THIS LOADER ALLOWS THAT
  6. ; PROGRAM TO ACCOMODATE ANY SIZE CPM SYSTEM
  7. ;
  8.     GLOBAL    RELBAS
  9.     PSECT    ABS
  10. ;
  11. OFFSET    EQU    0F0FDH
  12. LNGTH    EQU    0F00H
  13. ;
  14. ; FIND ABSOLUTE BASE FOR ZX65
  15. ;
  16.     ORG    100H        ; FOR CPM
  17. LDE    LD    SP,LDE
  18.     LD    HL,(1)        ; WS VECTOR BIOS+3
  19.     LD    DE,OFFSET    ; CMP OFFSET
  20.     ADD    HL,DE
  21.     PUSH    HL        ; SAVE ABSBAS
  22.     CCF
  23.     LD    DE,RELBAS
  24.     PUSH    DE        ; SAVE RELBAS
  25.     SBC    HL,DE
  26.     EX    DE,HL        ; DE=XFRBAS
  27. ;
  28. ; ADJUST ALL INSTRUCTIONS TO ABSBAS
  29. ;
  30. AREL    LD    IX,REL2        ; 2-BYTE VALUES
  31. ALP    LD    IY,RELBAS
  32.     CALL    IXFER
  33.     JR    NZ,ALP-$
  34. ;
  35. BREL    LD    IX,REL3        ; 3-BYTE INSTRS
  36. BLP    LD    IY,RELBAS
  37.     INC    IY
  38.     CALL    IXFER
  39.     JR    NZ,BLP-$
  40. ;
  41. CREL    LD    IX,REL4        ; 4-BYTE INSTRS
  42. CLP    LD    IY,RELBAS
  43.     INC    IY
  44.     INC    IY
  45.     CALL    IXFER
  46.     JR    NZ,CLP-$
  47. ;
  48. ; MOVE PGM TO ABSBAS AND JUMP TO IT
  49. ;
  50.     POP    HL        ; RETRV RELBAS
  51.     POP    DE        ; RETRIEVE ABSBAS
  52.     PUSH    DE
  53.     LD    BC,LNGTH
  54.     LDIR
  55.     RET
  56. ;
  57. IXFER    LD    B,(IX+1)
  58.     LD    C,(IX+0)    ; BC=PGM OFFSET
  59.     LD    A,C
  60.     DEC    A
  61.     RET    Z
  62.     ADD    IY,BC        ; IY = INSTRUCTION
  63.     LD    H,(IY+1)
  64.     LD    L,(IY+0)    ; HL = REL TGT ADDR
  65.     ADD    HL,DE        ; HL = ABS TGT ADDR
  66.     LD    (IY+1),H
  67.     LD    (IY+0),L
  68.     INC    IX
  69.     INC    IX
  70.     RET
  71. ;
  72. ;
  73. ; RELOCATION TABLES FOR ZX65
  74. ; **** NOTE **** IF YOU MAKE ANY CHANGES IN ZX65R THAT
  75. ; AFFECT THE LOCATION OF ANY NON-RELOCATABLE INSTRUCTION
  76. ; THIS LOADER WILL NO LONGER WORK!!!
  77. ;
  78. REL2    DEFW    0D62H        ; 2-BYTE LABELS
  79.     DEFW    0D64H
  80.     DEFW    0D66H
  81.     DEFW    0D68H
  82.     DEFW    0D6AH
  83.     DEFW    0D6CH
  84.     DEFW    0D6EH
  85.     DEFW    0D70H
  86.     DEFW    0D72H
  87.     DEFW    0D74H
  88.     DEFW    0D76H
  89.     DEFW    0D78H
  90.     DEFW    0D7AH
  91.     DEFW    0D7CH
  92.     DEFW    0D7EH
  93.     DEFW    0D80H
  94.     DEFW    0D82H
  95.     DEFW    0D84H
  96.     DEFW    0D86H
  97.     DEFW    0D88H
  98.     DEFW    0D8AH
  99.     DEFW    0D8CH
  100.     DEFW    0D8EH
  101.     DEFW    0D90H
  102.     DEFW    0D92H
  103.     DEFW    0D94H
  104.     DEFW    0D96H
  105.     DEFW    0D98H
  106.     DEFW    0D9AH
  107.     DEFW    0D9CH
  108.     DEFW    0D9EH
  109.     DEFW    0DA0H
  110.     DEFW    0DA2H
  111.     DEFW    0DA4H
  112.     DEFW    0DA6H
  113.     DEFW    0DA8H
  114.     DEFW    0DAAH
  115.     DEFW    0DACH
  116.     DEFW    0001
  117. ;
  118. ; THREE-BYTE INSTRUCTIONS
  119. ;
  120. REL3    DEFW    0000H
  121.     DEFW    0005H
  122.     DEFW    0008H
  123.     DEFW    000FH
  124.     DEFW    0012H
  125.     DEFW    0015H
  126.     DEFW    0019H
  127.     DEFW    001CH
  128.     DEFW    001FH
  129.     DEFW    0024H
  130.     DEFW    0029H
  131.     DEFW    0036H
  132.     DEFW    003BH
  133.     DEFW    004CH
  134.     DEFW    0051H
  135.     DEFW    0056H
  136.     DEFW    005BH
  137.     DEFW    0060H
  138.     DEFW    0065H
  139.     DEFW    006AH
  140.     DEFW    0073H
  141.     DEFW    0076H
  142.     DEFW    007EH
  143.     DEFW    0081H
  144.     DEFW    0084H
  145.     DEFW    0087H
  146.     DEFW    008DH
  147.     DEFW    009CH
  148.     DEFW    009FH
  149.     DEFW    00A6H
  150.     DEFW    00B5H
  151.     DEFW    00BAH
  152.     DEFW    00C1H
  153.     DEFW    00C4H
  154.     DEFW    00C9H
  155.     DEFW    00D0H
  156.     DEFW    00D7H
  157.     DEFW    00DEH
  158.     DEFW    00E1H
  159.     DEFW    00E4H
  160.     DEFW    00F3H
  161.     DEFW    00F6H
  162.     DEFW    00FCH
  163.     DEFW    00FFH
  164.     DEFW    0102H
  165.     DEFW    0114H
  166.     DEFW    011BH
  167.     DEFW    0122H
  168.     DEFW    0125H
  169.     DEFW    0153H
  170.     DEFW    016BH
  171.     DEFW    0172H
  172.     DEFW    0178H
  173.     DEFW    017FH
  174.     DEFW    0186H
  175.     DEFW    018EH
  176.     DEFW    0193H
  177.     DEFW    0196H
  178.     DEFW    0199H
  179.     DEFW    019EH
  180.     DEFW    01A3H
  181.     DEFW    01ADH
  182.     DEFW    01B2H
  183.     DEFW    01B7H
  184.     DEFW    01BCH
  185.     DEFW    01BFH
  186.     DEFW    01C9H
  187.     DEFW    01CEH
  188.     DEFW    01D1H
  189.     DEFW    01DDH
  190.     DEFW    01E2H
  191.     DEFW    01E5H
  192.     DEFW    01EBH
  193.     DEFW    01F0H
  194.     DEFW    01F3H
  195.     DEFW    01FAH
  196.     DEFW    0205H
  197.     DEFW    0209H
  198.     DEFW    021EH
  199.     DEFW    0221H
  200.     DEFW    0227H
  201.     DEFW    025FH
  202.     DEFW    0266H
  203.     DEFW    026BH
  204.     DEFW    0271H
  205.     DEFW    027EH
  206.     DEFW    028BH
  207.     DEFW    0291H
  208.     DEFW    0296H
  209.     DEFW    0299H
  210.     DEFW    02A3H
  211.     DEFW    02A9H
  212.     DEFW    02ACH
  213.     DEFW    02B7H
  214.     DEFW    02BDH
  215.     DEFW    02C0H
  216.     DEFW    02CDH
  217.     DEFW    02E8H
  218.     DEFW    0313H
  219.     DEFW    031EH
  220.     DEFW    0332H
  221.     DEFW    0339H
  222.     DEFW    0364H
  223.     DEFW    036BH
  224.     DEFW    0371H
  225.     DEFW    0374H
  226.     DEFW    037EH
  227.     DEFW    038CH
  228.     DEFW    0390H
  229.     DEFW    0393H
  230.     DEFW    0399H
  231.     DEFW    039CH
  232.     DEFW    03A2H
  233.     DEFW    03A5H
  234.     DEFW    03ABH
  235.     DEFW    03B1H
  236.     DEFW    03B4H
  237.     DEFW    03E3H
  238.     DEFW    0415H
  239.     DEFW    0418H
  240.     DEFW    042EH
  241.     DEFW    0435H
  242.     DEFW    0438H
  243.     DEFW    043DH
  244.     DEFW    0440H
  245.     DEFW    044AH
  246.     DEFW    044DH
  247.     DEFW    0451H
  248.     DEFW    0454H
  249.     DEFW    045EH
  250.     DEFW    046FH
  251.     DEFW    0476H
  252.     DEFW    047BH
  253.     DEFW    047EH
  254.     DEFW    0484H
  255.     DEFW    0487H
  256.     DEFW    048BH
  257.     DEFW    048EH
  258.     DEFW    0498H
  259.     DEFW    049EH
  260.     DEFW    04A4H
  261.     DEFW    04AAH
  262.     DEFW    04B4H
  263.     DEFW    04BAH
  264.     DEFW    04C0H
  265.     DEFW    04C6H
  266.     DEFW    04D0H
  267.     DEFW    04D4H
  268.     DEFW    04D7H
  269.     DEFW    04E1H
  270.     DEFW    04E5H
  271.     DEFW    04E8H
  272.     DEFW    04EEH
  273.     DEFW    04F1H
  274.     DEFW    04F9H
  275.     DEFW    04FEH
  276.     DEFW    0504H
  277.     DEFW    0514H
  278.     DEFW    051CH
  279.     DEFW    052FH
  280.     DEFW    0542H
  281.     DEFW    054EH
  282.     DEFW    0555H
  283.     DEFW    0561H
  284.     DEFW    0568H
  285.     DEFW    0574H
  286.     DEFW    057FH
  287.     DEFW    0587H
  288.     DEFW    0598H
  289.     DEFW    05ABH
  290.     DEFW    05B1H
  291.     DEFW    05B7H
  292.     DEFW    05BDH
  293.     DEFW    05C3H
  294.     DEFW    05CDH
  295.     DEFW    05D7H
  296.     DEFW    065AH
  297.     DEFW    06E9H
  298.     DEFW    06ECH
  299.     DEFW    06EFH
  300.     DEFW    06F3H
  301.     DEFW    06F6H
  302.     DEFW    06F9H
  303.     DEFW    06FCH
  304.     DEFW    0715H
  305.     DEFW    0718H
  306.     DEFW    071BH
  307.     DEFW    0722H
  308.     DEFW    0725H
  309.     DEFW    072CH
  310.     DEFW    073DH
  311.     DEFW    074BH
  312.     DEFW    074EH
  313.     DEFW    0751H
  314.     DEFW    0755H
  315.     DEFW    0758H
  316.     DEFW    075BH
  317.     DEFW    075FH
  318.     DEFW    0762H
  319.     DEFW    0765H
  320.     DEFW    076FH
  321.     DEFW    0778H
  322.     DEFW    077BH
  323.     DEFW    0782H
  324.     DEFW    0791H
  325.     DEFW    0798H
  326.     DEFW    079DH
  327.     DEFW    07A3H
  328.     DEFW    07A8H
  329.     DEFW    07ABH
  330.     DEFW    07B8H
  331.     DEFW    07C3H
  332.     DEFW    07CCH
  333.     DEFW    07D5H
  334.     DEFW    07D8H
  335.     DEFW    07DEH
  336.     DEFW    07EBH
  337.     DEFW    07F2H
  338.     DEFW    07F5H
  339.     DEFW    07F8H
  340.     DEFW    07FBH
  341.     DEFW    0804H
  342.     DEFW    0807H
  343.     DEFW    080AH
  344.     DEFW    080DH
  345.     DEFW    0813H
  346.     DEFW    0816H
  347.     DEFW    081BH
  348.     DEFW    081EH
  349.     DEFW    0821H
  350.     DEFW    082EH
  351.     DEFW    0831H
  352.     DEFW    0834H
  353.     DEFW    0837H
  354.     DEFW    0840H
  355.     DEFW    0843H
  356.     DEFW    0846H
  357.     DEFW    0849H
  358.     DEFW    085FH
  359.     DEFW    0862H
  360.     DEFW    08A7H
  361.     DEFW    08AAH
  362.     DEFW    08ADH
  363.     DEFW    08B0H
  364.     DEFW    08B6H
  365.     DEFW    08B9H
  366.     DEFW    08BCH
  367.     DEFW    08CBH
  368.     DEFW    08CEH
  369.     DEFW    08D1H
  370.     DEFW    08D7H
  371.     DEFW    0902H
  372.     DEFW    0905H
  373.     DEFW    090AH
  374.     DEFW    090EH
  375.     DEFW    0911H
  376.     DEFW    091DH
  377.     DEFW    0920H
  378.     DEFW    0936H
  379.     DEFW    093AH
  380.     DEFW    093DH
  381.     DEFW    0995H
  382.     DEFW    0998H
  383.     DEFW    099DH
  384.     DEFW    09A0H
  385.     DEFW    09A3H
  386.     DEFW    09A6H
  387.     DEFW    09B4H
  388.     DEFW    09BAH
  389.     DEFW    09C0H
  390.     DEFW    09E7H
  391.     DEFW    09EAH
  392.     DEFW    0A04H
  393.     DEFW    0A07H
  394.     DEFW    0A0EH
  395.     DEFW    0A29H
  396.     DEFW    0A3EH
  397.     DEFW    0A41H
  398.     DEFW    0A4CH
  399.     DEFW    0A51H
  400.     DEFW    0A56H
  401.     DEFW    0A5BH
  402.     DEFW    0A60H
  403.     DEFW    0A63H
  404.     DEFW    0A6DH
  405.     DEFW    0A72H
  406.     DEFW    0A75H
  407.     DEFW    0A7CH
  408.     DEFW    0A81H
  409.     DEFW    0A9BH
  410.     DEFW    0AB3H
  411.     DEFW    0AC0H
  412.     DEFW    0AD3H
  413.     DEFW    0AE6H
  414.     DEFW    0AF0H
  415.     DEFW    0AFAH
  416.     DEFW    0B00H
  417.     DEFW    0B0FH
  418.     DEFW    0B16H
  419.     DEFW    0B1BH
  420.     DEFW    0B22H
  421.     DEFW    0B29H
  422.     DEFW    0B2EH
  423.     DEFW    0B31H
  424.     DEFW    0B34H
  425.     DEFW    0B37H
  426.     DEFW    0B3AH
  427.     DEFW    0B3DH
  428.     DEFW    0B40H
  429.     DEFW    0B43H
  430.     DEFW    0B46H
  431.     DEFW    0B49H
  432.     DEFW    0B4CH
  433.     DEFW    0B4FH
  434.     DEFW    0B52H
  435.     DEFW    0B55H
  436.     DEFW    0B58H
  437.     DEFW    0001
  438. ;
  439. ; FOUR-BYTE INSTRUCTIONS
  440. ;
  441. REL4    DEFW    000BH
  442.     DEFW    002CH
  443.     DEFW    0046H
  444.     DEFW    006FH
  445.     DEFW    0098H
  446.     DEFW    00A2H
  447.     DEFW    00A9H
  448.     DEFW    00D3H
  449.     DEFW    00DAH
  450.     DEFW    00E9H
  451.     DEFW    00EDH
  452.     DEFW    0117H
  453.     DEFW    011EH
  454.     DEFW    012CH
  455.     DEFW    0165H
  456.     DEFW    0182H
  457.     DEFW    022DH
  458.     DEFW    02E4H
  459.     DEFW    032EH
  460.     DEFW    0335H
  461.     DEFW    03E8H
  462.     DEFW    042AH
  463.     DEFW    0431H
  464.     DEFW    0614H
  465.     DEFW    061AH
  466.     DEFW    0620H
  467.     DEFW    0632H
  468.     DEFW    0643H
  469.     DEFW    0656H
  470.     DEFW    07EEH
  471.     DEFW    0825H
  472.     DEFW    08BFH
  473.     DEFW    08DAH
  474.     DEFW    08DEH
  475.     DEFW    098BH
  476.     DEFW    09AAH
  477.     DEFW    09F3H
  478.     DEFW    0A3AH
  479.     DEFW    0001
  480.     DEFW    0
  481. ;
  482.  
  483.  
  484.