
PAGE 01    DAI FIRMWARE 3EDF9-3EFFF  V1.1

002                         ORG   :EDF9
003                 *
004                 *
005                 *
006                 ********************************
007                 * PRINT CONTENTS CPU SAVE AREA *
008                 ********************************
009                 *
010                 * Entry: HL: Points to register save area.
011                 *        msb A = 0: 1 byte to be printed.
012                 *        msb A = 1: 2 bytes to be printed.
013                 * Exit:  msb A = 0: AFC corrupted, BDEHL preserved.
014                 *        msb A = 1: AFCDE corrupted, BHL preserved.
015                 *
016 EDF9 B7         L3E227  ORA   A         Test flags
017 EDFA 7E                 MOV   A,M       Get contents save area
018 EDFB F21DED             JP    :ED1D     1 byte: print it in ASCII
019                             
020                 * If 2 bytes:
021                             
022 EDFE 5E                 MOV   E,M       Get contents in E
023 EDFF 23                 INX   H         Next addr
024 EE00 56                 MOV   D,M       Its contents in D
025 EE01 2B                 DCX   H         Restore HL
026 EE02 E5                 PUSH  H         Save it on stack
027 EE03 EB                 XCHG            Contents addr in HL
028 EE04 CD18ED             CALL  :ED18     Print 2 bytes in ASCII
029 EE07 E1                 POP   H         Restore HL
030 EE08 C9                 RET 
031                 *
032                 ****************************************
033                 * V+X: PRINT ROUTINE IF REGISTER GIVEN *
034                 ****************************************
035                 *
036                 * Entry: HL: Startaddress symbol table.
037                 *        DE: Startaddress CPU save area.
038                 *        A : Last input character.
039                 * Exit:  All registers corrupted.
040                 *
041 EE09 47         L3E228  MOV   B,A       Last input in B
042 EE0A CD01ED             CALL  :ED01     Print space
043 EE0D 7E         L3E229  MOV   A,M       Get symbol from table
044 EE0E E67F               ANI   :7F       Skip bit 7
045 EE10 CA62EA             JZ    :EA62     Error if symbol=0
046 EE13 B8                 CMP   B         Compare input with symbol
047 EE14 CA22EE             JZ    :EE22     Jump if identical
048 EE17 7E                 MOV   A,M       Get symbol
049 EE18 07                 RLC             Check for msb set
050 EE19 23                 INX   H         Next symbol
051 EE1A 13                 INX   D         Next memory area
052 EE1B D20DEE             JNC   :EE0D     Try next symbol
053 EE1E 13                 INX   D         Next mem. area for '2 byte'
054                                         symbols
055 EE1F C30DEE             JMP   :EE0D     Try again
056                             
057                 * If symbol found:
058                             
059 EE22 D5         L3E230  PUSH  D         Save addr in mem.area
060 EE23 7E         L3E231  MOV   A,M       Get symbol
061 EE24 E3                 XTHL            HL: addr mem.area;
062                                         stack: addr symbol
063 EE25 F5                 PUSH  PSW       Save symbol

PAGE 02    DAI FIRMWARE 3EDF9-3EFFF  V1.1

