home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / GLEN / BBC.ZIP / BBC.LIB < prev    next >
Text File  |  1980-01-01  |  5KB  |  324 lines

  1. 1
  2. PSTR:    JCXZ PSTRF
  3.     MOV DL,[BX
  4.     INT 21H
  5.     INC BX
  6.     LOOP PSTR
  7. PSTRF:    RET
  8.  
  9. PLNE:    MOV DL,13
  10.     INT 21H
  11.     MOV DL,10
  12.     INT 21H
  13.     RET
  14.  
  15. 2
  16. PNUM:    MOV BX,OFFSET SAREA
  17.     MOV SAREA,32
  18.     PUSH AX
  19.     MOV AX,CX
  20.     CMP AX,8000H
  21.     JB PNUM1
  22.     NEG AX
  23.     MOV SAREA,'-'
  24. PNUM1:  MOV CX,10000
  25.         MOV DX,0
  26.         DIV CX
  27.         OR AL,AL
  28.         JZ PNUM2
  29.         INC BX
  30.         ADD AL,48
  31.         MOV [BX,AL
  32. PNUM2:  MOV AX,DX
  33.         MOV CX,1000
  34.         CWD
  35.         DIV CX
  36.         MOV CX,OFFSET SAREA
  37.         CMP BX,CX
  38.         JNZ PNUM3
  39.         OR AL,AL
  40.         JZ PNUM4
  41. PNUM3:  INC BX
  42.         ADD AL,48
  43.         MOV [BX],AL
  44. PNUM4:  MOV AX,DX
  45.         MOV CX,100
  46.         CWD
  47.         DIV CX
  48.         MOV CX,OFFSET SAREA
  49.         CMP BX,CX
  50.         JNZ PNUM5
  51.         OR AL,AL
  52.         JZ PNUM6
  53. PNUM5:  INC BX
  54.         ADD AL,48
  55.         MOV [BX],AL
  56. PNUM6:  MOV AX,DX
  57.         MOV CX,10
  58.         CWD
  59.         DIV CX
  60.         MOV CX,OFFSET SAREA
  61.         CMP BX,CX
  62.         JNZ PNUM7
  63.         OR AL,AL
  64.         JZ PNUM8
  65. PNUM7:  INC BX
  66.         ADD AL,48
  67.         MOV [BX],AL
  68. PNUM8:  ADD DL,48
  69.         INC BX
  70.         MOV [BX],DL
  71.         MOV CX,OFFSET SAREA
  72.         SUB CX,BX
  73.         NEG CX
  74.         INC CX
  75.         MOV BX,OFFSET SAREA
  76.         POP AX
  77.         CALL PSTR
  78.         RET
  79. 3
  80. CLS:    MOV BX,Z_ZATTR
  81.         MOV BH,BL
  82.         MOV CX,0
  83.         MOV DH,24
  84.         MOV DL,79
  85.         MOV AL,0
  86.         MOV AH,7
  87.         INT 10H
  88.         MOV DX,0
  89.         MOV AH,2
  90.         INT 10H
  91.         RET
  92. 4
  93. 5
  94. 6
  95. 7
  96. 8
  97. 9
  98. 10
  99. 11
  100. 12
  101. 13
  102. 14
  103. GETNUM: MOV SAREA,10
  104.         MOV AH,0AH
  105.         MOV DX,OFFSET SAREA
  106.         INT 21H
  107.         MOV BX,OFFSET SAREA
  108.         MOV CX,[BX]
  109.         MOV CL,CH
  110.         MOV CH,0
  111.         INC BX
  112.         INC BX
  113.         CALL ASCBIN
  114.         PUSH AX
  115.         MOV AH,2
  116.         MOV DL,13
  117.         INT 21H
  118.         MOV DL,10
  119.         INT 21H
  120.         POP AX
  121.         RET
  122. 15
  123. GETSTR: MOV AX,0
  124.         MOV [BX],AX
  125.         PUSH BX
  126.         INC BX
  127.         INC BX
  128.         MOV DI,[BX]
  129.         MOV CX,DI
  130. GETS1:  MOV AH,7
  131.         INT 21H
  132.         CMP AL,13
  133.         JZ GETSF
  134.         CMP AL,10
  135.         JZ GETSF
  136.         CMP AL,8
  137.         JNZ GETS2
  138.         CMP DI,CX
  139.         JBE GETS1
  140.         DEC DI
  141.         MOV DL,AL
  142.         MOV AH,2
  143.         INT 21H
  144.         MOV DL,32
  145.         INT 21H
  146.         MOV DL,8
  147.         INT 21H
  148.         JMP SHORT GETS1
  149. GETS2:  MOV [DI],AL
  150.         MOV DL,AL
  151.         MOV AH,2
  152.         INT 21H
  153.         INC DI
  154.         JMP SHORT GETS1
  155. GETSF:  SUB DI,CX
  156.         POP BX
  157.         MOV [BX],DI
  158.         MOV AH,2
  159.         MOV DL,13
  160.         INT 21H
  161.         MOV DL,10
  162.         INT 21H
  163.         RET
  164. 16
  165. SC:    MOV AX,[BX]
  166.         CMP AX,[CX]
  167.         JNZ SFALSE
  168.         MOV DX,AX
  169.         INC BX
  170.         INC BX
  171.         INC CX
  172.         INC CX
  173.         MOV SI,[BX]
  174.         MOV DI,[CX]
  175.         PUSH DS
  176.         POP ES
  177.         CLD
  178. SC1:    OR DX,DX
  179.         JZ STRUE
  180.         CMPSB
  181.         JNZ SFALSE
  182.         DEC DX
  183.         JMP SHORT SC1
  184. STRUE:    MOV AX,-1
  185.         RET
  186. SFALSE:    MOV AX,0
  187.     RET
  188. 17
  189. SC5:    MOV AX,[BX]
  190.     MOV DX,[CX]
  191.     INC BX
  192.     INC BX
  193.     INC CX
  194.     INC CX
  195.     MOV SI,[BX]
  196.     MOV DI,[CX]
  197.     PUSH DS
  198.     POP ES
  199.     MOV CX,AX
  200. SC51:    JCXZ SCAT5
  201.     OR DX,DX
  202.     JZ SCAF5
  203.     CMPSB
  204.     JG SCAF5
  205.     JB SCAT5
  206.     DEC CX
  207.     DEC DX
  208.     JMP SHORT SC51
  209. SCAF5:    MOV AX,0
  210.     RET
  211. SCAT5:    MOV AX,-1
  212.     RET
  213. 18
  214. SC4:    CALL SC
  215.     XOR AX,-1
  216.     RET
  217.     MOV AH,9
  218.     INT 21H
  219. FCLOSG:    RET
  220. FCERR    DB 'Error reported in closing file',0dh,0ah,'$'
  221. 30
  222. 31
  223. ASCBIN:    MOV AX,0
  224.     INC CX
  225.     DEC BX
  226.     MOV DX,0
  227.     PUSH DX
  228. ASCL:    DEC CX
  229.     INC BX
  230.     JCXZ ASCDON
  231.     MOV DL,[BX]
  232.     CMP DL,'-'
  233.     JZ ASCL2
  234.     CMP DL,'+'
  235.     JZ ASCL3
  236.     CMP DL,'0'
  237.     JB ASCL
  238.     CMP DL,'9'
  239.     JG ASCDON
  240.     JMP SHORT ASCL4
  241. ASCL2:    POP DX
  242.     MOV DX,-1
  243.     PUSH DX
  244.     INC BX
  245.     JMP SHORT ASCL4
  246. ASCL3:    INC BX
  247.     DEC CX
  248.     JCXZ ASCDON
  249. ASCL4:    MOV DL,[BX]
  250.     CMP DL,'0'
  251.     JB ASCL3
  252.     CMP DL,'9'
  253.     JA ASCDON
  254.     PUSH CX
  255.     PUSH DX
  256.     MOV CX,10
  257.     CWD
  258.     MUL CX
  259.     POP DX
  260.     POP CX
  261.     MOV DH,0
  262.     SUB DX,48
  263.     ADD AX,DX
  264.     JMP SHORT ASCL3
  265. ASCDON:    POP DX
  266.     OR DX,DX
  267.     JZ ASCFIN
  268.     NEG AX
  269. ASCFIN:    RET
  270. 32
  271. STR:    PUSH BX
  272.     INC BX
  273.     INC BX
  274.     MOV DX,[BX]
  275.     MOV BX,DX
  276.     MOV [BX],32
  277.     MOV CX,10000
  278.     CWD
  279.     IDIV CX
  280.     CMP AH,128
  281.     JB STR2
  282.     MOV [BX],'-'
  283. STR2:    INC BX
  284.     ADD AL,48
  285.     MOV [BX],AL
  286.     MOV AX,DX
  287.     AND AX,7FFFH
  288.     MOV CX,1000
  289.     CWD
  290.     DIV CX
  291.     ADD AL,48
  292.     MOV [BX],AL
  293.     INC BX
  294.     MOV AX,DX
  295.     MOV CX,100
  296.     CWD
  297.     DIV CX
  298.     ADD AL,48
  299.     MOV [BX],AL
  300.     INC BX
  301.     MOV AX,DX
  302.     MOV CX,10
  303.     CWD
  304.     DIV CX
  305.     ADD AL,48
  306.     MOV [BX],AL
  307.     INC BX
  308.     MOV [BX],DL
  309.     POP CX
  310.     MOV DX,CX
  311.     MOV AX,BX
  312.     MOV BX,CX
  313.     INC BX
  314.     INC BX
  315.     MOV CX,[BX]
  316.     SUB AX,CX
  317.     MOV BX,DX
  318.     MOV [BX],AX
  319.     RET
  320. 33
  321. 34
  322.  
  323.  
  324.