pal.asm 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. .model small
  2. .code
  3. org 100h
  4. start: push bp ; á⥪
  5. mov bp,sp
  6. sub sp, 303h
  7. mov ah,0 ; ãáâ ­®¢ª  ० 320å200å256
  8. mov al,13h
  9. int 10h
  10. xor bx,bx ; áç¨â뢠¥¬ ¯ «¨âàã ¢ [BP-4]-[BP+FCFDh]
  11. mov cx,0FDh
  12. lea dx,[bp][0FCFDh]
  13. mov ax,ds
  14. mov es,ax
  15. mov ax,01017h
  16. int 10h
  17. mov ax,0A000h ; ãáâ ­ ¢«¨¢ ¥¬ es:di ­  ¢¨¤¥® ¯ ¬ïâì
  18. mov es,ax
  19. xor ax,ax
  20. mov di,ax
  21. mov cx,0FA00h ; ­ ç¨­ ¥¬ à¨á®¢ âì
  22. mov al,00h
  23. LP: mov es:[di],BYTE PTR al ; 横« ¯à®à¨á®¢ª¨
  24. mov ax,di
  25. add ax,01h
  26. xor dx,dx ; ¯à®¢¥à塞, ªà â­® «¨ di 320â¨
  27. mov bx,0140h
  28. div bx
  29. mov al, BYTE PTR es:[di]
  30. add di,1h
  31. cmp dx,0h
  32. je UVEL ; ¥á«¨ ¤ , 㢥«¨ç¨¢ ¥¬ 梥â
  33. LOP: loop LP ; ª®­¥æ 横« 
  34. jmp e
  35. UVEL: add al,1h ; §¤¥áì 㢥«¨ç¨¢ ¥¬ 梥â
  36. jmp LOP
  37. e: mov al, [bp][0FD00h] ; á®å࠭塞 ¯¥à¢ë© 梥⠢ [BP-3]
  38. mov [bp-0003], al
  39. mov al, [bp][0FD01h] ; á®å࠭塞 ¯¥à¢ë© 梥⠢ [BP-2]
  40. mov [bp-0002], al
  41. mov al, [bp][0FD02h] ; á®å࠭塞 ¯¥à¢ë© 梥⠢ [BP-1]
  42. mov [bp-0001], al
  43. lea ax,[bp][0FD00h] ; ®â á¨å
  44. lea bx,[bp][0FD03h]
  45. mov si,bx
  46. mov di,ax
  47. mov ax,ds
  48. mov es,ax
  49. mov cx,02FAh
  50. repe movsb ; ¤® á¨å, ᬥ頥¬ ¯ «¨âàã ­¨¦¥
  51. mov al, [bp][-0003h]
  52. mov [bp-0006], al ; ¯®â¥àï­­ë© æ¢¥â ¢ ª®­¥æ ¯ «¨âàë
  53. mov al, [bp][-0002h]
  54. mov [bp-0005], al
  55. mov al, [bp][-0001h]
  56. mov [bp-0004], al
  57. mov dx,03DAh ; ¯®àâ á®áâ®ï­¨ï «ãç  ¬®­¨â®à 
  58. in1: in al,dx ; ®â á¨å
  59. and al,008h
  60. jne in1
  61. in2: in al,dx
  62. and al,008h
  63. je in2 ; ¤® á¨å - ¦¤¥¬ ®¡à â­®£® 室  «ãç 
  64. xor bx,bx ; ®â á¨å
  65. mov cx,0100h
  66. lea dx,[bp][0FCFDh]
  67. mov ax,ds
  68. mov es,ax
  69. mov ax,01012h
  70. int 10h ; ¤® á¨å - ¢áâ ¢«ï¥¬ ¯ «¨âàã
  71. mov ah,01h ; ¯à®¢¥àª  ­  ­ ¦ â¨¥ ª­®¯ª¨
  72. int 16h ; -----
  73. jz e ; ¥á«¨ ­¥âã, â® á­®¢ 
  74. mov ah,0
  75. mov al,3h ; ®¡à â­® ¢ ⥪áâ®¢ë© à¥¦¨¬
  76. int 10h ; -----
  77. mov sp,bp ; ¢¥àâ ¥¬ á⥪
  78. pop bp
  79. int 20h ; ⨯  ª®­¥æ :)
  80. end start