064 EE26 CDF9ED             CALL  :EDF9     Print contents mem.area
065 EE29 F1                 POP   PSW       Retrieve symbol
066 EE2A CD6AEE             CALL  :EE6A     Exchange mem.contents,
067                                         go to next one
068 EE2D DA37EE             JC    :EE37     Jump if 'ESC'
069 EE30 E3                 XTHL            HL: addr symbol,
070                                         stack: next mem.area
071 EE31 23                 INX   H         addr next symbol
072 EE32 7E                 MOV   A,M       Get symbol
073 EE33 B7                 ORA   A         Set flags
074 EE34 C223EE             JNZ   :EE23     Not all symbols done
075                 *
076 EE37 D1         L3E232  POP   D         Retrieve next mem.area
077 EE38 C9                 RET 
078                 *
079                 ************************
080                 * V+X: DISPLAY ROUTINE *
081                 ************************
082                 *
083                 * Displays registers at succesive memory locations.
084                 *
085                 * Entry: DE: startaddress memory area to be
086                 *            displayed.
087                 *        HL: Startaddress symbol table.
088                 * Exit:  All registers corrupted.
089                 *
090 EE39 CD06ED     L3E233  CALL  :ED06     Scan keyb, print char
091 EE3C FE0D               CPI   :0D       'CR' ?
092 EE3E C209EE             JNZ   :EE09     Jump if also byte given
093                             
094                 * If only 'V' or 'X':
095                             
096 EE41 00                 NOP 
097 EE42 00                 NOP 
098 EE43 00                 NOP 
099 EE44 D5         L3E234  PUSH  D         Save startaddr mem area
100 EE45 4E                 MOV   C,M       Get symbol in C
101 EE46 CDB4EE             CALL  :EEB4     Print symbol
102 EE49 0E3D               MVI   C,:3D
103 EE4B CDB4EE             CALL  :EEB4     Print '='
104 EE4E 7E                 MOV   A,M       Get symbol in A
105 EE4F B7                 ORA   A         Check flags
106 EE50 E3                 XTHL            HL: startaddr mem.area
107                                         stack: startaddr symboltable
108 EE51 F5                 PUSH  PSW       Save symbol + flags
109 EE52 CDF9ED             CALL  :EDF9     Print contents mem.area
110 EE55 F1                 POP   PSW       Retrieve symbol and flags
111 EE56 23                 INX   H
112 EE57 F25BEE             JP    :EE5B     Jump if '1 byte' symbol
113                             
114                 * If 2-byte symbol:
115                             
116 EE5A 23                 INX   H
117 EE5B 00         L3E235  NOP 
118 EE5C 00                 NOP 
119 EE5D 00                 NOP 
120 EE5E E3                 XTHL            HL: addr symbol
121                                         stack: addr next mem.area
122 EE5F 23                 INX   H         Next symbol
123 EE60 D1                 POP   D         Get addr next mem.area
124 EE61 7E                 MOV   A,M       Get symbol
125 EE62 B7                 ORA   A

PAGE 03    DAI FIRMWARE 3EDF9-3EFFF  V1.1

126 EE63 C8                 RZ              Quit if ready
127 EE64 CD01ED             CALL  :ED01     Print space
128 EE67 C344EE             JMP   :EE44     Next one
129                 *
130                 *****************************
131                 * V+X: EVT. MODIFY CONTENTS *
132                 *****************************
133                 *
134                 * Entry: HL: Memory address.
135                 *        A : Symbol.
136                 *
137 EE6A B7         L3E326  ORA   A         Set flags on symbol
138 EE6B F5                 PUSH  PSW       and save it
139 EE6C 0E2D               MVI   C,:2D
140 EE6E CDB4EE             CALL  :EEB4     Print '-'
141 EE71 E5                 PUSH  H         Save addr mem.area
142 EE72 0E01               MVI   C,:01     Nr of datablocks allowed
143 EE74 CD07EB             CALL  :EB07     Get input on stack; last
144                                         byte typed in in B
145 EE77 0D                 DCR   C
146 EE78 CA87EE             JZ    :EE87     Jump if incorrect input
147 EE7B D1                 POP   D         Data typed in in DE
148 EE7C E1                 POP   H         Get addr mem.area
149 EE7D F1                 POP   PSW       Get symbol and flags
150 EE7E 73                 MOV   M,E       Change memory contents
151 EE7F F28DEE             JP    :EE8D     Jump if '1 byte' symbol
152                             
153                 * If 2-byte symbol:
154                             
155 EE82 23                 INX   H
156 EE83 72                 MOV   M,D       Change 2nd byte
157 EE84 C38DEE             JMP   :EE8D
158                 *
159 EE87 E1         L3E327  POP   H         Retrieve addr mem.area
160 EE88 F1                 POP   PSW       Retrieve symbol + flags
161 EE89 F28DEE             JP    :EE8D     If '1 byte' symbol
162 EE8C 23                 INX   H         Add. INX H if 2-byte symbol
163 EE8D 23         L3E328  INX   H         Next mem.area
164 EE8E 78                 MOV   A,B       Get last input
165 EE8F FE0D               CPI   :0D
166 EE91 C8                 RZ              Ready if 'CR'
167 EE92 FE20               CPI   :20
168 EE94 C8                 RZ              Ready if 'SP'
169 EE95 FE12               CPI   :12
170 EE97 37                 STC             Abort with CY=1 if 'ESC'
171 EE98 C8                 RZ  
172 EE99 C362EA             JMP   :EA62     Else: wrong input: Error
173                 *
174                 ****************************
175                 * SYMBOL TABLE EXAMINE (X) *
176                 ****************************
177                 *
178                 * The msb is '1' for symbols of two-byte
179                 * registers.
180                 *
181 EE9C C9         L3E405  DATA  :C9       I (addr current instr)
182 EE9D 41                 DATA  :41       A
183 EE9E 46                 DATA  :46       F (flags)
184 EE9F 42                 DATA  :42       B
185 EEA0 43                 DATA  :43       C
186 EEA1 44                 DATA  :44       D
187 EEA2 45                 DATA  :45       E

