GophHub - zajo/appler/src/ABOUT.ASM


Raw File

    1	;  _____________________________________________
    2	; |                                             |
    3	; |  Project:   APPLER                          |
    4	; |  File:      ABOUT.ASM                       |
    5	; |  Compiler:  16-bit TASM (2.5)               |
    6	; |                                             |
    7	; |  Subject:   About Screen                    |
    8	; |                                             |
    9	; |  Author:    Emil Dotchevski                 |
   10	; |_____________________________________________|
   11	
   12	                include GLOBALS.INC
   13	                include INTERFAC.INC
   14	                include CONIO.INC
   15	
   16	About           segment public
   17	                assume  cs:About,ds:About,es:Emulate
   18	
   19	ScreenIOParams  SIO_ParamStruc <1,About,0,0,offset Screen,seg Screen,1,0,1,1>
   20	GetKeyParams    RK_ParamStruc  <1,Fkey,0,0,0,?,ShowAll,0>
   21	
   22	Print           macro   y,x,Str
   23	                gotoxy  y,x
   24	                mov     bx,offset Str
   25	                ScreenIOservice _STRINGPRINT
   26	                endm
   27	
   28	
   29	AboutInInit     proc    far
   30	                cli
   31	                push    ax ds es
   32	                mov     ax,Emulate
   33	                mov     es,ax
   34	                mov     al,es:[C000]
   35	                mov     cs:KeyPressed,al
   36	                mov     es:[C000],0
   37	                call    DebugKeysOn
   38	                assume  ds:CONio
   39	                mov     ax,CONio
   40	                mov     ds,ax
   41	                mov     SIO_ParamsOfs, offset ScreenIOParams
   42	                mov     SIO_ParamsSeg, seg    ScreenIOParams
   43	                mov     RK_ParamsOfs,  offset GetKeyParams
   44	                mov     RK_ParamsSeg,  seg    GetKeyParams
   45	                pop     es ds ax
   46	                call    UnSetBreaks
   47	                sti
   48	                ret
   49	AboutInInit     endp
   50	
   51	KeyPressed      db      0
   52	AboutOutInit    proc    far
   53	                cli
   54	                push    ax es
   55	                mov     ax,Emulate
   56	                mov     es,ax
   57	                mov     al,KeyPressed
   58	                mov     es:[C000],al
   59	                mov     ax,seg T_Iflags
   60	                mov     es,ax
   61			assume  es:seg T_Iflags
   62	                mov     byte ptr es:T_Iflags,00000010b
   63	                assume  es:Emulate
   64	                pop     es ax
   65			call    AppleKeysOn
   66	                call    SetBreaks
   67	                ret
   68	AboutOutInit    endp
   69	
   70	                assume  cs:About,ds:About,es:Emulate
   71	
   72	AboutMainRet:   push    cs
   73	                pop     ds
   74	AboutLoop:      call    ReadKey
   75	                cmp     al,0Ch
   76	                jne     AboutLoop
   77	                call    GoAppleII
   78	                jmp     AboutLoop
   79	
   80	
   81	
   82	Fkey            proc    far
   83	                cmp     al,8
   84	                jne     FkeyRet
   85	                call    GoAppleII
   86	FkeyRet:        ret
   87	Fkey            endp
   88	
   89	
   90	
   91	ShowAll         proc    far
   92	                push    ax bx cx dx si bp ds
   93	                push    cs
   94	                pop     ds
   95	                call    ShowTitle
   96	                call    ShowEmulation
   97	                call    ShowAuthors
   98	                call    ShowDistribute
   99	                call    ShowLicense
  100	                call    ShowFuncKeys
  101	                pop     ds bp si dx cx bx ax
  102	                ret
  103	ShowAll         endp
  104	
  105	
  106	; -- Draw box --------------------------
  107	; Entry:
  108	;  AH  = Active Flag Bit
  109	;  CX  = HTAB & VTAB
  110	;  BX  = Offset of the strings
  111	;  DL  = Length of the box line - 1
  112	;  DH  = Number of lines - 1
  113	; Destroy:
  114	;  AX,BX,CX,DX
  115	DB_CX           dw      ?
  116	DrawBox:        mov     ax,cx
  117	                add     ax,80 * 2
  118	                mov     cs:DB_CX,ax
  119	                mov     ah,7
  120	                ScreenIOservice _STRINGPRINT
  121	                mov     bx,ScreenIOparams.SP_bx
  122	                dec     dh
  123	                mov     al,dh
  124	                mov     dx,cs:DB_CX
  125	DB_Loop1:       mov     cx,dx
  126	                add     dx,80 * 2
  127	                ScreenIOservice _STRINGPRINT
  128	                dec     al
  129	                jnz     DB_Loop1
  130	                mov     cx,dx
  131	                mov     bx,ScreenIOparams.SP_bx
  132	                ScreenIOservice _STRINGPRINT
  133	                ret
  134	
  135	
  136	
  137	ST_Str          db      '                                  ABOUT APPLER                                  ',0
  138	ShowTitle:      gotoxy  1,0
  139	                mov     ah,1Fh
  140	                mov     bx,offset ST_Str
  141	                ScreenIOservice _STRINGPRINT
  142	                gotoxy  2,0
  143	                xor     ah,ah
  144	                ScreenIOservice _STRINGPRINT
  145	                ret
  146	
  147	SE_Str          db      'ÚEmulationÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ',0
  148	                db      '³                                     ³ ',0
  149	                db      'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ',0
  150	SE_Str1         db      1,0Fh,'APPLER',1,7,' emulates:',0
  151	SE_Str2         db      1,0Fh,'þ',1,7,' 65C02 Valid',1,0Fh,' Instructions',0
  152	SE_Str3         db      1,0Fh,'þ',1,7,' APPLE ][',1,0Fh,' Video Modes',0
  153	SE_Str4         db      1,0Fh,'þ',1,7,' APPLE ][',1,0Fh,' Keyboard',0
  154	SE_Str5         db      1,0Fh,'þ',1,7,' APPLE ][',1,0Fh,' Internal Speaker',0
  155	SE_Str6         db      1,0Fh,'þ',1,7,' APPLE ][',1,0Fh,' Floppy Disk Controller',0
  156	SE_Str7         db      1,0Fh,'þ',1,7,' APPLE ][',1,0Fh,' Language Card',0
  157	SE_Str8         db      1,0Fh,'þ',1,7,' APPLE ][',1,0Fh,' Digital Joystick',0
  158	ShowEmulation:  gotoxy  3,0
  159	                mov     bx,offset SE_Str
  160	                mov     dh,10
  161	                call    DrawBox
  162	                print   5,2,SE_Str1
  163	                print   6,3,SE_Str2
  164	                print   7,3,SE_Str3
  165	                print   8,3,SE_Str4
  166	                print   9,3,SE_Str5
  167	                print  10,3,SE_Str6
  168	                print  11,3,SE_Str7
  169	                print  12,3,SE_Str8
  170	                ret
  171	
  172	
  173	
  174	SA_Str          db      'ÚAuthorsÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿',0
  175	                db      '³                                      ³',0
  176	                db      'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ',0
  177	SA_Str1         db      1,0Fh,'Emil Dotchevski',0
  178	SA_Str2         db      1,0Fh,'Alexander Patalenski',0
  179	ShowAuthors:    gotoxy  3,40
  180	                mov     bx,offset SA_Str
  181	                mov     dh,6
  182	                call    DrawBox
  183	                print   5,43,SA_Str1
  184	                print   7,57,SA_Str2
  185	                ret
  186	
  187	
  188	ifndef LICENSE_NAME
  189	SD_Str          db      'ÚDistributionÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿',0
  190	                db      '³                                      ³',0
  191	                db      'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ',0
  192	SD_Str1         db      1,0Fh,'FREE:',1,7,' for non-comercial use only',0
  193	else
  194	SD_Str          db      'ÚRegistrationÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿',0
  195	                db      '³                                      ³',0
  196	                db      'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ',0
  197	SD_Str1         db      1,0Fh
  198	                db_LICENSE_NAME
  199	                db      0
  200	endif
  201	ShowDistribute: gotoxy  10,40
  202	                mov     bx,offset SD_Str
  203	                mov     dh,3
  204	                call    DrawBox
  205	                print   12,43,SD_Str1
  206	                ret
  207	
  208	
  209	
  210	SL_Str          db      'ÚLicenseÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿',0
  211	                db      '³                                                                              ³',0
  212	                db      'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ',0
  213	SL_Str1         db      'This is a Public Domain software: you are licensed to use and distribute',0
  214	SL_Str2         db      'it absolutely free as long as no charge is made and program files are not',0
  215	SL_Str3         db      'modified. Comments and bug reports are welcome.',0
  216	SL_Str4         db      'Emil Dotchevski:       https://github.com/zajo',0
  217	SL_Str5         db      'Alexander Patalenski:  alexp@unforgettable.com',0
  218	SL_Str6         db      1,0Ah,'APPLE ][ FOREVER!',0
  219	ShowLicense:    gotoxy  14,0
  220	                mov     bx,offset SL_Str
  221	                mov     dh,10
  222	                call    DrawBox
  223	                print   16,3,SL_Str1
  224	                print   17,3,SL_Str2
  225	                print   18,3,SL_Str3
  226	                print   20,3,SL_Str4
  227	                print   21,3,SL_Str5
  228	                print   23,60,SL_Str6
  229	                ret
  230	
  231	
  232	
  233	SFK_Str         db      '1       2       3       4       5       '
  234	                db      '6       7       8       9      10       ',0
  235	SFK_FkeysMain   dw      SFK_None,SFK_None,SFK_None,SFK_None,SFK_None
  236	                dw      SFK_None,SFK_None,SFK_None,SFK_Apple,SFK_None
  237	SFK_None        db      '      ',0
  238	SFK_Apple       db      1,1Fh,'Apple ',1,1Fh,0
  239	
  240	ShowFuncKeys:   gotoxy  19h,0
  241	                mov     bx,offset SFK_Str
  242	                mov     ah,7
  243	                ScreenIOservice _STRINGPRINT
  244	                gotoxy  19h,1
  245	                xor     si,si
  246	                mov     ah,1Fh
  247	SFK_Loop0:      mov     bx,cs:SFK_FkeysMain[si]
  248	                ScreenIOservice _STRINGPRINT
  249	                add     cx,4
  250	                add     si,2
  251	                cmp     si,20
  252	                jb      SFK_Loop0
  253	                ret
  254	
  255	GoAppleII:      push    ax es
  256			mov     ax,Emulate
  257	                mov     es,ax
  258	                mov     al,C050
  259	                ScreenIOservice _SetScreen
  260	                SwitchToProcess PID_EMULATOR
  261	                pop     es ax
  262	                ret
  263	
  264	About           ends
  265	
  266			END
  267	

Generated by GNU Enscript 1.6.6, and GophHub 1.3.