Raw File
1 ; _____________________________________________
2 ; | |
3 ; | Project: APPLER |
4 ; | File: HELP.ASM |
5 ; | Compiler: 16-bit TASM (2.5) |
6 ; | |
7 ; | Subject: Help Screen |
8 ; | |
9 ; | Author: Emil Dotchevski |
10 ; |_____________________________________________|
11
12 include GLOBALS.INC
13 include INTERFAC.INC
14 include CONIO.INC
15
16 Help segment public
17 assume cs:Help,ds:Help,es:Emulate
18
19 ScreenIOParams SIO_ParamStruc <1,Help,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 HelpInInit 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 HelpInInit endp
50
51 KeyPressed db 0
52 HelpOutInit 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 HelpOutInit endp
69
70 assume cs:Help,ds:Help,es:Emulate
71
72 HelpMainRet: push cs
73 pop ds
74 HelpLoop: call ReadKey
75 cmp al,0Ch
76 jne HelpLoop
77 call GoAppleII
78 jmp HelpLoop
79
80
81 Fkey proc far
82 cmp al,9
83 jne FkeyRet
84 call GoAppleII
85 FkeyRet: ret
86 Fkey endp
87
88
89
90 ShowAll proc far
91 push ax bx cx dx si bp ds es
92 push cs
93 pop ds
94 ScreenIOservice _CLEARSCREEN
95 call ShowTitle
96 call ShowKeys
97 call ShowHints
98 call ShowFuncKeys
99 pop es ds bp si dx cx bx ax
100 ret
101 ShowAll endp
102
103
104 ; -- Draw box --------------------------
105 ; Entry:
106 ; AH = Active Flag Bit
107 ; CX = HTAB & VTAB
108 ; BX = Offset of the strings
109 ; DL = Length of the box line - 1
110 ; DH = Number of lines - 1
111 ; Destroy:
112 ; AX,BX,CX,DX
113 DB_CX dw ?
114 DrawBox: mov ax,cx
115 add ax,80 * 2
116 mov cs:DB_CX,ax
117 mov ah,7
118 ScreenIOservice _STRINGPRINT
119 mov bx,ScreenIOparams.SP_bx
120 dec dh
121 mov al,dh
122 mov dx,cs:DB_CX
123 DB_Loop1: mov cx,dx
124 add dx,80 * 2
125 ScreenIOservice _STRINGPRINT
126 dec al
127 jnz DB_Loop1
128 mov cx,dx
129 mov bx,ScreenIOparams.SP_bx
130 ScreenIOservice _STRINGPRINT
131 ret
132
133
134
135 STi_Str db 1,3Fh,' APPLER HELP SCREEN ',0
136 ShowTitle: print 1,0,STi_Str
137 ret
138
139 ST_Str db 'ÚKeysÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿',0
140 db '³ ³',0
141 db 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ',0
142 ST_Str1 db 1,0Fh,'At any time:',0
143 ST_Str2 db 1,7,'<Alt+F1> Debugger',0
144 ST_Str3 db 1,7,'<Alt+F2> File Manager',0
145 ST_Str4 db 1,7,'<Alt+F3> Disk Manager',0
146 ST_Str5 db 1,7,'<Alt+F4> Keyboard Setup',0
147 ST_Str6 db 1,7,'<Alt+F9> About Appler',0
148 ST_Str7 db 1,7,'<Alt+F10> This Help Srceen',0
149 ST_Str8 db 1,7,'<Alt+Esc> DOS Shell',0
150 ST_Str9 db 1,7,'<Alt+X> Quit Appler',0
151 ST_Str10 db 1,0Fh,'While the Apple ][ is running:',0
152 ST_Str11 db 1,7,'<Ctrl+Del> Apple ][ Reset',0
153 ST_Str12 db 1,7,'<F12> Toggle Realtime Mode',0
154 ShowKeys: gotoxy 3,0
155 mov bx,offset ST_Str
156 mov dh,17
157 call DrawBox
158 print 5,2,ST_Str1
159 print 7,4,ST_Str2
160 print 8,4,ST_Str3
161 print 9,4,ST_Str4
162 print 10,4,ST_Str5
163 print 11,4,ST_Str6
164 print 12,4,ST_Str7
165 print 13,4,ST_Str8
166 print 14,4,ST_Str9
167 print 16,2,ST_Str10
168 print 18,4,ST_Str11
169 print 19,4,ST_Str12
170 ret
171
172 SE_Str db 'ÚSome HintsÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿',0
173 db '³ ³',0
174 db 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ',0
175 SE_Str1 db 1,0Fh,'To boot a disk:',1,7,' Enter Disk Manager,',0
176 SE_Str2 db 1,7,'highlight the .DSK file you want to',0
177 SE_Str3 db 1,7,'boot, then press the <F1> key.',0
178 SE_Str4 db 1,0Fh,'To run a file:',1,7,' Enter File Manager,',0
179 SE_Str5 db 1,7,'highlight the .APL file you want to',0
180 SE_Str6 db 1,7,'run, then press the <F1> key.',0
181 SE_Str7 db 1,0Fh,'To remap a key: ',1,7,'Enter Keyboard Setup',0
182 SE_Str8 db 1,7,'hit the key you want remapped, then',0
183 SE_Str9 db 1,7,'pick an ASCII code to assign to it.',0
184 SE_Str10 db 1,0Fh,'Realtime Mode:',1,7,' When realtime mode is',0
185 SE_Str11 db 1,7,'ON, the emulator matches the speed',0
186 SE_Str12 db 1,7,'of a real Apple ][ at 1 MHz. This',0
187 SE_Str13 db 1,7,'requires at least a 386 CPU, or else',0
188 SE_Str14 db 1,7,'realtime mode turns OFF, and the',0
189 SE_Str15 db 1,7,'emulator will likely run faster.',0
190
191 ShowHints: gotoxy 3,40
192 mov bx,offset SE_Str
193 mov dh,20
194 call DrawBox
195 print 5,42,SE_Str1
196 print 6,42,SE_Str2
197 print 7,42,SE_Str3
198 print 9,42,SE_Str4
199 print 10,42,SE_Str5
200 print 11,42,SE_Str6
201 print 13,42,SE_Str7
202 print 14,42,SE_Str8
203 print 15,42,SE_Str9
204 print 17,42,SE_Str10
205 print 18,42,SE_Str11
206 print 19,42,SE_Str12
207 print 20,42,SE_Str13
208 print 21,42,SE_Str14
209 print 22,42,SE_Str15
210 ret
211
212
213 SFK_Str db '1 2 3 4 5 '
214 db '6 7 8 9 10 ',0
215 SFK_FkeysMain dw SFK_None,SFK_None,SFK_None,SFK_None,SFK_None
216 dw SFK_None,SFK_None,SFK_None,SFK_None,SFK_Apple
217 SFK_None db ' ',0
218 SFK_Apple db 1,3Fh,'Apple ',1,3Fh,0
219
220 ShowFuncKeys: gotoxy 19h,0
221 mov bx,offset SFK_Str
222 mov ah,7
223 ScreenIOservice _STRINGPRINT
224 gotoxy 19h,1
225 xor si,si
226 mov ah,3Fh
227 SFK_Loop0: mov bx,cs:SFK_FkeysMain[si]
228 ScreenIOservice _STRINGPRINT
229 add cx,4
230 add si,2
231 cmp si,20
232 jb SFK_Loop0
233 ret
234
235 GoAppleII: push ax es
236 mov ax,Emulate
237 mov es,ax
238 mov al,C050
239 ScreenIOservice _SetScreen
240 SwitchToProcess PID_EMULATOR
241 pop es ax
242 ret
243
244 Help ends
245
246 END
247
Generated by GNU Enscript 1.6.6, and GophHub 1.3.