home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / telecomm / neocom / div_prg / 8_kbuf / x_kbuf.s < prev   
Text File  |  1993-10-21  |  2KB  |  68 lines

  1. ;-----------------------------------------------------------------------------
  2. ;File name:    X_KBUF.S            Revision date:    1993.06.04
  3. ;Disassembler:    Ulf Ronald Andersson        Disassembled:    1993.05.28
  4. ;-----------------------------------------------------------------------------
  5. ;
  6.     include    URAn_DOS.S
  7. ;
  8. buffsize    =    8192
  9. ;
  10.     text
  11. ;
  12. start:
  13.     move.l    #buffsize,d5
  14.     move.l    4(sp),a5        ;a5-> basepage
  15.     move.l    #$100,d6        ;d6 = basepage size
  16.     add.l    bp_textlen(a5),d6
  17.     add.l    bp_datalen(a5),d6
  18.     add.l    bp_bss_len(a5),d6
  19.     add.l    d5,d6
  20.     add.l    d5,d6
  21.     addi.l    #64,d6            ;safety bump
  22.     lea    (a5,d6.l),sp        ;temp sp in future buffer
  23.     gemdos    Mshrink,!,(a5),d6    ;release unneeded memory
  24.     tst.l    d0
  25.     bmi    error_exit        ;refuse installation on error
  26. ;
  27.     xbios    Iorec,!
  28.     move.l    d0,a4            ;a4-> Iorec structure for modem
  29.     move    #256,d3            ;d3 = 256 = low mark
  30.     move    d5,d4
  31.     add    d4,d4
  32.     add    d5,d4
  33.     lsr    #2,d4
  34.     bclr    #0,d4            ;d4 = even((buffsize * 3) / 4) = high mark
  35. ;
  36.     gemdos    Super,!            ;Supervisor mode
  37.     move.l    d0,d7            ;d7-> entry SSP
  38.     move    SR,-(sp)        ;push status with interrupt mask
  39.     or    #$0700,SR        ;disable all interrupts
  40. ;
  41. ;fix Iorec with disabled interrupts
  42.     move    d5,d0            ;d0 = buffer size
  43.     clr    d1            ;d1 = cleared head value
  44.     clr    d2            ;d2 = cleared tail value
  45.     lea    buffbase(pc),a1        ;a1-> Buffer 0
  46.     move.l    a1,(a4)+        ;store buffer 0 base
  47.     movem    d0-d4,(a4)        ;store buffer 0 size,head,tail,lomark,himark
  48.     lea    2*5(a4),a4        ;a4-> Iorec of Buffer 1
  49.     lea    (a1,d5),a1        ;a1-> Buffer 1
  50.     move.l    a1,(a4)+        ;store buffer 1 base
  51.     movem    d0-d4,(a4)        ;store buffer 0 size,head,tail,lomark,himark
  52. ;Iorec is fixed, ready for use
  53. ;
  54.     move    (sp)+,SR        ;pull status with interrupt mask
  55.     gemdos    Super|_ind,d7        ;restore entry SSP
  56. ;
  57.     xbios    Rsconf,#4,!,#$90,?,?,?    ;configure RS232 for 2400 bps
  58.     gemdos    Ptermres,d6,!        ;exit with buffer resident
  59. ;
  60. error_exit:
  61.     gemdos    Pterm,?
  62. ;
  63. ;
  64. buffbase:
  65. ;
  66. ;-----------------------------------------------------------------------------
  67. ;End of file:    X_KBUF.S
  68.