home *** CD-ROM | disk | FTP | other *** search
/ Falcon 030 Power 2 / F030_POWER2.iso / ST_STE / MAGS / TOXIC_14.ARJ / toxic_14 / TOXIC_14.D_2 / LEONARD / LEO_ST.ZIP / ST_PC / SYSTEM / ST_SYS.S < prev    next >
Text File  |  1989-07-29  |  15KB  |  767 lines

  1.  
  2. ;****************************************************************
  3. ;*                                *
  4. ;*    ST-SYS:                            *
  5. ;*    System resident ST pour recevoir des BIN PC.        *
  6. ;*    (C)OXYGENE 1995 by Leonard.                *
  7. ;*                                *
  8. ;*    Modifs pour system relogeable et download a adresse    *
  9. ;*    non fixe Fev 96.                    *
  10. ;*                                *
  11. ;****************************************************************
  12.  
  13. CMD_READ    equ    8
  14. CMD_WRITE    equ    9
  15. LDEBUG        equ    1
  16.  
  17. BLOCK_SIZE    equ    2048
  18. BLOCK_INFO_SIZE    equ    32
  19.  
  20. LOAD_ONLY    equ    0
  21. LOAD_AND_RUN    equ    1
  22. BLOCK_RUN    equ    2
  23. BLOCK_SAVE    equ    3
  24. FILE_COPY    equ    4
  25.  
  26.  
  27.         clr.l    -(sp)
  28.         move.w    #32,-(sp)
  29.         trap    #1
  30.  
  31.         pea    txt_intro(pc)
  32.         move.w    #9,-(sp)
  33.         trap    #1
  34.         move.w    #7,-(sp)
  35.         trap    #1
  36.         addq.l    #8,sp
  37.         cmpi.b    #'e',d0
  38.         beq.s    Write
  39.  
  40.         clr.w    -(sp)
  41.         trap    #1
  42.  
  43. Write
  44.         pea    txt_write(pc)
  45.         move.w    #9,-(sp)
  46.         trap    #1
  47.         addq.l    #6,sp
  48.  
  49.         clr.l    $200-8.w
  50.  
  51.     ;--------------------------------------------
  52.     ; Write boot sector.
  53.     ;--------------------------------------------
  54.         bsr    Write_Boot
  55.  
  56.  
  57.     ;--------------------------------------------
  58.     ; Write system
  59.     ;--------------------------------------------
  60.         bsr    Write_Sys
  61.  
  62.  
  63.     ;--------------------------------------------
  64.     ; Return to GEM.
  65.     ;--------------------------------------------
  66.         lea    txt_presskey,a0
  67.         bsr    ins_print
  68.  
  69.         move.w    #7,-(sp)
  70.         trap    #1
  71.         addq.w    #2,sp
  72.  
  73.         clr.w    -(sp)
  74.         trap    #1
  75.  
  76.  
  77.  
  78.  
  79. ;************************************************************************
  80. ; FONCTIONS
  81. ;************************************************************************
  82.  
  83. ins_print
  84.         pea    (a0)
  85.         move.w    #9,-(sp)
  86.         trap    #1
  87.         addq.l    #6,sp
  88.         rts
  89.  
  90.  
  91.  
  92.  
  93.  
  94. Write_Boot
  95.  
  96.         move.w    #(finboot-My_Boot),d0
  97.         cmpi.w    #480-2,d0
  98.         bls.s    .ok
  99.  
  100.         lea    txt_boottroplong,a0
  101.         bsr    ins_print
  102.         rts
  103.  
  104. .ok:        lea    txt_writeboot,a0
  105.         bsr    ins_print
  106.  
  107.         lea    boot_buffer,a0
  108.         moveq    #0,d0        ; piste
  109.         moveq    #0,d1        ; face
  110.         moveq    #1,d2        ; 1 secteur
  111.         moveq    #CMD_READ,d3
  112.         bsr    Track_Acces
  113.         lea    My_Boot,a0
  114.         lea    boot_buffer,a1
  115.         move.w    #$601e,(a1)    ; BRA.S du boot.
  116.         lea    32(a1),a1
  117.         moveq    #480/4-1,d0
  118. .copy:        move.l    (a0)+,(a1)+
  119.         dbf    d0,.copy
  120.         lea    boot_buffer,a0
  121.         moveq    #0,d0
  122.         move.w    #510/2-1,d1
  123. .count:        add.w    (a0)+,d0
  124.         dbf    d1,.count
  125.         move.w    #$1234,d1
  126.         sub.w    d0,d1
  127.         move.w    d1,(a0)
  128.         lea    boot_buffer,a0
  129.         moveq    #0,d0        ; piste
  130.         moveq    #0,d1        ; face
  131.         moveq    #1,d2        ; 1 secteur
  132.         moveq    #CMD_WRITE,d3
  133.         bsr    Track_Acces
  134.         rts
  135.  
  136.  
  137.  
  138.  
  139. Write_Sys
  140.         lea    txt_writesys,a0
  141.         bsr    ins_print
  142.         clr.w    -(sp)        ; Attribut normal.
  143.         pea    sysname
  144.         move.w    #$3c,-(sp)    ; FCREATE
  145.         trap    #1
  146.         addq.l    #8,sp
  147.         tst.l    d0
  148.         bpl.s    .ok
  149.         lea    txt_writesyserror,a0
  150.         bsr    ins_print
  151.         rts
  152. .ok:        move.w    d0,d7        ; handle
  153.         pea    My_Sys            ; Adresse buffer.
  154.         move.l    #(finsys-My_Sys),-(sp)    ; Taille system.
  155.         move.w    d7,-(sp)
  156.         move.w    #$40,-(sp)        ; FWRITE
  157.         trap    #1
  158.         lea    12(sp),sp
  159.         move.w    d7,-(sp)
  160.         move.w    #$3e,-(sp)        ; FCLOSE
  161.         trap    #1
  162.         addq.l    #4,sp
  163.         rts
  164.  
  165.  
  166.  
  167. ; D0: Track
  168. ; D1: Side
  169. ; D2: Nb sector
  170. ; D3: Command (8=read,9=write)
  171. ; A0: Buffer adress.
  172. Track_Acces    cmpi.w    #CMD_READ,d3
  173.         beq.s    .ok
  174.         cmpi.w    #CMD_WRITE,d3
  175.         bne.s    .non
  176. .ok:        and.w    #1,d1
  177.         move.w    d2,-(sp)    ; Count
  178.         move.w    d1,-(sp)    ; Side
  179.         move.w    d0,-(sp)    ; Track
  180.         move.w    #1,-(sp)    ; Secteur deb
  181.         clr.w    -(sp)        ; Drive A:
  182.         clr.l    -(sp)
  183.         pea    (a0)        ; buffer
  184.         move.w    d3,-(sp)    ; Command
  185.         trap    #14
  186.         lea    20(sp),sp
  187. .non:        rts
  188.  
  189.  
  190.  
  191. txt_intro
  192.         dc.b    27,'E'
  193.         dc.b    'ATARI-PC system installator.',10,13
  194.         dc.b    '(C)OXYGENE 95 by Leonard.',10,13,10,13
  195.         dc.b    'Ce prog va creer un boot secteur',10,13
  196.         dc.b    'et un fichier LEO_PC.SYS sur la',10,13
  197.         dc.b    'disquette A:',10,13
  198.         dc.b    'Appuyez sur "e" pour ecrire.',10,13,7,0
  199.  
  200. txt_write    dc.b    'Writing system...',10,13,0
  201. txt_error    dc.b    'Error on writing track 80,10 sectors.',10,13,0
  202. txt_size    dc.b    'ERROR: System is too large.',10,13,0
  203. txt_boottroplong
  204.         dc.b    'BOOT trop long. ( > à 478 octets).',10,13,0
  205. txt_writeboot
  206.         dc.b    'Ecriture du boot-secteur...',10,13,0
  207. txt_writesys
  208.         dc.b    'Creation du fichier system LEO_PC.SYS',10,13,0
  209. txt_writesyserror
  210.         dc.b    'ERROR in writing LEO_PC.SYS',10,13,0
  211. txt_presskey
  212.         dc.b    10,13
  213.         dc.b    'Press a key to return to GEM.',10,13,0
  214.  
  215.  
  216.         even
  217.  
  218.  
  219. boot_buffer    ds.b    512
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228. ;********************************************************************
  229. ;********************************************************************
  230. ;********************************************************************
  231. ;********************************************************************
  232.  
  233.  
  234. ;**************************************
  235. ;
  236. ;    Boot Secteur system.
  237. ;
  238. ;**************************************
  239.  
  240. My_Boot
  241.         addq.l    #4,4(sp)        ; Skip le BSR du wait disk dur en ROM.
  242.                         ; (fast boot)
  243.         cmpi.l    #'LEO!',$200.w
  244.         bne.s    boot_sys
  245.  
  246. nosys:        clr.l    $200.w
  247.         lea    normaltxt(pc),a0
  248.  
  249. print        pea    (a0)
  250.         move.w    #9,-(sp)
  251.         trap    #1
  252.         addq.l    #6,sp
  253.         rts
  254.  
  255. boot_sys:
  256.         lea    sysloadtxt(pc),a0
  257.         bsr.s    print
  258.  
  259.     ;------------------------------------------------------
  260.     ;    Fast load.
  261.     ;------------------------------------------------------
  262.         cmpi.l    #'LEO!',($200-8).w
  263.         bne.s    .loading
  264.         move.l    ($200-4).w,a6        ; Adresse du bin.
  265.         cmpi.l    #'LEO!',2(a6)        ; Second check
  266.         bne.s    .loading
  267.         jmp    (a6)
  268.         
  269.     ;------------------------------------------------------
  270.     ; Lecture du fichier system.
  271.     ;------------------------------------------------------
  272. .loading:    clr.w    -(sp)        ; Lecture uniquement.
  273.         pea    sysname(pc)
  274.         move.w    #$3d,-(sp)    ; FOPEN
  275.         trap    #1
  276.         addq.l    #8,sp
  277.         tst.l    d0
  278.         bpl.s    .ok
  279.         lea    errortxt(pc),a0
  280.         bsr.s    print
  281.         bra.s    nosys
  282.  
  283. .ok:        move.w    d0,d7        ; handle
  284.         move.l    $436.w,a6    ; Max memoire utilisateur.
  285.         sub.l    #(finsys-My_Sys),a6
  286.         pea    (a6)
  287.         pea    (finsys-My_Sys)    ; Taille maxi a charger.
  288.         move.w    d7,-(sp)    ; handle
  289.         move.w    #$3f,-(sp)    ; FREAD
  290.         trap    #1
  291.         lea    12(sp),sp
  292.         move.l    d0,d6        ; Taille reelle du system
  293.         move.w    d7,-(sp)    ; handle
  294.         move.w    #$3e,-(sp)    ; FCLOSE
  295.         trap    #1
  296.         addq.l    #4,sp
  297.         move.l    #'LEO!',($200-8).w
  298.         move.l    a6,($200-4).w
  299.         jmp    (a6)
  300.  
  301. hellotxt    dc.b    27,'E'
  302.         dc.b    'ATARI-PC system.',10,13
  303.         dc.b    '(C)OXYGENE 1995 by Leonard.',10,13,10,13,0
  304.  
  305. errortxt    dc.b    7,'LEO_PC.SYS not found.',10,13,0
  306.  
  307. normaltxt
  308.         dc.b    'SYSTEM skipped, starting',10,13
  309.         dc.b    'normal ST boot...',0
  310.  
  311. sysloadtxt    dc.b    'Installing, please wait.',10,13,0
  312.  
  313. sysname        dc.b    'LEO_PC.SYS',0
  314.  
  315.         even
  316. finboot:
  317.     rept    480/8
  318.     dc.b    'LEONARD!'
  319.     endr
  320.     even
  321.  
  322.  
  323. ;*******************************************************************
  324.  
  325. ;*******************************************************************
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332. ;*******************************************************************
  333. ;*******************************************************************
  334. ;*******************************************************************
  335. ;*******************************************************************
  336. ;*******************************************************************
  337. ;*******************************************************************
  338. ;*******************************************************************
  339.  
  340. FLAGSTE        equ    0
  341. RAMTOP        equ    2
  342. SCREEN_SYS    equ    6
  343. TOWER_AD    equ    10
  344.  
  345.  
  346. READ_WAIT_MI    macro
  347.         move.w    (a5),d0        ; 02
  348.         bmi.s    *-2        ; 02
  349.         move.w    (a5),d0        ; 02
  350. ;        bmi.s    *-6
  351.         bmi.s    *-2
  352.         endm
  353. READ_WAIT_PL    macro
  354.         move.w    (a5),d0        ; 02
  355.         bpl.s    *-2        ; 02
  356.         move.w    (a5),d0        ; 02
  357. ;        bpl.s    *-6
  358.         bpl.s    *-2
  359.         endm
  360.  
  361.  
  362. My_Sys
  363.         bra.s    .start
  364.         dc.b    'LEO!'
  365. .start:
  366.  
  367.     IFNE    LDEBUG
  368.         bsr    ldebuger
  369.     ENDC
  370.     ;----------------------------------------------
  371.     ; STE ou STF ??
  372.     ;----------------------------------------------
  373.         lea    mybss(pc),a6
  374.         sf    FLAGSTE(a6)
  375.         movea.w    #$820d,a0
  376.         clr.b    (a0)
  377.         add.b    #8,(a0)
  378.         cmpi.b    #8,(a0)
  379.         bne.s    .stf
  380.         sub.b    #8,(a0)
  381.         bne.s    .stf
  382.         st    FLAGSTE(a6)
  383. .stf:
  384.  
  385.     ;----------------------------------------------
  386.     ; Cherche le TOP physique de la RAM.
  387.     ;----------------------------------------------
  388.  
  389.         lea    My_Sys(pc),a0
  390.         move.l    a0,d0
  391.         eor.b    d0,d0            ; TOP RAM multiple de 256 octets.
  392.         move.l    d0,RAMTOP(a6)
  393.         subi.l    #32000,d0
  394.         move.l    d0,SCREEN_SYS(a6)
  395.         subi.l    #65536,d0
  396.         move.l    d0,TOWER_AD(a6)
  397.  
  398. Reset
  399.  
  400.         lea    binaryOk(pc),a6
  401.         sf    (a6)
  402.         bsr    Set_Screen
  403.  
  404.     ;*****************************************************
  405.  
  406.         lea    txt_welcome(pc),a0
  407.         bsr    Sys_Print
  408.         bsr    built_tower
  409.         bra    wait_send
  410.  
  411.  
  412. True_Reset:    move.l    #'LEO!',$200.w
  413.         clr.l    $426.w
  414.         clr.l    $42a.w
  415.         move.l    $4.w,a0
  416.         jmp    (a0)
  417.  
  418. Set_Screen
  419.         lea    mybss(pc),a6
  420.         move.l    SCREEN_SYS(a6),a0
  421.         move.w    #1,-(sp)
  422.         pea    (a0)
  423.         pea    (a0)
  424.         move.w    #5,-(sp)
  425.         trap    #14
  426.         lea    12(sp),sp
  427.         move.l    #$0fff0000,$ffff8240.w
  428.         clr.l    $ffff8244.w
  429.         pea    .txt(pc)
  430.         move.w    #9,-(sp)
  431.         trap    #1
  432.         addq.l    #6,sp
  433.         rts
  434. .txt:        dc.b    27,'E',0
  435.         even
  436.  
  437.  
  438.  
  439. wait_send
  440.         lea    txt_wait(pc),a0
  441.         bsr    Sys_Print
  442.  
  443.         move.w    #$2700,sr
  444.  
  445.         lea    $ffff8800.w,a6
  446.         moveq    #BLOCK_INFO_SIZE/2-1,d1            ; 8octets pour block_info.
  447.         lea    tempInfos(pc),a1
  448.  
  449.         lea    $ffff9202,a5
  450. .wait_255:    cmpi.b    #57,$fffffc02.w
  451.         beq    True_Reset
  452.         move.w    (a5),d0
  453.         bmi.s    .wait_255
  454.  
  455.  
  456.     ;------------------------------------------------
  457.     ; reception du block info
  458.     ;------------------------------------------------
  459. .w1:        READ_WAIT_MI
  460.         move.b    d0,(a1)+
  461.         READ_WAIT_PL
  462.         move.b    d0,(a1)+
  463.         dbf    d1,.w1
  464.  
  465.  
  466.     ;------------------------------------------------
  467.     ; Reception du block binaire.
  468.     ;------------------------------------------------
  469. ;        lea    txt_receive(pc),a0
  470. ;        bsr    Sys_Print
  471.  
  472. ;        move.w    binaryMode(pc),d0
  473.         move.w    tempInfos+10(pc),d0
  474.         lea    binaryMode(pc),a0
  475.         move.w    d0,(a0)
  476.         cmpi.w    #BLOCK_RUN,d0
  477.         beq    blockRun
  478.         cmpi.w    #BLOCK_SAVE,d0
  479.         beq    blockSave
  480.         
  481.         movem.l    tempInfos(pc),d0-d7
  482.         lea    info_block(pc),a0
  483.         movem.l    d0-d7,(a0)
  484.  
  485.         bsr    printBlockInfos
  486.         
  487.         move.l    binarySize(pc),d7
  488.         move.l    d7,$200.w
  489.         move.l    binaryAd(pc),a2        ; Adresse de chargement.
  490.         lea    $ffff9202.w,a5
  491.  
  492.         move.w    #$400,$ffff8240.w    ; ROUGE: Debut de reception.
  493.  
  494.         moveq    #0,d6
  495.         add.l    #BLOCK_SIZE-1,d7
  496.     IFEQ    (BLOCK_SIZE-2048)
  497.         lsr.l    #8,d7
  498.         lsr.l    #3,d7
  499.     ELSEIF
  500.         fail
  501.     ENDC
  502.  
  503.         lea    end_receive(pc),a4
  504.         lea    mybss(pc),a6
  505.         move.l    TOWER_AD(a6),a6
  506.         jmp    (a6)
  507.  
  508. end_receive
  509.         move.w    #$2300,sr
  510.         move.w    #$0fff,$ffff8240.w
  511.  
  512.     ;-------------------------------------------------
  513.     ; Checksum
  514.     ;-------------------------------------------------
  515.         lea    txt_check(pc),a0
  516.         bsr    Sys_Print
  517.  
  518.         move.l    binaryAd(pc),a0
  519.         move.l    binarySize(pc),d7
  520.         moveq    #0,d0
  521.         moveq    #0,d1
  522. .chk:        move.b    (a0)+,d0
  523.         add.w    d0,d1
  524.         subq.l    #1,d7
  525.         bne.s    .chk
  526.  
  527.         move.w    binaryCheck(pc),d0
  528.         move.w    d0,$204.w
  529.         move.w    d1,$206.w
  530.         cmp.w    d0,d1
  531.         beq    CheckOk
  532.  
  533.         lea    txt_check_error(pc),a0
  534.         bsr    Sys_Print
  535.         move.w    #7,-(sp)
  536.         trap    #1
  537.         addq.w    #2,sp
  538.         bra    Reset
  539.  
  540.  
  541. CheckOk        lea    binaryOk(pc),a6
  542.         st    (a6)
  543.  
  544.         move.w    binaryMode(pc),d0
  545.         cmpi.w    #LOAD_ONLY,d0
  546.         beq    wait_send
  547.         cmpi.w    #FILE_COPY,d0
  548.         beq    blockSave
  549.  
  550. blockRun:
  551.         lea    binaryOk(pc),a0
  552.         tst.b    (a0)
  553.         beq    binaryNoOk
  554.     IFNE    LDEBUG
  555.         bsr    ldebuger
  556.     ENDC
  557.         lea    oldtrap+2(pc),a0
  558.         tst.l    (a0)
  559.         bne.s    .ok
  560.         move.l    $84.w,(a0)
  561. .ok:        lea    myTrap(pc),a0
  562.         move.l    a0,$84.w
  563.         move.l    binaryAd(pc),a0
  564.         jmp    (a0)
  565.         
  566. myTrap:        move.w    6(sp),d0
  567.         bne.s    oldtrap
  568.         move.w    #$2300,sr
  569.         addq.l    #6+2,sp
  570.         bra    Reset
  571. oldtrap:    jmp    $0
  572.  
  573.  
  574. blockSave    lea    binaryOk(pc),a0
  575.         tst.b    (a0)
  576.         beq    binaryNoOk
  577.         
  578.         lea    .txt(pc),a0
  579.         bsr    Sys_Print
  580.         lea    .txt3(pc),a0
  581.         move.l    binarySize(pc),d0
  582.         bsr    printNumber
  583.         lea    info_block+16(pc),a0
  584.         bsr    Sys_Print
  585.         lea    .txt2(pc),a0
  586.         bsr    Sys_Print
  587.  
  588.         lea    info_block+16(pc),a0
  589.         bsr    writeFile        
  590.         
  591.         bra    wait_send
  592.         
  593.  
  594.     ;**********************************************************        
  595.  
  596. .txt:        dc.b    'Writing file "',0
  597. .txt2:        dc.b    '" ($'
  598. .txt3:        dc.b    'xxxxxxxx bytes)...',10,13,0
  599.         even        
  600.  
  601. writeFile:    clr.w    -(sp)        ; Attribut normal.
  602.         pea    (a0)        ; Nom du fichier
  603.         move.w    #$3c,-(sp)    ; FCREATE
  604.         trap    #1
  605.         addq.l    #8,sp
  606.         tst.l    d0
  607.         bmi.s    .error
  608.         move.w    d0,d7        ; handle
  609.         move.l    binaryAd(pc),-(sp)
  610.         move.l    binarySize(pc),-(sp)
  611.         move.w    d7,-(sp)
  612.         move.w    #$40,-(sp)        ; FWRITE
  613.         trap    #1
  614.         lea    12(sp),sp
  615.         tst.l    d0
  616.         bmi.s    .error
  617.         move.w    d7,-(sp)
  618.         move.w    #$3e,-(sp)        ; FCLOSE
  619.         trap    #1
  620.         addq.l    #4,sp
  621.         tst.l    d0
  622.         bmi.s    .error
  623.         rts
  624.         
  625.     ;**********************************************************        
  626. .error:        lea    .txtError(pc),a0
  627.         bsr    Sys_Print
  628.         bra    wait_send
  629.  
  630. .txtError:    dc.b    'BIOS Fwrite failed.',10,13,0
  631.         even
  632.         
  633.  
  634. binaryNoOk    lea    .txt(pc),a0
  635.         bsr    Sys_Print
  636.         bra    wait_send
  637. .txt:        dc.b    'RUN ERROR:No binary block in memory.',10,13,0
  638.         even
  639.  
  640.  
  641. vbl        addq.l    #1,$466.w
  642.         rte
  643.  
  644.  
  645. ;******************************************************************************
  646.  
  647. printBlockInfos    move.l    binarySize(pc),d0
  648.         lea    .txt2(pc),a0
  649.         bsr    printNumber
  650.         move.l    binaryAd(pc),d0
  651.         lea    .txt3(pc),a0
  652.         bsr    printNumber
  653.         lea    .txt(pc),a0
  654.         bsr    Sys_Print
  655.         rts
  656.  
  657. .txt:        dc.b    'Loading $'
  658. .txt2:        dc.b    'xxxxxxxx bytes at '
  659. .txt3:        dc.b    'xxxxxxxx adress...',10,13,0
  660.         even
  661.  
  662. printNumber    movem.l    d1-d2,-(sp)
  663.         moveq    #8-1,d1
  664. .loop:        rol.l    #4,d0
  665.         moveq    #15,d2
  666.         and.w    d0,d2
  667.         move.b    .tab(pc,d2.w),(a0)+
  668.         dbf    d1,.loop
  669.         movem.l    (sp)+,d1-d2
  670.         rts
  671.  
  672.         rts
  673. .tab:        dc.b    '0123456789ABCDEF'
  674.         even
  675.  
  676. Sys_Print    pea    (a0)
  677.         move.w    #9,-(sp)
  678.         trap    #1
  679.         addq.l    #6,sp
  680.         rts
  681.  
  682. built_tower
  683.         lea    mybss(pc),a6
  684.         move.l    TOWER_AD(a6),a6
  685.         move.l    a6,d7
  686.         move.w    #BLOCK_SIZE/2-1,d0
  687. .loop:        lea    inst1(pc),a0
  688. .copy:        move.w    (a0)+,(a6)+
  689.         tst.w    (a0)
  690.         bne.s    .copy
  691.         dbf    d0,.loop
  692.         move.w    inst4(pc),(a6)+
  693.         move.w    inst5(pc),(a6)+
  694.         move.l    a6,d0
  695.         sub.l    d0,d7
  696.         move.w    d7,(a6)+
  697.         move.w    inst6(pc),(a6)+
  698.         rts
  699.  
  700. inst1:
  701.         READ_WAIT_MI
  702.         move.b    d0,(a2)+
  703.         READ_WAIT_PL
  704.         move.b    d0,(a2)+
  705.         dc.w    0
  706.  
  707. inst4        subq.l    #1,d7        ; 1 mot lu.
  708. inst5        bne    inst1
  709. inst6        jmp    (a4)
  710.  
  711.  
  712.  
  713. ;save        dcb.l    8,0
  714. ;        dcb.l    8,0
  715. ;        dcb.l    8,0
  716. ;mfp        dcb.b    16,0
  717. ;        even
  718. ;xp        dc.w    0
  719. ;        dc.w    0
  720. binaryOk:    dc.b    0
  721.         even
  722. info_block:
  723. binarySize:    dc.l    0
  724. binaryCheck:    dc.w    0
  725. binaryAd:    dc.l    0
  726. binaryMode:    dc.w    0
  727.         ds.b    BLOCK_INFO_SIZE
  728.         even
  729. tempInfos    ds.b    BLOCK_INFO_SIZE
  730.         even
  731.  
  732.  
  733. ;****************************************************************
  734.  
  735. mybss        ds.b    16
  736.  
  737. ;****************************************************************
  738. ;font88        incbin    "griff.fnt"
  739. ;        even
  740.  
  741. txt_welcome    dc.b    'ST-PC System.',10,13
  742.         dc.b    '(C)OXYGENE 1995 by Leonard.',10,13
  743.         dc.b    'ST BIOS & XBIOS...: Installed.',10,13
  744.         dc.b    'Leonard Debugger..: '
  745.     IFNE    LDEBUG
  746.         dc.b    'Installed.',10,13
  747.     ELSEIF
  748.         dc.b    'Not installed.',10,13
  749.     ENDC
  750.         dc.b    10,13,0
  751. txt_wait    dc.b    'Waiting for PC command...(Press space to skip)',10,13,0
  752. txt_check    dc.b    'Calculating checksum...',10,13,0
  753. txt_check_error dc.b    'CHECKSUM ERROR.',10,13,0
  754.         dc.b    'SPACE to restart.',0
  755.         even
  756.     IFNE    LDEBUG
  757. ldebuger    incbin    "ldebug.bin"
  758.         even
  759.     ENDC
  760. finsys:
  761.  
  762.  
  763.  
  764.     END
  765.  
  766.  
  767.