PAGE 04    DAI FIRMWARE 3EDF9-3EFFF  V1.1

188 EEA3 48                 DATA  :48       H
189 EEA4 4C                 DATA  :4C       L
190 EEA5 D3                 DATA  :D3       S (stackpointer)
191 EEA6 D0                 DATA  :D0       P (program counter)
192 EEA7 00                 DATA  :00
193                 *
194                 *******************************
195                 * SYMBOL TABLE VECTOR EXAMINE *
196                 *******************************
197                 *
198                 * The msb is '1' for symbols of two-byte
199                 * registers.
200                 *
201 EEA8 4D         L3E406  DATA  :4D       M (TICC int mask)
202 EEA9 54                 DATA  :54       T (TICC cmd + comm.reg)
203 EEAA 47                 DATA  :47       G (GIC cmd word)
204 EEAB B0                 DATA  :B0       0  )
205 EEAC B1                 DATA  :B1       1  )
206 EEAD B2                 DATA  :B2       2  )
207 EEAE B3                 DATA  :B3       3  ) Interrupt vectors
208 EEAF B4                 DATA  :B4       4  ) addresses
209 EEB0 B5                 DATA  :B5       5  )
210 EEB1 B6                 DATA  :B6       6  )
211 EEB2 B7                 DATA  :B7       7  )
212 EEB3 00                 DATA  :00
213                 *
214                 *******************
215                 * PRINT CHARACTER *
216                 *******************
217                 *
218                 * Entry: C: Character to be printed.
219                 * Exit:  AF corrupted, BCDEHL preserved.
220                 *
221 EEB4 79         CO      MOV   A,C       Char in A
222 EEB5 C360DD             JMP   :DD60     Print char
223                 *
224                 *******************************
225                 * SCAN KEYBOARD; IGNORE BREAK *
226                 *******************************
227                 *
228                 * Exit: Character in A.
229                 *       BCDEHL preserved.
230                 *
231 EEB8 CD83EF     CI      CALL  :EF83     Scan keyboard
232 EEBB DAB8EE             JC    :EEB8     Ignore break
233 EEBE CAB8EE             JZ    :EEB8     Wait for input
234 EEC1 C9                 RET 
235                 *
236                 ***********************************
237                 * SCAN KEYBOARD FOR BREAK PRESSED *
238                 ***********************************
239                 *
240                 * Exit: CY=0: No break.
241                 *       CY=1: Break pressed.
242                 *       A corrupted, BCDEHL preserved.
243                 *
244 EEC2 CDA5D6     BREAK   CALL  :D6A5     Scan keyb for new inputs
245 EEC5 D0                 RNC             abort if Break not pressed
246 EEC6 C36AEA             JMP   :EA6A     Restore SP, wait for
247                                         new inputs
248                 *
249                 *

