GophHub - zajo/appler/src/DATA.ASM


Raw File

    1	;  _____________________________________________
    2	; |                                             |
    3	; |  Project:   APPLER                          |
    4	; |  File:      DATA.ASM                        |
    5	; |  Compiler:  16-bit TASM (2.5)               |
    6	; |                                             |
    7	; |  Subject:   Global Data                     |
    8	; |                                             |
    9	; |  Author:    Alexander Patalenski            |
   10	; |_____________________________________________|
   11	
   12	                include GLOBALS.INC
   13	                include INTERFAC.INC
   14	
   15	Startup         segment
   16			assume  CS:Startup,DS:Data,ES:Data,SS:Data
   17	
   18	InitData        Proc    near
   19	                push    ss
   20	                pop     ds
   21	                push    ss
   22	                pop     es
   23			cld
   24	                call    InitTEXTadr
   25	                call    InitHGRadr
   26	                call    InitHGRcol_mask
   27	                call    InitHgrTextAdr
   28	                call    InitHGRchars
   29			ret
   30	InitData	Endp
   31	
   32	
   33	NotShownAdr     =       8000h-4
   34	
   35	InitTEXTadr     Proc    near
   36	                mov     di,offset TEXTadr
   37	                xor     ax,ax
   38	
   39	                mov     dh,8
   40	InitTEXTadr1:   mov     dl,3
   41	InitTEXTadr2:   mov     cx,40
   42	InitTEXTadr3:   stosw
   43			add     ax,2
   44	                loop    InitTEXTadr3
   45	
   46	                add     ax,-40*2 + 8*40*2
   47	                dec     dl
   48	                jnz     InitTEXTadr2
   49	
   50	                Save    ax
   51	                mov     ax,NotShownAdr
   52	                mov     cx,8
   53	        rep     stosw
   54	                Restore ax
   55	                add     ax,-3*8*40*2 + 40*2
   56	                dec     dh
   57	                jnz     InitTEXTadr1
   58	
   59			ret
   60	InitTEXTadr     Endp
   61	
   62	
   63	InitHGRadr      Proc    near
   64	                mov     di,offset HGRadr
   65	                mov     ax,5
   66	
   67			mov     bl,8
   68	InitHGRadr1:    mov     dh,8
   69	InitHGRadr2:    mov     dl,3
   70	InitHGRadr3:    mov     cx,10
   71	InitHGRadr4:    stosw
   72	                inc     ax
   73		      	stosw
   74			add     ax,2
   75		      	stosw
   76			add     ax,2
   77		      	stosw
   78			add     ax,2
   79	                loop    InitHGRadr4
   80	
   81	                add     ax,-35*2 + 8*8*40*2
   82	                dec     dl
   83	                jnz     InitHGRadr3
   84	
   85	                Save    ax
   86	                mov     ax,NotShownAdr
   87	                mov     cx,8
   88	        rep     stosw
   89	                Restore ax
   90	                add     ax,-3*8*8*40*2 + 8*40*2
   91	                dec     dh
   92	                jnz     InitHGRadr2
   93	
   94	                add     ax,-8*8*40*2 + 40*2
   95	                dec     bl
   96	                jnz     InitHGRadr1
   97	
   98			ret
   99	InitHGRadr      Endp
  100	
  101	
  102	InitHGRmasks    dw      0000000000000011b
  103	                dw      1000000000000001b
  104			dw	1111110000000000b
  105	                dw      1111111000000000b
  106			dw	1111000000000000b
  107	                dw      1111100000000000b
  108			dw	1100000000000000b
  109	                dw      1110000000000000b
  110	
  111	InitHGRcol_mask Proc    near
  112	                mov     di,offset HGRcolors
  113			mov     ax,0000000000000000b
  114	InitHGRc_m1:    mov     dx,1100000000000000b
  115	                stosw
  116	InitHGRc_m2:    xor     ax,dx
  117	                test    ax,dx
  118	                jnz     InitHGRc_m1
  119	                shr     dx,2
  120			test    dx,0000000000000011b
  121	                jz      InitHGRc_m2
  122	
  123	                mov     si,offset HGRcolors
  124			mov     cx,80h
  125	InitHGRc_m3:    lodsw
  126	                shr     ax,1
  127	                stosw
  128			loop    InitHGRc_m3
  129	
  130	                mov     si,offset HGRcolors
  131	                mov     cx,2*80h
  132	InitHGRc_m4:    lodsw
  133	                rol     ax,2
  134			xchg    al,ah
  135	                stosw
  136			loop    InitHGRc_m4
  137	
  138	                mov     cx,2*2*80h
  139	InitHGRc_m5:    lodsw
  140	                rol     ax,2
  141	                stosw
  142	                loop    InitHGRc_m5
  143	
  144			mov     si,offset InitHGRmasks
  145	                mov     di,offset HGRmasks
  146			mov     bl,8
  147	InitHGRc_m6:    lods    InitHGRmasks
  148	                mov     cx,80h
  149		rep     stosw
  150	                dec     bl
  151			jnz     InitHGRc_m6
  152	
  153	                ret
  154	InitHGRcol_mask Endp
  155	
  156	
  157	InitHgrTextAdr  Proc    near
  158	                mov     di,offset HgrTextAdr
  159	                mov     ax,4*8*40*2
  160	
  161	                mov     dh,4
  162	InitH_Tadr1:    mov     dl,3
  163	InitH_Tadr2:    mov     cx,40
  164	InitH_Tadr3:    stosw
  165			add     ax,2
  166	                loop    InitH_Tadr3
  167	
  168	                add     ax,-40*2 + 8*8*40*2
  169	                dec     dl
  170	                jnz     InitH_Tadr2
  171	
  172	                Save    ax
  173	                mov     ax,NotShownAdr
  174	                mov     cx,8
  175	        rep     stosw
  176	                Restore ax
  177	                add     ax,-3*8*8*40*2 + 8*40*2
  178	                dec     dh
  179	                jnz     InitH_Tadr1
  180	
  181	                ret
  182	InitHgrTextAdr  Endp
  183	
  184	
  185	InitHGRchars    Proc    near
  186	                mov     ax,1130h
  187	                mov     bh,3
  188	                int     10h
  189	                xor     bx,bx
  190	InitHGRchars10: mov     ax,bx
  191	                ror     ah,1
  192	                cwd
  193	                not     dx
  194	                mov     di,dx
  195	                mov     si,TEXTchars[BX]
  196	                and     si,0FFh
  197	                mov     cl,3
  198	                shl     si,cl
  199	                add     si,bp
  200	InitHGRchars20: lods    byte ptr ES:[SI]
  201	                mov     cx,8
  202	InitHGRchars30: shr     al,1
  203	                rcr     dx,1
  204	                sar     dx,1
  205	                loop    InitHGRchars30
  206	                xchg    dl,dh
  207	                xor     dx,di
  208	                mov     HGRchars[BX],dx
  209	                add     bh,10b
  210	                cmp     bh,8*10b
  211	                jb      InitHGRchars20
  212	                add     bx,-8*10b*100h+2
  213	                cmp     bx,100h*2
  214	                jb      InitHGRchars10
  215	                ret
  216	InitHGRchars    Endp
  217	
  218	Startup         ends
  219	
  220	;===============================================================================
  221	
  222	Data            segment stack 'stack'
  223	
  224			even
  225	TEXTadr         dw      400h dup(0)
  226	
  227	HGRadr          dw      2000h dup(0)
  228	
  229	HGRcolors       dw      4*100h dup(0)
  230	HGRmasks        dw      4*100h dup(0)
  231	
  232	HgrTextAdr      dw      4*80h dup(0)
  233	HGRchars        dw      8*100h dup(0)
  234	
  235	
  236	TEXTchars       dw      7040h,7041h,7042h,7043h,7044h,7045h,7046h,7047h ;
  237	                dw      7048h,7049h,704Ah,704Bh,704Ch,704Dh,704Eh,704Fh ; I
  238	                dw      7050h,7051h,7052h,7053h,7054h,7055h,7056h,7057h ; N
  239	                dw      7058h,7059h,705Ah,705Bh,705Ch,705Dh,705Eh,705Fh ; V
  240	                dw      7020h,7021h,7022h,7023h,7024h,7025h,7026h,7027h ; E
  241	                dw      7028h,7029h,702Ah,702Bh,702Ch,702Dh,702Eh,702Fh ; R
  242	                dw      7030h,7031h,7032h,7033h,7034h,7035h,7036h,7037h ; S
  243	                dw      7038h,7039h,703Ah,703Bh,703Ch,703Dh,703Eh,703Fh ; E
  244	
  245	                dw      0F040h,0F041h,0F042h,0F043h,0F044h,0F045h,0F046h,0F047h ;
  246	                dw      0F048h,0F049h,0F04Ah,0F04Bh,0F04Ch,0F04Dh,0F04Eh,0F04Fh ;
  247	                dw      0F050h,0F051h,0F052h,0F053h,0F054h,0F055h,0F056h,0F057h ; F
  248	                dw      0F058h,0F059h,0F05Ah,0F05Bh,0F05Ch,0F05Dh,0F05Eh,0F05Fh ; L
  249	                dw      0F020h,0F021h,0F022h,0F023h,0F024h,0F025h,0F026h,0F027h ; A
  250	                dw      0F028h,0F029h,0F02Ah,0F02Bh,0F02Ch,0F02Dh,0F02Eh,0F02Fh ; S
  251	                dw      0F030h,0F031h,0F032h,0F033h,0F034h,0F035h,0F036h,0F037h ; H
  252	                dw      0F038h,0F039h,0F03Ah,0F03Bh,0F03Ch,0F03Dh,0F03Eh,0F03Fh ;
  253	
  254	                dw      0740h,0741h,0742h,0743h,0744h,0745h,0746h,0747h ; C
  255	                dw      0748h,0749h,074Ah,074Bh,074Ch,074Dh,074Eh,074Fh ; T
  256	                dw      0750h,0751h,0752h,0753h,0754h,0755h,0756h,0757h ; R
  257	                dw      0758h,0759h,075Ah,075Bh,075Ch,075Dh,075Eh,075Fh ; L
  258	
  259	                dw      0720h,0721h,0722h,0723h,0724h,0725h,0726h,0727h ;
  260	                dw      0728h,0729h,072Ah,072Bh,072Ch,072Dh,072Eh,072Fh ;
  261	                dw      0730h,0731h,0732h,0733h,0734h,0735h,0736h,0737h ;
  262	                dw      0738h,0739h,073Ah,073Bh,073Ch,073Dh,073Eh,073Fh ; N
  263	                dw      0740h,0741h,0742h,0743h,0744h,0745h,0746h,0747h ; O
  264	                dw      0748h,0749h,074Ah,074Bh,074Ch,074Dh,074Eh,074Fh ; R
  265	                dw      0750h,0751h,0752h,0753h,0754h,0755h,0756h,0757h ; M
  266	                dw      0758h,0759h,075Ah,075Bh,075Ch,075Dh,075Eh,075Fh ; A
  267	                dw      0760h,0761h,0762h,0763h,0764h,0765h,0766h,0767h ; L
  268	                dw      0768h,0769h,076Ah,076Bh,076Ch,076Dh,076Eh,076Fh ;
  269	                dw      0770h,0771h,0772h,0773h,0774h,0775h,0776h,0777h ;
  270	                dw      0778h,0779h,077Ah,077Bh,077Ch,077Dh,077Eh,07B1h ;
  271	
  272	
  273	GRcolors        db      000h,004h,001h,005h,003h,007h,002h,009h
  274	                db      006h,00Dh,008h,00Ch,00Ah,00Eh,00Bh,00Fh
  275	                db      040h,044h,041h,045h,043h,047h,042h,049h
  276	                db      046h,04Dh,048h,04Ch,04Ah,04Eh,04Bh,04Fh
  277	                db      010h,014h,011h,015h,013h,017h,012h,019h
  278	                db      016h,01Dh,018h,01Ch,01Ah,01Eh,01Bh,01Fh
  279	                db      050h,054h,051h,055h,053h,057h,052h,059h
  280	                db      056h,05Dh,058h,05Ch,05Ah,05Eh,05Bh,05Fh
  281	                db      030h,034h,031h,035h,033h,037h,032h,039h
  282	                db      036h,03Dh,038h,03Ch,03Ah,03Eh,03Bh,03Fh
  283	                db      070h,074h,071h,075h,073h,077h,072h,079h
  284	                db      076h,07Dh,078h,07Ch,07Ah,07Eh,07Bh,07Fh
  285	                db      020h,024h,021h,025h,023h,027h,022h,029h
  286	                db      026h,02Dh,028h,02Ch,02Ah,02Eh,02Bh,02Fh
  287	                db      090h,094h,091h,095h,093h,097h,092h,099h
  288	                db      096h,09Dh,098h,09Ch,09Ah,09Eh,09Bh,09Fh
  289	                db      060h,064h,061h,065h,063h,067h,062h,069h
  290	                db      066h,06Dh,068h,06Ch,06Ah,06Eh,06Bh,06Fh
  291	                db      0D0h,0D4h,0D1h,0D5h,0D3h,0D7h,0D2h,0D9h
  292	                db      0D6h,0DDh,0D8h,0DCh,0DAh,0DEh,0DBh,0DFh
  293	                db      080h,084h,081h,085h,083h,087h,082h,089h
  294	                db      086h,08Dh,088h,08Ch,08Ah,08Eh,08Bh,08Fh
  295	                db      0C0h,0C4h,0C1h,0C5h,0C3h,0C7h,0C2h,0C9h
  296	                db      0C6h,0CDh,0C8h,0CCh,0CAh,0CEh,0CBh,0CFh
  297	                db      0A0h,0A4h,0A1h,0A5h,0A3h,0A7h,0A2h,0A9h
  298	                db      0A6h,0ADh,0A8h,0ACh,0AAh,0AEh,0ABh,0AFh
  299	                db      0E0h,0E4h,0E1h,0E5h,0E3h,0E7h,0E2h,0E9h
  300	                db      0E6h,0EDh,0E8h,0ECh,0EAh,0EEh,0EBh,0EFh
  301	                db      0B0h,0B4h,0B1h,0B5h,0B3h,0B7h,0B2h,0B9h
  302	                db      0B6h,0BDh,0B8h,0BCh,0BAh,0BEh,0BBh,0BFh
  303	                db      0F0h,0F4h,0F1h,0F5h,0F3h,0F7h,0F2h,0F9h
  304	                db      0F6h,0FDh,0F8h,0FCh,0FAh,0FEh,0FBh,0FFh
  305	
  306	                even
  307	DACtable        db      00h,00h,00h,00h,00h,2Ah,00h,2Ah,00h,00h,2Ah,2Ah,2Ah,00h,00h,2Ah
  308	                db      00h,2Ah,2Ah,2Ah,00h,2Ah,2Ah,2Ah,00h,00h,15h,00h,00h,3Fh,00h,2Ah
  309	                db      15h,00h,2Ah,3Fh,2Ah,00h,15h,2Ah,00h,3Fh,2Ah,2Ah,15h,2Ah,2Ah,3Fh
  310	                db      00h,15h,00h,00h,15h,2Ah,00h,3Fh,00h,00h,3Fh,2Ah,2Ah,15h,00h,2Ah
  311	                db      15h,2Ah,2Ah,3Fh,00h,2Ah,3Fh,2Ah,00h,15h,15h,00h,15h,3Fh,00h,3Fh
  312	                db      15h,00h,3Fh,3Fh,2Ah,15h,15h,2Ah,15h,3Fh,2Ah,3Fh,15h,2Ah,3Fh,3Fh
  313	                db      15h,00h,00h,15h,00h,2Ah,15h,2Ah,00h,15h,2Ah,2Ah,3Fh,00h,00h,3Fh
  314	                db      00h,2Ah,3Fh,2Ah,00h,3Fh,2Ah,2Ah,15h,00h,15h,15h,00h,3Fh,15h,2Ah
  315	                db      15h,15h,2Ah,3Fh,3Fh,00h,15h,3Fh,00h,3Fh,3Fh,2Ah,15h,3Fh,2Ah,3Fh
  316	                db      15h,15h,00h,15h,15h,2Ah,15h,3Fh,00h,15h,3Fh,2Ah,3Fh,15h,00h,3Fh
  317	                db      15h,2Ah,3Fh,3Fh,00h,3Fh,3Fh,2Ah,15h,15h,15h,15h,15h,3Fh,15h,3Fh
  318	                db      15h,15h,3Fh,3Fh,3Fh,15h,15h,3Fh,15h,3Fh,3Fh,3Fh,15h,3Fh,3Fh,3Fh
  319	
  320	Data            ends
  321	
  322	                END
  323	

Generated by GNU Enscript 1.6.6, and GophHub 1.3.