home *** CD-ROM | disk | FTP | other *** search
/ Audio 4.94 - Over 11,000 Files / audio-11000.iso / msdos / sndbords / proaudio / pcmtlsrc / tpcm.arj / SETPAL.ASM < prev    next >
Assembly Source File  |  1992-08-31  |  15KB  |  654 lines

  1. ;$Author:   BCRANE  $
  2. ;$Date:   31 Aug 1992 19:10:54  $
  3. ;$Header:   X:/sccs/sdkapp/setpal.asv   1.2   31 Aug 1992 19:10:54   BCRANE  $
  4. ;$Log:   X:/sccs/sdkapp/setpal.asv  $
  5. ;  
  6. ;     Rev 1.2   31 Aug 1992 19:10:54   BCRANE
  7. ;  removed commenting-out of cycpal()
  8. ;  
  9. ;     Rev 1.1   31 Aug 1992 09:35:34   BCRANE
  10. ;  added five more palettes
  11. ;  
  12. ;     Rev 1.0   29 Jul 1992 16:58:02   BCRANE
  13. ;  Initial revision.
  14. ;$Logfile:   X:/sccs/sdkapp/setpal.asv  $
  15. ;$Modtimes$
  16. ;$Revision:   1.2  $
  17. ;$Workfile:   setpal.asm  $ 
  18.  
  19.     .model compact
  20.  
  21. include c:\include\macros.inc
  22.  
  23. public _savpal, _setpal, _rstpal, _usepal, _stirpal
  24. public _fcycpal, _bcycpal, _f16cycpal, _b16cycpal, 
  25. public _flppal, _uflppal, _dflppal
  26. public _getcurrentpalette
  27. public p_new
  28. public _currentpalette
  29.  
  30.     .code
  31. ;;_text    segment para public 'CODE'
  32. ;;    assume cs:_text, ds:nothing, ss:nothing, es:nothing
  33.  
  34. _getcurrentpalette proc
  35.     mov ax, offset p_new
  36.     mov dx, cs
  37.     ret
  38. _getcurrentpalette endp
  39.  
  40. _savpal proc
  41.     pushall
  42.     mov ax, cs
  43.     mov es, ax
  44.     getvgapal p_old
  45.     popall
  46.     ret
  47. _savpal    endp
  48.  
  49. _setpal proc
  50.     pushall
  51.     mov ax, cs
  52.     mov es, ax
  53.     setvgapal p_new
  54.     popall
  55.     ret
  56. _setpal endp
  57.  
  58. _rstpal proc
  59.     pushall
  60.     mov ax, cs
  61.     mov es, ax
  62.     setvgapal p_old
  63.     popall
  64.     ret
  65. _rstpal endp
  66.  
  67. _fcycpal proc
  68.     pushall
  69.     mov ax, cs
  70.     mov ds, ax
  71.     mov cx, 253
  72.     mov di, offset p_new[253*3]
  73.  
  74.     mov al, byte ptr [di][3]
  75.     mov ah, byte ptr [di][4]
  76.     mov bl, byte ptr [di][5]
  77.  
  78. @@:
  79.     mov bh, byte ptr [di][0]
  80.     mov byte ptr [di][3], bh
  81.     mov bh, byte ptr [di][1]
  82.     mov byte ptr [di][4], bh
  83.     mov bh, byte ptr [di][2]
  84.     mov byte ptr [di][5], bh
  85.     sub di, 3
  86.     loop @B
  87.  
  88.     mov byte ptr [di][3], al
  89.     mov byte ptr [di][4], ah
  90.     mov byte ptr [di][5], bl
  91.  
  92.     popall
  93.     ret
  94. _fcycpal endp
  95.  
  96. _bcycpal proc
  97.     pushall
  98.     mov ax, cs
  99.     mov ds, ax
  100.     mov cx, 253
  101.     mov di, offset p_new[3]
  102.  
  103.     mov al, byte ptr [di][0]
  104.     mov ah, byte ptr [di][1]
  105.     mov bl, byte ptr [di][2]
  106.  
  107. @@:
  108.     mov bh, byte ptr [di][3]
  109.     mov byte ptr [di][0], bh
  110.     mov bh, byte ptr [di][4]
  111.     mov byte ptr [di][1], bh
  112.     mov bh, byte ptr [di][5]
  113.     mov byte ptr [di][2], bh
  114.     add di, 3
  115.     loop @B
  116.  
  117.     mov byte ptr [di][0], al
  118.     mov byte ptr [di][1], ah
  119.     mov byte ptr [di][2], bl
  120.  
  121.     popall
  122.     ret
  123. _bcycpal endp
  124.  
  125. _f16cycpal proc
  126.     pushall
  127.     mov ax, cs
  128.     mov ds, ax
  129.     mov cx, 14
  130.     mov di, offset p_new[14*3]
  131.  
  132.     mov al, byte ptr [di][3]
  133.     mov ah, byte ptr [di][4]
  134.     mov bl, byte ptr [di][5]
  135.  
  136. @@:
  137.     mov bh, byte ptr [di][0]
  138.     mov byte ptr [di][3], bh
  139.     mov bh, byte ptr [di][1]
  140.     mov byte ptr [di][4], bh
  141.     mov bh, byte ptr [di][2]
  142.     mov byte ptr [di][5], bh
  143.     sub di, 3
  144.     loop @B
  145.  
  146.     mov byte ptr [di][3], al
  147.     mov byte ptr [di][4], ah
  148.     mov byte ptr [di][5], bl
  149.  
  150.     popall
  151.     ret
  152. _f16cycpal endp
  153.  
  154. _b16cycpal proc
  155.     pushall
  156.     mov ax, cs
  157.     mov ds, ax
  158.     mov cx, 14
  159.     mov di, offset p_new[3]
  160.  
  161.     mov al, byte ptr [di][0]
  162.     mov ah, byte ptr [di][1]
  163.     mov bl, byte ptr [di][2]
  164.  
  165. @@:
  166.     mov bh, byte ptr [di][3]
  167.     mov byte ptr [di][0], bh
  168.     mov bh, byte ptr [di][4]
  169.     mov byte ptr [di][1], bh
  170.     mov bh, byte ptr [di][5]
  171.     mov byte ptr [di][2], bh
  172.     add di, 3
  173.     loop @B
  174.  
  175.     mov byte ptr [di][0], al
  176.     mov byte ptr [di][1], ah
  177.     mov byte ptr [di][2], bl
  178.  
  179.     popall
  180.     ret
  181. _b16cycpal endp
  182.  
  183. _flppal proc
  184.     pushall
  185.     mov ax, cs
  186.     mov ds, ax
  187.     jmp @F
  188. upordown    db    0
  189. @@:
  190.     cmp upordown, 0
  191.     jnz goup
  192.  
  193. godown:
  194.     mov cx, 255
  195.     mov di, offset p_new
  196.     add di, 3
  197.  
  198. @@:
  199.     dec byte ptr [di]
  200.     inc di
  201.     dec byte ptr [di]
  202.     inc di
  203.     dec byte ptr [di]
  204.     inc di
  205.     loop @B
  206.  
  207.     popall
  208.     ret
  209. goup:
  210.     mov cx, 255
  211.     mov di, offset p_new
  212.     add di, 3
  213.  
  214. @@:
  215.     inc byte ptr [di]
  216.     inc di
  217.     inc byte ptr [di]
  218.     inc di
  219.     inc byte ptr [di]
  220.     inc di
  221.     loop @B
  222.  
  223.     popall
  224.     ret
  225. _flppal endp
  226.  
  227. _uflppal proc
  228.     pushall
  229.     mov ax, cs
  230.     mov ds, ax
  231.     mov upordown, 1
  232.     popall
  233.     call _flppal
  234.     ret
  235. _uflppal endp
  236.  
  237. _dflppal proc
  238.     pushall
  239.     mov ax, cs
  240.     mov ds, ax
  241.     mov upordown, 0
  242.     popall
  243.     call _flppal
  244.     ret
  245. _dflppal endp
  246.  
  247. _delay proc
  248.     mov cx, 0FFFFh
  249.  
  250. @@:    push cx
  251.     mov cx, 0FFFFh
  252.     rep or bx, bx
  253.     pop cx
  254.     loop @B
  255.     ret
  256.  
  257. _delay endp
  258.  
  259. _stirpal proc
  260.     push bp
  261.     mov bp, sp
  262.     push si
  263.     push di
  264.  
  265.     mov ax, 040h
  266.     mov es, ax
  267.     mov ax, es:[06Ch]
  268.     
  269.     mov si, ax
  270.     shr ax, 1
  271.     jpe @F
  272.     shr ax, 1
  273. @@:
  274.     inc si
  275.     xor si, ax
  276.     and si, 0FFh
  277.     inc si
  278.     and si, 0FFh
  279.     mov ax, si
  280.     shl ax, 1
  281.     add ax, si
  282.     mov si, ax
  283.  
  284.     mov ax, es:[06Ch]
  285.     mov di, ax
  286.     shr ax, 1
  287.     jpe @F
  288.     shr ax, 1
  289. @@:
  290.     inc di
  291.     xor di, ax
  292.     and di, 0FFh
  293.     inc di
  294.     and di, 0FFh
  295.     mov ax, di
  296.     shl ax, 1
  297.     add ax, di
  298.     mov di, ax
  299.  
  300.     add di, offset p_new
  301.    
  302.     cmp word ptr [bp+2][2], 0
  303.     jz usenew
  304.     
  305.     mov ax, [bp+2][2]
  306.     dec ax
  307.     jz _stirpal1
  308.     dec ax
  309.     jz _stirpal2
  310.     dec ax
  311.     jz _stirpal3
  312.     jmp short usenew
  313.  
  314. _stirpal1:
  315.     add si, offset _pal1
  316.     jmp short _stirpal_do
  317. _stirpal2:
  318.     add si, offset _pal2
  319.     jmp short _stirpal_do
  320. _stirpal3:
  321.     add si, offset _pal3
  322.     jmp short _stirpal_do
  323. usenew:
  324.     add si, offset p_new
  325.     jmp short _stirpal_do
  326.  
  327. _stirpal_do:
  328.     cld
  329.     push ds
  330.     mov ax, cs
  331.     mov ds, ax
  332.     mov es, ax
  333.  
  334.     xchg si, di
  335.     lodsw
  336.     mov bx, ax
  337.     lodsb
  338.     mov dl, al
  339.  
  340.     sub si, 3
  341.     sub di, 3
  342.     xchg si, di
  343.     movsw
  344.     movsb
  345.  
  346.     cmp word ptr [bp+2][2], 0
  347.     jnz @F
  348.  
  349.     sub si, 3
  350.     sub di, 3
  351.     xchg si, di
  352.     mov ax, bx
  353.     stosw
  354.     mov al, dl
  355.     stosb
  356.  
  357. @@:
  358.     pop ds
  359.  
  360.     pop di
  361.     pop si
  362.     pop bp
  363.     ret
  364. _stirpal endp
  365.  
  366.  
  367. _usepal proc
  368.     push bp
  369.     mov bp, sp
  370.     push si
  371.     push di
  372.  
  373.     mov ax, [bp+2][2]
  374.     or ax, ax
  375.     jz usepal0
  376.     dec ax
  377.     jz usepal1
  378.     dec ax
  379.     jz usepal2
  380.     dec ax
  381.     jz usepal3
  382.     dec ax
  383.     jz usepal4
  384.     dec ax
  385.     jz usepal5
  386.     dec ax
  387.     jz usepal6
  388.     dec ax
  389.     jz usepal7
  390.     dec ax
  391.     jz usepal8
  392.     dec ax
  393.     jz usepalnewold
  394.     dec ax
  395.     jz usepalnew
  396.     jmp short _usep_exit
  397.  
  398. usepal0:
  399.     mov si, offset p_old
  400.     jmp short _usep_do
  401. usepal1:
  402.     mov si, offset _pal1
  403.     jmp short _usep_do
  404. usepal2:
  405.     mov si, offset _pal2
  406.     jmp short _usep_do
  407. usepal3:
  408.     mov si, offset _pal3
  409.     jmp short _usep_do
  410. usepal4:
  411.     mov si, offset _pal4
  412.     jmp short _usep_do
  413. usepal5:
  414.     mov si, offset _pal5
  415.     jmp short _usep_do
  416. usepal6:
  417.     mov si, offset _pal6
  418.     jmp short _usep_do
  419. usepal7:
  420.     mov si, offset _pal7
  421.     jmp short _usep_do
  422. usepal8:
  423.     mov si, offset _pal8
  424.     jmp short _usep_do
  425. usepalnewold:
  426.     mov si, offset p_new_old
  427.     jmp short _usep_do
  428. usepalnew:
  429.     mov si, offset p_new
  430.     jmp short _usep_do
  431.  
  432. _usep_do:
  433.     mov cx, 256/2*3
  434.     push es
  435.     push ds
  436.     mov ax, cs
  437.     mov ds, ax
  438.     mov es, ax
  439.     mov di, offset p_new
  440.     cld
  441.     rep movsw
  442.     pop ds
  443.     pop es
  444.  
  445. _usep_exit:
  446.     pop di
  447.     pop si
  448.     pop bp
  449.     ret
  450. _usepal endp
  451.     
  452.  
  453. p_old    db    256*3 dup (0)
  454.  
  455. _currentpalette label far
  456. p_new label near
  457. include _pal0_db.asm
  458.  
  459. _pal1 label near
  460. include _pal1_db.asm
  461.  
  462. _pal2 label near
  463. include _pal2_db.asm
  464.  
  465. _pal3 label near
  466. include _pal3_db.asm
  467.  
  468. _pal4 label near
  469. include _pal4_db.asm
  470.  
  471. _pal5 label near
  472. include _pal5_db.asm
  473.  
  474. _pal6 label near
  475. include _pal6_db.asm
  476.  
  477. _pal7 label near
  478. include _pal7_db.asm
  479.  
  480. _pal8 label near
  481. include _pal8_db.asm
  482.  
  483. p_new_old label near
  484. blue:    db    00h,00h,00h, 00h,00h,01h, 00h,00h,02h, 00h,00h,03h 
  485.     db    00h,00h,04h, 00h,00h,05h, 00h,00h,06h, 00h,00h,07h 
  486.     db    00h,00h,08h, 00h,00h,09h, 00h,00h,0Ah, 00h,00h,0Bh 
  487.     db    00h,00h,0Ch, 00h,00h,0Dh, 00h,00h,0Eh, 00h,00h,0Fh 
  488.     db    00h,00h,10h, 00h,00h,11h, 00h,00h,12h, 00h,00h,13h
  489.     db    00h,00h,14h, 00h,00h,15h, 00h,00h,16h, 00h,00h,17h
  490.     db    00h,00h,18h, 00h,00h,19h, 00h,00h,1Ah, 00h,00h,1Bh
  491.     db    00h,00h,1Ch, 00h,00h,1Dh, 00h,00h,1Eh, 00h,00h,1Fh
  492.  
  493.     db    00h,00h,20h, 00h,00h,21h, 00h,00h,22h, 00h,00h,23h 
  494.     db    00h,00h,24h, 00h,00h,25h, 00h,00h,26h, 00h,00h,27h 
  495.     db    00h,00h,28h, 00h,00h,29h, 00h,00h,2Ah, 00h,00h,2Bh 
  496.     db    00h,00h,2Ch, 00h,00h,2Dh, 00h,00h,2Eh, 00h,00h,2Fh 
  497.     db    00h,00h,30h, 00h,00h,31h, 00h,00h,32h, 00h,00h,33h
  498.     db    00h,00h,34h, 00h,00h,35h, 00h,00h,36h, 00h,00h,37h
  499.     db    00h,00h,38h, 00h,00h,39h, 00h,00h,3Ah, 00h,00h,3Bh
  500.     db    00h,00h,3Ch, 00h,00h,3Dh, 00h,00h,3Eh, 00h,00h,3Fh
  501.  
  502.     db    00h,00h,3Fh, 00h,01h,3Eh, 00h,02h,3Dh, 00h,03h,3Ch
  503.     db    00h,04h,3Bh, 00h,05h,3Ah, 00h,06h,39h, 00h,07h,38h
  504.     db    00h,08h,37h, 00h,09h,36h, 00h,0Ah,35h, 00h,0Bh,34h
  505.     db    00h,0Ch,33h, 00h,0Dh,32h, 00h,0Eh,31h, 00h,0Fh,30h
  506.     db    00h,10h,2Fh, 00h,11h,2Eh, 00h,12h,2Dh, 00h,13h,2Ch
  507.     db    00h,14h,2Bh, 00h,15h,2Ah, 00h,16h,29h, 00h,17h,28h
  508.     db    00h,18h,27h, 00h,19h,26h, 00h,1Ah,25h, 00h,1Bh,24h 
  509.     db    00h,1Ch,23h, 00h,1Dh,22h, 00h,1Eh,21h, 00h,1Fh,20h  
  510.  
  511.     db    00h,20h,1Fh, 00h,21h,1Eh, 00h,22h,1Dh, 00h,23h,1Ch 
  512.     db    00h,24h,1Bh, 00h,25h,1Ah, 00h,26h,19h, 00h,27h,18h 
  513.     db    00h,28h,17h, 00h,29h,16h, 00h,2Ah,15h, 00h,2Bh,14h 
  514.     db    00h,2Ch,13h, 00h,2Dh,12h, 00h,2Eh,11h, 00h,2Fh,10h 
  515.     db    00h,30h,0Fh, 00h,31h,0Eh, 00h,32h,0Dh, 00h,33h,0Ch 
  516.     db    00h,34h,0Bh, 00h,35h,0Ah, 00h,36h,09h, 00h,37h,08h 
  517.     db    00h,38h,07h, 00h,39h,06h, 00h,3Ah,05h, 00h,3Bh,04h 
  518.     db    00h,3Ch,03h, 00h,3Dh,02h, 00h,3Eh,01h, 00h,3Fh,00h 
  519.  
  520.     db    00h,3Fh,00h, 01h,3Eh,00h, 02h,3Dh,00h, 03h,3Ch,00h 
  521.     db    04h,3Bh,00h, 05h,3Ah,00h, 06h,39h,00h, 07h,38h,00h 
  522.     db    08h,37h,00h, 09h,36h,00h, 0Ah,35h,00h, 0Bh,34h,00h 
  523.     db    0Ch,33h,00h, 0Dh,32h,00h, 0Eh,31h,00h, 0Fh,30h,00h 
  524.     db    10h,2Fh,00h, 11h,2Eh,00h, 12h,2Dh,00h, 13h,2Ch,00h
  525.     db    14h,2Bh,00h, 15h,2Ah,00h, 16h,29h,00h, 17h,28h,00h
  526.     db    18h,27h,00h, 19h,26h,00h, 1Ah,25h,00h, 1Bh,24h,00h
  527.     db    1Ch,23h,00h, 1Dh,22h,00h, 1Eh,21h,00h, 1Fh,20h,00h
  528.  
  529.     db    20h,1Fh,00h, 21h,1Eh,00h, 22h,1Dh,00h, 23h,1Ch,00h 
  530.     db    24h,1Bh,00h, 25h,1Ah,00h, 26h,19h,00h, 27h,18h,00h 
  531.     db    28h,17h,00h, 29h,16h,00h, 2Ah,15h,00h, 2Bh,14h,00h 
  532.     db    2Ch,13h,00h, 2Dh,12h,00h, 2Eh,11h,00h, 2Fh,10h,00h 
  533.     db    30h,0Fh,00h, 31h,0Eh,00h, 32h,0Dh,00h, 33h,0Ch,00h
  534.     db    34h,0Bh,00h, 35h,0Ah,00h, 36h,09h,00h, 37h,08h,00h
  535.     db    38h,07h,00h, 39h,06h,00h, 3Ah,05h,00h, 3Bh,04h,00h
  536.     db    3Ch,03h,00h, 3Dh,02h,00h, 3Eh,01h,00h, 3Fh,00h,00h
  537.  
  538.     db    3Fh,00h,00h, 3Eh,00h,00h, 3Dh,00h,00h, 3Ch,00h,00h
  539.     db    3Bh,00h,00h, 3Ah,00h,00h, 39h,00h,00h, 38h,00h,00h
  540.     db    37h,00h,00h, 36h,00h,00h, 35h,00h,00h, 34h,00h,00h
  541.     db    33h,00h,00h, 32h,00h,00h, 31h,00h,00h, 30h,00h,00h
  542.     db    2Fh,00h,00h, 2Eh,00h,00h, 2Dh,00h,00h, 2Ch,00h,00h
  543.     db    2Bh,00h,00h, 2Ah,00h,00h, 29h,00h,00h, 28h,00h,00h
  544.     db    27h,00h,00h, 26h,00h,00h, 25h,00h,00h, 24h,00h,00h 
  545.     db    23h,00h,00h, 22h,00h,00h, 21h,00h,00h, 20h,00h,00h  
  546.  
  547.     db    1Fh,00h,00h, 1Eh,00h,00h, 1Dh,00h,00h, 1Ch,00h,00h 
  548.     db    1Bh,00h,00h, 1Ah,00h,00h, 19h,00h,00h, 18h,00h,00h 
  549.     db    17h,00h,00h, 16h,00h,00h, 15h,00h,00h, 14h,00h,00h 
  550.     db    13h,00h,00h, 12h,00h,00h, 11h,00h,00h, 10h,00h,00h 
  551.     db    0Fh,00h,00h, 0Eh,00h,00h, 0Dh,00h,00h, 0Ch,00h,00h 
  552.     db    0Bh,00h,00h, 0Ah,00h,00h, 09h,00h,00h, 08h,00h,00h 
  553.     db    07h,00h,00h, 06h,00h,00h, 05h,00h,00h, 04h,00h,00h 
  554.     db    03h,00h,00h, 02h,00h,00h, 01h,00h,00h, 00h,00h,00h
  555.  
  556.     db    00h,00h,00h, 00h,00h,01h, 00h,00h,02h, 00h,00h,03h 
  557.     db    00h,00h,04h, 00h,00h,05h, 00h,00h,06h, 00h,00h,07h 
  558.     db    00h,00h,08h, 00h,00h,09h, 00h,00h,0Ah, 00h,00h,0Bh 
  559.     db    00h,00h,0Ch, 00h,00h,0Dh, 00h,00h,0Eh, 00h,00h,0Fh 
  560.     db    00h,00h,10h, 00h,00h,11h, 00h,00h,12h, 00h,00h,13h
  561.     db    00h,00h,14h, 00h,00h,15h, 00h,00h,16h, 00h,00h,17h
  562.     db    00h,00h,18h, 00h,00h,19h, 00h,00h,1Ah, 00h,00h,1Bh
  563.     db    00h,00h,1Ch, 00h,00h,1Dh, 00h,00h,1Eh, 00h,00h,1Fh
  564.  
  565.     db    00h,00h,20h, 00h,00h,21h, 00h,00h,22h, 00h,00h,23h 
  566.     db    00h,00h,24h, 00h,00h,25h, 00h,00h,26h, 00h,00h,27h 
  567.     db    00h,00h,28h, 00h,00h,29h, 00h,00h,2Ah, 00h,00h,2Bh 
  568.     db    00h,00h,2Ch, 00h,00h,2Dh, 00h,00h,2Eh, 00h,00h,2Fh 
  569.     db    00h,00h,30h, 00h,00h,31h, 00h,00h,32h, 00h,00h,33h
  570.     db    00h,00h,34h, 00h,00h,35h, 00h,00h,36h, 00h,00h,37h
  571.     db    00h,00h,38h, 00h,00h,39h, 00h,00h,3Ah, 00h,00h,3Bh
  572.     db    00h,00h,3Ch, 00h,00h,3Dh, 00h,00h,3Eh, 00h,00h,3Fh
  573.  
  574.     db    00h,00h,3Fh, 00h,00h,3Eh, 00h,00h,3Dh, 00h,00h,3Ch
  575.     db    00h,00h,3Bh, 00h,00h,3Ah, 00h,00h,39h, 00h,00h,38h
  576.     db    00h,00h,37h, 00h,00h,36h, 00h,00h,35h, 00h,00h,34h
  577.     db    00h,00h,33h, 00h,00h,32h, 00h,00h,31h, 00h,00h,30h
  578.     db    00h,00h,2Fh, 00h,00h,2Eh, 00h,00h,2Dh, 00h,00h,2Ch
  579.     db    00h,00h,2Bh, 00h,00h,2Ah, 00h,00h,29h, 00h,00h,28h
  580.     db    00h,00h,27h, 00h,00h,26h, 00h,00h,25h, 00h,00h,24h 
  581.     db    00h,00h,23h, 00h,00h,22h, 00h,00h,21h, 00h,00h,20h  
  582.  
  583.     db    00h,00h,1Fh, 00h,00h,1Eh, 00h,00h,1Dh, 00h,00h,1Ch 
  584.     db    00h,00h,1Bh, 00h,00h,1Ah, 00h,00h,19h, 00h,00h,18h 
  585.     db    00h,00h,17h, 00h,00h,16h, 00h,00h,15h, 00h,00h,14h 
  586.     db    00h,00h,13h, 00h,00h,12h, 00h,00h,11h, 00h,00h,10h 
  587.     db    00h,00h,0Fh, 00h,00h,0Eh, 00h,00h,0Dh, 00h,00h,0Ch 
  588.     db    00h,00h,0Bh, 00h,00h,0Ah, 00h,00h,09h, 00h,00h,08h 
  589.     db    00h,00h,07h, 00h,00h,06h, 00h,00h,05h, 00h,00h,04h 
  590.     db    00h,00h,03h, 00h,00h,02h, 00h,00h,01h, 00h,00h,00h 
  591.  
  592.  
  593.  
  594. green:    db    00h,00h,00h, 00h,01h,00h, 00h,02h,00h, 00h,03h,00h
  595.     db    00h,04h,00h, 00h,05h,00h, 00h,06h,00h, 00h,07h,00h
  596.     db    00h,08h,00h, 00h,09h,00h, 00h,0Ah,00h, 00h,0Bh,00h
  597.     db    00h,0Ch,00h, 00h,0Dh,00h, 00h,0Eh,00h, 00h,0Fh,00h
  598.     db    00h,10h,00h, 00h,11h,00h, 00h,12h,00h, 00h,13h,00h
  599.     db    00h,14h,00h, 00h,15h,00h, 00h,16h,00h, 00h,17h,00h
  600.     db    00h,18h,00h, 00h,19h,00h, 00h,1Ah,00h, 00h,1Bh,00h
  601.     db    00h,1Ch,00h, 00h,1Dh,00h, 00h,1Eh,00h, 00h,1Fh,00h
  602.  
  603.     db    00h,20h,00h, 00h,21h,00h, 00h,22h,00h, 00h,23h,00h 
  604.     db    00h,24h,00h, 00h,25h,00h, 00h,26h,00h, 00h,27h,00h 
  605.     db    00h,28h,00h, 00h,29h,00h, 00h,2Ah,00h, 00h,2Bh,00h 
  606.     db    00h,2Ch,00h, 00h,2Dh,00h, 00h,2Eh,00h, 00h,2Fh,00h 
  607.     db    00h,30h,00h, 00h,31h,00h, 00h,32h,00h, 00h,33h,00h
  608.     db    00h,34h,00h, 00h,35h,00h, 00h,36h,00h, 00h,37h,00h
  609.     db    00h,38h,00h, 00h,39h,00h, 00h,3Ah,00h, 00h,3Bh,00h
  610.     db    00h,3Ch,00h, 00h,3Dh,00h, 00h,3Eh,00h, 00h,3Fh,00h
  611.  
  612.     db    00h,00h,00h, 01h,00h,00h, 02h,00h,00h, 03h,00h,00h 
  613.     db    04h,00h,00h, 05h,00h,00h, 06h,00h,00h, 07h,00h,00h 
  614.     db    08h,00h,00h, 09h,00h,00h, 0Ah,00h,00h, 0Bh,00h,00h 
  615.     db    0Ch,00h,00h, 0Dh,00h,00h, 0Eh,00h,00h, 0Fh,00h,00h 
  616.     db    10h,00h,00h, 11h,00h,00h, 12h,00h,00h, 13h,00h,00h
  617.     db    14h,00h,00h, 15h,00h,00h, 16h,00h,00h, 17h,00h,00h
  618.     db    18h,00h,00h, 19h,00h,00h, 1Ah,00h,00h, 1Bh,00h,00h
  619.     db    1Ch,00h,00h, 1Dh,00h,00h, 1Eh,00h,00h, 1Fh,00h,00h
  620.  
  621.     db    20h,00h,00h, 21h,00h,00h, 22h,00h,00h, 23h,00h,00h 
  622.     db    24h,00h,00h, 25h,00h,00h, 26h,00h,00h, 27h,00h,00h 
  623.     db    28h,00h,00h, 29h,00h,00h, 2Ah,00h,00h, 2Bh,00h,00h 
  624.     db    2Ch,00h,00h, 2Dh,00h,00h, 2Eh,00h,00h, 2Fh,00h,00h 
  625.     db    30h,00h,00h, 31h,00h,00h, 32h,00h,00h, 33h,00h,00h
  626.     db    34h,00h,00h, 35h,00h,00h, 36h,00h,00h, 37h,00h,00h
  627.     db    38h,00h,00h, 39h,00h,00h, 3Ah,00h,00h, 3Bh,00h,00h
  628.     db    3Ch,00h,00h, 3Dh,00h,00h, 3Eh,00h,00h, 3Fh,00h,00h
  629.  
  630.     db    00h,00h,00h, 01h,01h,01h, 02h,02h,02h, 03h,03h,03h 
  631.     db    04h,04h,04h, 05h,05h,05h, 06h,06h,06h, 07h,07h,07h 
  632.     db    08h,08h,08h, 09h,09h,09h, 0Ah,0Ah,0Ah, 0Bh,0Bh,0Bh 
  633.     db    0Ch,0Ch,0Ch, 0Dh,0Dh,0Dh, 0Eh,0Eh,0Eh, 0Fh,0Fh,0Fh 
  634.     db    10h,10h,10h, 11h,11h,11h, 12h,12h,12h, 13h,13h,13h
  635.     db    14h,14h,14h, 15h,15h,15h, 16h,16h,16h, 17h,17h,17h
  636.     db    18h,18h,18h, 19h,19h,19h, 1Ah,1Ah,1Ah, 1Bh,1Bh,1Bh
  637.     db    1Ch,1Ch,1Ch, 1Dh,1Dh,1Dh, 1Eh,1Eh,1Eh, 1Fh,1Fh,1Fh
  638.  
  639.     db    20h,20h,20h, 21h,21h,21h, 22h,22h,22h, 23h,23h,23h 
  640.     db    24h,24h,24h, 25h,25h,25h, 26h,26h,26h, 27h,27h,27h 
  641.     db    28h,28h,28h, 29h,29h,29h, 2Ah,2Ah,2Ah, 2Bh,2Bh,2Bh 
  642.     db    2Ch,2Ch,2Ch, 2Dh,2Dh,2Dh, 2Eh,2Eh,2Eh, 2Fh,2Fh,2Fh 
  643.     db    30h,30h,30h, 31h,31h,31h, 32h,32h,32h, 33h,33h,33h
  644.     db    34h,34h,34h, 35h,35h,35h, 36h,36h,36h, 37h,37h,37h
  645.     db    38h,38h,38h, 39h,39h,39h, 3Ah,3Ah,3Ah, 3Bh,3Bh,3Bh
  646.     db    3Ch,3Ch,3Ch, 3Dh,3Dh,3Dh, 3Eh,3Eh,3Eh, 3Fh,3Fh,3Fh
  647.  
  648. p_chk    db    256*3 dup (0)
  649.  
  650. _text    ends
  651. end    
  652.  
  653.  
  654.