PAGE 05    DAI FIRMWARE 3EDF9-3EFFF  V1.1

250                 *********************
251                 * CASSETTE ROUTINES *
252                 *********************
253                 *
254 EEC9 C3C502     L3E335  JMP   :02C5     WOPEN
255                 *
256 EECC FF                 DATA  :FF
257 EECD FF                 DATA  :FF
258 EECE FF                 DATA  :FF
259                 *
260 EECF C3C802     L3E336  JMP   :02C8     WBLK
261                 *
262 EED2 FF                 DATA  :FF
263 EED3 FF                 DATA  :FF
264 EED4 FF                 DATA  :FF
265                 *
266 EED5 C3CB02     L3E337  JMP   :02CB     WCLOSE
267                 *
268 EED8 C3CE02     L3E338  JMP   :02CE     ROPEN
269                 *
270 EEDB FF                 DATA  :FF
271 EEDC FF                 DATA  :FF
272 EEDD FF                 DATA  :FF
273                 *
274 EEDE C3D102     L3E339  JMP   :02D1     RBLK
275                 *
276 EEE1 C3D402     L3E340  JMP   :02D4     RCLOSE
277                 *
278                 *************
279                 * W - WRITE *
280                 *************
281                 *
282                 * Requires 2 address fields + evt. name.
283                 * Filetype is '1'. Writes startaddress of datablock
284                 * + data + trailer on tape.
285                 *
286 EEE4 0E02       L3E341  MVI   C,:02     Nr of addr allowed
287 EEE6 CDDEEA             CALL  :EADE     Scan keyb, addr on stack
288 EEE9 0D                 DCR   C         2 addr given ?
289 EEEA F262EA             JP    :EA62     Error if not
290 EEED CD48EF             CALL  :EF48     Evt. name in input buffer
291 EEF0 3E31               MVI   A,:31     File type byte
292 EEF2 00                 NOP 
293 EEF3 00                 NOP 
294 EEF4 00                 NOP 
295 EEF5 00                 NOP 
296 EEF6 00                 NOP 
297 EEF7 00                 NOP 
298 EEF8 CDC9EE             CALL  :EEC9     Write file header on tape
299 EEFB D1                 POP   D         Get haddr from stack
300 EEFC 13                 INX   D         Incr it
301 EEFD E1                 POP   H         Get laddr from stack
302 EEFE CD63EF             CALL  :EF63     Write startaddr on tape
303 EF01 7B                 MOV   A,E       )
304 EF02 95                 SUB   L         )
305 EF03 5F                 MOV   E,A       ) Calc length of data
306 EF04 7A                 MOV   A,D       ) block, result in DE
307 EF05 9C                 SBB   H         )
308 EF06 57                 MOV   D,A       )
309 EF07 00                 NOP 
310 EF08 CDCFEE             CALL  :EECF     Write datablock on tape
311 EF0B CDD5EE             CALL  :EED5     Write file trailer

PAGE 06    DAI FIRMWARE 3EDF9-3EFFF  V1.1

