home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / screen / advid105.arc / PAGE.ASM < prev    next >
Encoding:
Assembly Source File  |  1989-04-12  |  2.0 KB  |  108 lines

  1.             PAGE 60,132
  2.  
  3.             TITLE page.com  version 1.00  1989-04-08
  4.  
  5. ;
  6. ; AnDan Software Page Version 1.00
  7. ; Copyright (c) AnDan Software 1988
  8. ;
  9. ;
  10. ; Shareware:
  11. ;
  12. ; This source code may be copied if no fee is charged and
  13. ; if no changes are done.
  14. ;
  15. ;                       AnDan Software
  16. ;
  17.  
  18.  
  19. com         SEGMENT para
  20.  
  21.             ASSUME cs:com,ds:com,ss:com,es:com
  22.  
  23.             ORG 100H
  24.  
  25. start_main: jmp main
  26.  
  27. txt_err     DB 13,10,'Illegal argument',13,10
  28. len_err     EQU $-txt_err
  29.  
  30. print:      mov ah,40H
  31.             mov bx,1
  32.             int 21H
  33.             ret
  34.  
  35. jmp_white:  lodsb
  36.             cmp al,13
  37.             jz jmp_white1
  38.             cmp al,32
  39.             jbe jmp_white
  40.             dec si
  41.             clc
  42.             ret
  43. jmp_white1: stc
  44.             ret
  45.  
  46. atoi:       xor ax,ax
  47.             mov cl,10
  48.             xor bh,bh
  49. atoi1:      mov bl,[si]
  50.             cmp bl,32
  51.             jbe atoi2
  52.             sub bl,'0'
  53.             jb atoi3
  54.             cmp bl,9
  55.             ja atoi3
  56.             mul cl
  57.             add ax,bx
  58.             inc si
  59.             jmp atoi1
  60. atoi2:      cmp ax,1023
  61.             ja atoi3
  62.             clc
  63.             ret
  64. atoi3:      stc
  65.             ret
  66.  
  67.  
  68. main:       mov bx,OFFSET stack
  69.             mov cl,4
  70.             shr bx,cl
  71.             mov ah,4AH
  72.             int 21H
  73.             shl bx,cl
  74.             mov sp,bx
  75.  
  76.             mov si,81H
  77.             cld
  78.             call jmp_white
  79.             jc initvideo
  80.             call atoi
  81.             jc param_err
  82.             push ax
  83.             call jmp_white
  84.             pop ax
  85.             jc set_page
  86.  
  87. param_err:  mov dx,OFFSET txt_err
  88.             mov cx,len_err
  89.             call print
  90.             jmp SHORT quit
  91.  
  92. initvideo:  mov ax,3
  93.             int 10H
  94.             jmp SHORT quit
  95.  
  96. set_page:   mov ah,5
  97.             int 10H
  98.  
  99. quit:       mov ax,4C00H
  100.             int 21H
  101. fail:       jmp fail
  102.  
  103. stack       EQU $+1024
  104.  
  105. com         ENDS
  106.  
  107.             END start_main
  108.