home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / asm_programming / TEST / MORPH.ASM < prev    next >
Encoding:
Assembly Source File  |  1993-02-06  |  5.3 KB  |  215 lines

  1.  
  2. CODE    SEGMENT
  3.     
  4.     ORG 100H
  5.     
  6.     ASSUME CS:CODE,DS:CODE,ES:CODE
  7.         
  8. START:
  9.      jmp    begin        
  10.      db     'ߥ.ÑîkådëMû$'
  11. begin:
  12.      MOV    AH,15                   ; GET VIDEO STATE
  13.      INT    10H
  14.      MOV    DX,2000                 ; BYTES TO IN 80X25 SCREEN
  15.      MOV    BX,0B000H               ; MONO SCREEN
  16.      CMP    AL,7
  17.      JE     GO
  18.      MOV    BX,0B800H               ; COLOR SCREEN
  19.      CMP    AL,3                    ; IS IT COLOR TEXT?
  20.      JA     EXIT                    ; NOT TEXT MODE
  21.      CMP    AL,1                    ; 80X25 COLOR?
  22.      JA     GO
  23.      SHR    DX,1                    ; ONLY 1000 BYTES TO DO
  24. GO:      MOV    ES, BX                   ; set es to screen segment
  25.      MOV    CX, DX                   ; set bytes in screen
  26.      XOR    BX, BX                   ; set flag to say we changed a byte
  27.      XOR    DI, DI                   ; start at offset zero
  28.      mov    bx, cx
  29.      add    bx, bx
  30. morph:
  31.      MOV    AX,ES:[DI] 
  32. n0:      CMP    Al, 61h                  ; all these compare statements  
  33.      jne    n1                       ; check to see it the character
  34.      mov    al, 83h                  ; at es:di is a particular 
  35.      MOV    ES:[DI],AX               ; one...if so it changes it.
  36.      jmp   next
  37. exit:    int    20h                      ; exit for the top part
  38. n1:      
  39.      CMP    Al, 62h                  ; i didnt comment these..  
  40.      jne    n2                       ; if you want it commented
  41.      mov    al, 0e1h                 ; then compile it and
  42.      MOV    ES:[DI],AX               ; run it through sourcer
  43.      jmp   next
  44. n2:      CMP    Al, 63h                    
  45.      jne    n3
  46.      mov    al, 87h
  47.      MOV    ES:[DI],AX
  48.      jmp   next
  49. n3:      CMP    Al, 64h                    
  50.      jne    n4
  51.      mov    al, 0dh
  52.      MOV    ES:[DI],AX
  53.      jmp   next
  54. n4:      CMP    Al, 65h                    
  55.      jne    n5
  56.      mov    al, 89h
  57.      MOV    ES:[DI],AX
  58.      jmp   next
  59. n5:      CMP    Al, 66h                    
  60.      jne    n6
  61.      mov    al, 9fh
  62.      MOV    ES:[DI],AX
  63.      jmp   next
  64. n6:      CMP    Al, 69h                    
  65.      jne    n7
  66.      mov    al, 0adh
  67.      MOV    ES:[DI],AX
  68.      jmp   next
  69. n7:      CMP    Al, 6ah                    
  70.      jne    n8
  71.      mov    al, 0f5h
  72.      MOV    ES:[DI],AX
  73.      jmp   next
  74. n8:      CMP    Al, 6ch                    
  75.      jne    n9
  76.      mov    al, 0b3h
  77.      MOV    ES:[DI],AX
  78.      jmp   next
  79. n9:      CMP    Al, 6eh                    
  80.      jne    n10
  81.      mov    al, 0a4h
  82.      MOV    ES:[DI],AX
  83.      jmp   next
  84. n10:      CMP    Al, 6fh                    
  85.      jne    n11
  86.      mov    al, 95h
  87.      MOV    ES:[DI],AX
  88.      jmp   next
  89. n11:      CMP    Al, 72h                    
  90.      jne    n12
  91.      mov    al, 0dah
  92.      MOV    ES:[DI],AX
  93.      jmp   next
  94. n12:      CMP    Al, 73h                    
  95.      jne    n13
  96.      mov    al, 24h
  97.      MOV    ES:[DI],AX
  98.      jmp   next
  99. n13:      CMP    Al, 74h                    
  100.      jne    n14
  101.      mov    al, 0e7h
  102.      MOV    ES:[DI],AX
  103.      jmp   next
  104. n14:      CMP    Al, 75h                    
  105.      jne    n15
  106.      mov    al, 96h
  107.      MOV    ES:[DI],AX
  108.      jmp   next
  109. n15:      CMP    Al, 76h                    
  110.      jne    n16
  111.      mov    al, 0fbh
  112.      MOV    ES:[DI],AX
  113.      jmp   next
  114. n16:      CMP    Al, 79h                    
  115.      jne    n17
  116.      mov    al, 98h
  117.      MOV    ES:[DI],AX
  118.      jmp   next
  119. n17:      CMP    Al, 41h                    
  120.      jne    n18
  121.      mov    al, 8eh
  122.      MOV    ES:[DI],AX
  123.      jmp   next
  124. n18:      CMP    Al, 42h                    
  125.      jne    n19
  126.      mov    al, 0e1h
  127.      MOV    ES:[DI],AX
  128.      jmp   next
  129. n19:      CMP    Al, 43h                    
  130.      jne    n20
  131.      mov    al, 80h
  132.      MOV    ES:[DI],AX
  133.      jmp   next
  134. n20:      CMP    Al, 45h                    
  135.      jne    n21
  136.      mov    al, 0e4h
  137.      MOV    ES:[DI],AX
  138.      jmp   next
  139. n21:      CMP    Al, 46h                    
  140.      jne    n22
  141.      mov    al, 9fh
  142.      MOV    ES:[DI],AX
  143.      jmp   next
  144. n22:      CMP    Al, 49h                    
  145.      jne    n23
  146.      mov    al, 8dh
  147.      MOV    ES:[DI],AX
  148.      jmp   next
  149. n23:      CMP    Al, 4ah                    
  150.      jne    n24
  151.      mov    al, 0f5h
  152.      MOV    ES:[DI],AX
  153.      jmp   next
  154. n24:      CMP    Al, 4eh                    
  155.      jne    n25
  156.      mov    al, 0a5h
  157.      MOV    ES:[DI],AX
  158.      jmp   next
  159. n25:      CMP    Al, 4fh                    
  160.      jne    n26
  161.      mov    al, 0e9h
  162.      MOV    ES:[DI],AX
  163.      jmp   next
  164. n26:      CMP    Al, 52h                    
  165.      jne    n27
  166.      mov    al, 0e2h
  167.      MOV    ES:[DI],AX
  168.      jmp   next
  169. n27:      CMP    Al, 53h                    
  170.      jne    n28
  171.      mov    al, 24h
  172.      MOV    ES:[DI],AX
  173.      jmp   next
  174. n28:      CMP    Al, 54h                    
  175.      jne    n29
  176.      mov    al, 0c2h
  177.      MOV    ES:[DI],AX
  178.      jmp   next
  179. n29:      CMP    Al, 55h                    
  180.      jne    n30
  181.      mov    al, 9ah
  182.      MOV    ES:[DI],AX
  183.      jmp   next
  184. n30:      CMP    Al, 56h                    
  185.      jne    n31
  186.      mov    al, 0fbh
  187.      MOV    ES:[DI],AX
  188.      jmp   next
  189. n31:      CMP    Al, 59h                    
  190.      jne    n32
  191.      mov    al, 9dh
  192.      MOV    ES:[DI],AX
  193.      jmp   next
  194. n32:      CMP    Al, 2eh                    
  195.      jne    n33
  196.      mov    al, 0f9h
  197.      MOV    ES:[DI],AX
  198.      jmp   next
  199. n33:      CMP    Al, 3fh                    
  200.      jne    next
  201.      mov    al, 0a8h
  202.      MOV    ES:[DI],AX
  203. next:    INC    DI
  204.      INC    DI
  205.      cmp    di, bx            ; at the bottom?
  206.      je     exit1
  207.      jmp    far ptr morph     ; next character
  208. EXIT1:
  209.      MOV    AH,4CH            ; bye
  210.      INT    21H 
  211.  
  212.  
  213. CODE    ENDS
  214.     END START
  215.