312 EF0E C9                 RET 
313                 *
314                 ************
315                 * R - READ *
316                 ************
317                 *
318                 * One address is allowed. An evt. name is stored
319                 * in the EBUF. Reads header, startaddress and data
320                 * from tape. Errorcheck only on data.
321                 *
322                 * Exit: HL: 1st address above file loaded.
323                 *       BC: Evt. offset.
324                 *       AFDE corrupted.
325                 *
326 EF0F 0E01       RHEXK   MVI   C,:01     Nr of addr allowed
327 EF11 CDDEEA             CALL  :EADE     Scan keyb; addr on stack
328 EF14 CD48EF             CALL  :EF48     Evt name in input buffer
329 EF17 0631               MVI   B,:31     File type byte
330 EF19 00                 NOP 
331 EF1A 00                 NOP 
332 EF1B 00                 NOP 
333 EF1C 0E00               MVI   C,:00
334 EF1E CDD8EE             CALL  :EED8     Read file header
335 EF21 1100F9             LXI   D,:F900   Max addr to write data into
336 EF24 C1                 POP   B         Get evt offset from stack
337 EF25 CD74EF             CALL  :EF74     Read startaddr from tape
338 EF28 09                 DAD   B         Add offset
339 EF29 CD8AEF             CALL  :EF8A     Read data block + trailer
340 EF2C D262EA             JNC   :EA62     Print 'error' if reading
341                                         error
342 EF2F C9                 RET 
343                 *
344                 ***************************************
345                 * RST 0: POINTER TO 'LOOK'-FLAG IN HL *
346                 ***************************************
347                 *
348                 * Part of 3EC21.
349                 *
350                 * Exit: A=0, BCDE preserved.
351                 *
352 EF30 AF         L3E343  XRA   A
353 EF31 215000             LXI   H,:0050
354 EF34 C9                 RET 
355                 *
356                 ********************
357                 * INITIALISE RST 0 *
358                 ********************
359                 *
360                 * Entry: On stack: Returnaddress #EA42.
361                 *
362 EF35 3EFB       L3E344  MVI   A,:FB     Instr code for EI in A
363 EF37 324700             STA   :0047     Save it
364 EF3A D1                 POP   D         Get EA42 in DE
365 EF3B C3E2EB             JMP   :EBE2     Into RST 0
366                 *
367                 **********************
368                 * SET INTERRUPT MASK *
369                 **********************
370                 *
371                 * Part of RST0 (3EC05).
372                 *
373                 * Entry: A: Value for TICC interrupt mask.

PAGE 07    DAI FIRMWARE 3EDF9-3EFFF  V1.1

374                 * Exit:  A=0, F corrupted, BCDEHL preserved.
375                 *
376 EF3E 32F8FF     L3E345  STA   :FFF8     Set TICC int mask
377 EF41 AF                 XRA   A         A=0
378 EF42 C9                 RET 
379                 *
380 EF43 FF                 DATA  :FF
381                 *
382                 *************************
383                 * part of RST 0 (3EC3B) *
384                 *************************
385                 *
386 EF44 2B         L3E346  DCX   H
387 EF45 C319EC             JMP   :EC19     Into RST 0
388                 *
389                 *****************************
390                 * W+R: NAME IN INPUT BUFFER *
391                 *****************************
392                 *
393                 * Names >126 characters destroy BASIC pointers.
394                 *
395                 * Entry: Last character typed in, in B.
396                 * Exit:  BCD preserved. HL points to EBUF.
397                 *        A= 0: No file name given.
398                 *        A<>0: File name given.
399                 *
400 EF48 213E01     L3E347  LXI   H,:013E   Startaddr EBUF
401 EF4B 1EFF               MVI   E,:FF
402 EF4D 78                 MOV   A,B       Last char in A
403 EF4E D60D               SUI   :0D       'CR' ?
404 EF50 77                 MOV   M,A       (13E) is 0 if CR
405 EF51 C8                 RZ              Quit if no name given
406                             
407                 * If name given:
408                             
409 EF52 E5                 PUSH  H         Save startaddr EBUF
410 EF53 2C         L3E356  INR   L         Points to next loc
411 EF54 1C                 INR   E         Calc length
412 EF55 CD06ED             CALL  :ED06     Scan keyb, print char
413 EF58 77                 MOV   M,A       Char into EBUF
414 EF59 FE0D               CPI   :0D
415 EF5B C253EF             JNZ   :EF53     Next char if not 'CR'
416 EF5E E1                 POP   H         Retrieve startaddr EBUF
417 EF5F 73                 MOV   M,E       Store length name in 013E
418 EF60 C9                 RET 
419                 *
420                 **************
421                 * (Not used) *
422                 **************
423                 *
424 EF61 E1         L3E348  POP   H
425 EF62 C9                 RET 
426                 *
427                 ******************************
428                 * WRITE STARTADDRESS ON TAPE *
429                 ******************************
430                 *
431                 * Entry: HL: Startaddress.
432                 * Exit:  AF corrupted, BCDEHL preserved.
433                 *
434 EF63 D5         L3E349  PUSH  D
435 EF64 E5                 PUSH  H

PAGE 08    DAI FIRMWARE 3EDF9-3EFFF  V1.1

436 EF65 223E01             SHLD  :013E     Startaddr in EBUF
437 EF68 213E01             LXI   H,:013E   Startaddr to write from
438 EF6B 110200             LXI   D,:0002   Length
439 EF6E CDCFEE             CALL  :EECF     Write addr on tape
440 EF71 E1                 POP   H
441 EF72 D1                 POP   D
442 EF73 C9                 RET 
443                 *
444                 *******************************
445                 * READ STARTADDRESS FROM TAPE *
446                 *******************************
447                 *
448                 * Exit: HL: Startaddress.
449                 *       CY=1: No reading error.
450                 *       CY=0: Reading error, errorcode in A.
451                 *       BCDE preserved.
452                 *
453 EF74 D5         L3E350  PUSH  D
454 EF75 213E01             LXI   H,:013E   Addr EBUF
455 EF78 114101             LXI   D,:0141   Addr after addr in EBUF
456 EF7B CDDEEE             CALL  :EEDE     Read block from tape
457 EF7E D1                 POP   D
458 EF7F 2A3E01             LHLD  :013E     Startaddr in HL
459 EF82 C9                 RET 
460                 *
461                 *****************
462                 * SCAN KEYBOARD *
463                 *****************
464                 *
465                 * Part of 3EEB8. Scans keyboard. Returns
466                 * any key received.
467                 *
468                 * Exit: A: Key received.
469                 *       BCDEHL preserved.
470                 *       CY=1: Break pressed.
471                 *
472 EF83 AF         L3E351  XRA   A
473 EF84 32B902             STA   :02B9     Enable complete keyb scan
474 EF87 C3BED6             JMP   :D6BE     Scan keyboard
475                 *
476                 ***********************
477                 * READ DATA FROM TAPE *
478                 ***********************
479                 *
480                 * Part of READ (3EF29).
481                 *
482 EF8A CDDEEE     L3E352  CALL  :EEDE     Read block from tape
483 EF8D C3E1EE             JMP   :EEE1     Stop reading
484                 *
485                 ******************************
486                 * DCE INITIALISATION ROUTINE *
487                 ******************************
488                 *
489                 * Part of RESET (C719). Bootstrap for disc drive.
490                 * Sets GIC in initialisation status. Checks if any
491                 * input is received from the DCE-bus and performs
492                 * the received instructions.
493                 *
494                 * Exit: A=#EE if no DCE-inputs available.
495                 *
496 EF90 3E98       L3E353  MVI   A,:98
497 EF92 3203FE             STA   :FE03     PA+PCH in, PB+PCL out

PAGE 09    DAI FIRMWARE 3EDF9-3EFFF  V1.1

498 EF95 3E07               MVI   A,:07
499 EF97 3203FE             STA   :FE03     PC3=1
500 EF9A 3E01               MVI   A,:01
501 EF9C 3201FE             STA   :FE01     Output PB: 01
502 EF9F 3E01               MVI   A,:01
503 EFA1 3203FE             STA   :FE03     PC0=1
504 EFA4 010010             LXI   B,:1000
505 EFA7 3A02FE     L3E355  LDA   :FE02     Get input from PCH
506 EFAA E620               ANI   :20       Bit 5 only
507 EFAC C2B8EF             JNZ   :EFB8     Jump if inputs received
508                             
509                 * If no inputs:
510                             
511 EFAF 0B                 DCX   B         )
512 EFB0 78                 MOV   A,B       ) Wait loop until C=#10
513 EFB1 B1                 ORA   C         )
514 EFB2 C2A7EF             JNZ   :EFA7     )
515 EFB5 3EEE               MVI   A,:EE     A=EE if no inputs
516 EFB7 C9                 RET 
517                 *
518                 * DCE BOOTSTRAP INPUT ROUTINE:
519                 *
520                 * Loads MLP inputs from the DCE-bus into the
521                 * stackbottom and goes to it.
522                 *
523 EFB8 1100F8     L3E354  LXI   D,:F800   Addr stackbottom
524 EFBB 3E05       L3E357  MVI   A,:05
525 EFBD 3203FE             STA   :FE03     PC2=1
526 EFC0 3A02FE     L3E358  LDA   :FE02     Get input from PC
527 EFC3 E680               ANI   :80       Bit 7 only
528 EFC5 CAC0EF             JZ    :EFC0     Wait for change to high
529 EFC8 3A00FE             LDA   :FE00     Get input from FA
530 EFCB 12                 STAX  D         Save input in stack area
531 EFCC 13                 INX   D         Point to next loc
532 EFCD 3E04               MVI   A,:04
533 EFCF 3203FE             STA   :FE03     PC2=0
534 EFD2 3A02FE     L3E359  LDA   :FE02     Get input from PC
535 EFD5 E680               ANI   :80       Bit 7 only
536 EFD7 C2D2EF             JNZ   :EFD2     Wait for change to low
537 EFDA 3A02FE             LDA   :FE02     Get input from FC
538 EFDD E620               ANI   :20       Bit 5 only
539 EFDF C2BBEF             JNZ   :EFBB     Again if high
540 EFE2 3E06               MVI   A,:06
541 EFE4 323EFE             STA   :FE3E     (FE3E hardwarewise read as
542                                         FE02). PC=06
543 EFE7 3A02FE     L3E360  LDA   :FE02     Get input from FC
544 EFEA E620               ANI   :20       Bit 5 only
545 EFEC CAE7EF             JZ    :EFE7     Wait for change to high
546 EFEF C300F8             JMP   :F800     Go to stackbottom
547                 *
548 EFF2 FF                 DATA  :FF
549 EFF3 FF                 DATA  :FF
550                 *
551                 *********************
552                 * SCAN 'DINC' INPUT *
553                 *********************
554                 *
555                 * Part of 3E935. Default 'DINC' is RS232 input.
556                 *
557 EFF4 CDB4DD     L3E361  CALL  :DDB4     Get input from DINC
558 EFF7 CA35E9             JZ    :E935     Scan keyb if no DINC input
559                             

PAGE 10    DAI FIRMWARE 3EDF9-3EFFF  V1.1

560                 * If inputs from DINC:
561                             
562 EFFA 3E01               MVI   A,:01
563 EFFC 329602             STA   :0296     Set INSW for DINC input
564 EFFF C9                 RET 
565                 *
566                 *
567                 *
568 F000                    END 
 
***************************
* S Y M B O L   T A B L E *
***************************
 
BREAK  EEC2   CI     EEB8   CO     EEB4   L3E227 EDF9   
L3E228 EE09   L3E229 EE0D   L3E230 EE22   L3E231 EE23   
L3E232 EE37   L3E233 EE39   L3E234 EE44   L3E235 EE5B   
L3E326 EE6A   L3E327 EE87   L3E328 EE8D   L3E335 EEC9   
L3E336 EECF   L3E337 EED5   L3E338 EED8   L3E339 EEDE   
L3E340 EEE1   L3E341 EEE4   L3E343 EF30   L3E344 EF35   
L3E345 EF3E   L3E346 EF44   L3E347 EF48   L3E348 EF61   
L3E349 EF63   L3E350 EF74   L3E351 EF83   L3E352 EF8A   
L3E353 EF90   L3E354 EFB8   L3E355 EFA7   L3E356 EF53   
L3E357 EFBB   L3E358 EFC0   L3E359 EFD2   L3E360 EFE7   
L3E361 EFF4   L3E405 EE9C   L3E406 EEA8   RHEXK  EF0F
