Top 10k strings from nortonall.rtf in <root> / doc / technical / RoelofKoning / nortonall.zip /

Back to the directory listing

   3 ;sub --------\par
   3 ;-------------------------------------------------\par
   2 \cf1 ;########################################################################\par
   2 ;----------------------------------------\par
   2 ;-----------------------------------------------\par
   2 ;------------------------------------------------\par
   2 48600 CDDFBD \tab\cf3 CALL 48607\cf0    \par
   1 ~D~@dRLJJ<8$~NJ2<J2bvJvLR<$?dD(((D(R<NV|~J4<B$~B<~JB~<R4~~B~B0@>~~@@~~~<B<~~b RETURN ~2NDJ2~~@~>@>>|>fF~BB  BB~????P|RTtTx~H08DD0H~8TH|??|~pHz@@?z~>@@|8||x8D8 DRAW $ DRAW xHT$>D|@|<@<<x<l??|dTLvB~Bv~ABS RNDB  \par
   1 {\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}}
   1 {\colortbl ;\red255\green0\blue0;\red255\green255\blue0;\red0\green0\blue255;}
   1 commented by Roelof Koning 2005\par
   1 \viewkind4\uc1\pard\nowidctlpar\lang2057\ul\b\f0\fs24 NORTON for HC91 by ALEODOR.\ulnone\b0\fs20\par
   1 \tab\tab\tab\tab\tab\tab\tab ;fetch CAT, fetch key\par
   1 \tab\tab\tab\tab\tab\tab\cf1\b ;prep normal screen and exit!\cf0\b0\par
   1 \tab\tab\tab\tab\tab\tab ;\cf1\b prep second screen,back in menu loop \cf0\b0\par
   1 \highlight2 48619\highlight0  info table for hookcode 58 \tab      \par
   1 \highlight2 48607\highlight0  EB   \tab\tab EX DE,HL   \par
   1 \highlight2 48561\highlight0  211027 \tab LD HL,10000  \par
   1 \highlight2 48511\highlight0  210010 \tab LD HL,4096   \tab ;count 128 x 32\par
   1 \highlight2 48376\highlight0  DD21EBBD \tab LD IX,48619  \tab ;prepare info table\par
   1 \highlight2 48327\highlight0  1600   \tab LD D,0   \tab\tab ;keyrows 0 - 8\par
   1 \highlight2 48303\highlight0  C5   \tab\tab PUSH BC    \par
   1 \highlight2 48265\highlight0  D5   \tab\tab PUSH DE    \par
   1 \highlight2 48246\highlight0  7A   \tab\tab LD A,D   \tab\tab\par
   1 \highlight2 48155\highlight0  DD2180BE \tab LD IX,\b 48768 \b0  \tab ;the char table in the REM line!\par
   1 \highlight2 48039\highlight0  FD36000D \tab LD (IY+0),13 \tab ;close old print$\par
   1 \highlight2 47845\highlight0  F3   \tab\tab DI     \par
   1 \highlight2 47729\highlight0  FD36000D \tab LD (IY+0),13 \tab ;close old print$\par
   1 \highlight2 47537\highlight0  F3   \tab\tab DI     \par
   1 \highlight2 47472\highlight0  0615   \tab LD B,21    \tab\tab ;number of lines = file names\par
   1 \highlight2 47443\highlight0  DD7E0C \tab LD A,(IX+12) \par
   1 \highlight2 47407\highlight0  D9   \tab\tab EXX      \par
   1 \highlight2 47386\highlight0  DDE5   \tab PUSH IX    \par
   1 \highlight2 47368\highlight0  3279BE \tab LD (48761),A \tab\tab ;store key\par
   1 \highlight2 47345\highlight0  CD76BC \tab\cf3 CALL 48246\cf0    \tab ;calc screen addr from DE\par
   1 \highlight2 47279\highlight0  CDF1B8 \tab\cf3 CALL 47345\cf0    \tab ;invert cursor\par
   1 \highlight2 47264\highlight0  CDE5BA \tab\cf3 CALL 47845\cf0    \tab ;fetch CAT + print\par
   1 \highlight2 47247\highlight0  CDB1B9 \tab\cf3 CALL 47537\cf0    \tab ;fetch CAT + print\par
   1 \highlight2 47231\highlight0  DD2A7ABE \tab LD IX,(48762)  \par
   1 \highlight2 46998\highlight0  FD21ADB7\tab LD IY,47021  \tab ;table\par
   1 \highlight2 46966\highlight0  78  \tab\tab LD A,B           ;line/col to coords ??\par
   1 \highlight2 46951\highlight0  CD76B7 \tab\cf3 CALL 46966\cf0    \tab ;find screen addr\par
   1 \highlight2 46942\highlight0  CD67B7 \tab\cf3 CALL 46951\cf0    \tab ;move to screen\par
   1 \highlight2 46933\highlight0  CD67B7 \tab\cf3 CALL 46951\cf0    \tab ;move to screen\par
   1 \highlight2 46915\highlight0  C5   \tab\tab PUSH BC    \par
   1 \highlight2 46867\highlight0  2100C0\tab\tab LD HL,49152\tab\tab ;prep an empty screen\par
   1 \highlight2 46848\highlight0  F3   \tab\tab\tab DI   \tab\tab\tab ;prep to use second\par
   1 \highlight2 23842\highlight0   0000 0000 0000 5E \tab ; DEFB 0,0,0,0,0,0,94  \par
   1 \highlight2 23829\highlight0  21165D   LD HL,23830  \tab ;The start address of the following table \par
   1 \cf1\b ;this is the character set for 64-print. see dump further on\cf0\b0\par
   1 \cf0\b0   80 IF i=33 THEN CLEAR #: CLS : PRINT AT 10,0;"Loading: "\par
   1 \cf0 ;This address is found by (PEEK 23635 + 256*PEEK 23636 + 5).\par
   1 \cf0 ;CONTENTS OF REM LINE 1\par
   1 \b0 ;appearently the I/O info block starts at 48643.\par
   1 \b0 ;-------------------------------------------------------------------- \par
   1 \b The basic part:\b0  (byte saving VAL"" notation removed)\par
   1 \b The MC part:\b0\par
   1 ;the calculation job.\par
   1 ;table\par
   1 ;table ----------------  see 48376    \par
   1 ;sub --------    \par
   1 ;sub --------    BC and DE hold screen pointers\par
   1 ;start\par
   1 ;simply does so). Thus starting with  LD HL,13  ADD HL,BC would have done\par
   1 ;re-enter here after key tests in BASIC\par
   1 ;print small char message on screen.  DE holds position\par
   1 ;print header text from table\par
   1 ;print 'blocks' at DE  (black spaces)\par
   1 ;prepare result table to be read from BASIC\par
   1 ;prepare a decimal number in table at IY  (called 2 times)\par
   1 ;prepare a bottom line print$ for drive 2\par
   1 ;menu loop\par
   1 ;key found --------------------\par
   1 ;invert cursor\par
   1 ;fixed position in memory. \par
   1 ;find screenaddress  -------- not optimal...... \par
   1 ;fetch second part of the cat\par
   1 ;fetch more cat,  1 x called. \b  see also 47537!\b0\par
   1 ;fetch key --------------------------------\par
   1 ;fetch catalogue\par
   1 ;end ---------------------------------------------------------------\par
   1 ;cursor up\par
   1 ;cursor up (2)\par
   1 ;cursor down\par
   1 ;continue here when the screen has been prepared\par
   1 ;calculate free room on disk, IX= cat table  (called 2 x)\par
   1 ;calc screen address from lin/col(64) in DE\par
   1 ;build a frame on screen\par
   1 ;build a bottom line print$ for drive 1\par
   1 ;border flash\par
   1 ;because this changes along with the line address!!!!!!!!!!!!!!!!!!\par
   1 ;adjust the info table, reading more sectors\par
   1 ;\b another!\b0  \par
   1 ;\b Note that the table address in HL should also have been calculated\par
   1 ;This table will be found on 48768,\par
   1 ;On entry in this routine BC already holds the start address (RANDOMIZE\par
   1 ;A position in the first (REM) line is calculated, because BASIC has no\par
   1 ;-----------------------------\par
   1 ;------------------------------\par
   1 ;--------------------------------\par
   1 ;------------------------------------------\par
   1 ;---------------------------------------------\par
   1 ;----------------------------------------------\par
   1 ;--------------------------------------------------\par
   1 ;--------------------------------------------------\highlight2\par
   1 ;---------------------------------------------------\par
   1 ;------------------------------------------------------\par
   1 ;---------------------------------------------------------\par
   1 ;----------------------------------------------------------\par
   1 ;-----------------------------------------------------------\par
   1 ;------------------------------------------------------------\par
   1 ;----------------------------------------------------------------\par
   1 ;----------------------------------------------   \par
   1 ;--------- valid cat entry found, copy this into IY table\par
   1 ;------ make cursor go from rigth to lefthand column -----------\par
   1 ;---- valid cat entry now -------------------\par
   1 ;'tab'(IX must point to the correct file name, E to cursor pos.)\par
   1 ;'main' fetch CAT routine, called 1x        \b see also 47845!\par
   1 ;     the character set for 64-print.\par
   1 9999 CLEAR #: ERASE "d";1;"run": \par
   1 9998 CLEAR #: SAVE *"d";1;"run" LINE 10: \par
   1 48763 word= drive number/addr\par
   1 48640 \par
   1 48618 C9   \tab\tab RET \par
   1 48617 EB   \tab\tab EX DE,HL   \par
   1 48615 C62F   \tab ADD  A,47    \tab ;make ASCII number\par
   1 48614 19   \tab\tab ADD  HL,DE   \par
   1 48612 30FB   \tab JR NC,48609  \par
   1 48611 3C   \tab\tab INC  A     \tab\tab ;A=result\par
   1 48609 ED52   \tab SBC  HL,DE   \tab ;division by subtraction\par
   1 48608 AF   \tab\tab XOR  A     \par
   1 48606 C9   \tab\tab RET\par
   1 48603 FD7704 \tab LD (IY+4),A  \par
   1 48597 210100 \tab LD HL,1    \par
   1 48594 FD7703 \tab LD (IY+3),A  \par
   1 48591 CDDFBD \tab\cf3 CALL 48607\cf0    \par
   1 48588 210A00 \tab LD HL,10   \par
   1 48585 FD7702 \tab LD (IY+2),A  \par
   1 48582 CDDFBD \tab\cf3 CALL 48607\cf0    \par
   1 48579 216400 \tab LD HL,100  \par
   1 48576 FD7701 \tab LD (IY+1),A  \par
   1 48573 CDDFBD \tab\cf3 CALL 48607\cf0    \par
   1 48570 21E803 \tab LD HL,1000   \par
   1 48567 FD7700 \tab LD (IY+0),A  \par
   1 48564 CDDFBD \tab\cf3 CALL 48607\cf0    \par
   1 48560 C9   \tab\tab RET      \par
   1 48558 20D2   \tab JR NZ,48514  \par
   1 48557 B5   \tab\tab OR L     \par
   1 48556 7C   \tab\tab LD A,H   \par
   1 48554 ED42   \tab SBC  HL,BC   \tab ;adjust counter\par
   1 48553 AF   \tab\tab XOR  A     \par
   1 48551 DD09   \tab ADD  IX,BC   \tab ;point to next\par
   1 48548 012000 \tab LD BC,32   \tab\tab ;len of each cat entry\par
   1 48546 DDE1   \tab POP  IX    \par
   1 48544 10F0   \tab DJNZ 48530   \tab ;loop 8 times\par
   1 48543 1B   \tab\tab DEC  DE    \par
   1 48542 1B   \tab\tab DEC  DE    \tab\tab ;for each valid number DE=DE-2\par
   1 48540 DD23   \tab INC  IX    \par
   1 48538 DD23   \tab INC  IX    \par
   1 48536 2808   \tab JR Z,48546   \tab ;skip if zero\par
   1 48533 DDB601 \tab OR (IX+1)  \par
   1 48530 DD7E00 \tab LD A,(IX+0)  \tab ;check 8 words\par
   1 48528 0608   \tab LD B,8   \par
   1 48526 DD09   \tab ADD  IX,BC   \par
   1 48523 011000 \tab LD BC,16   \tab\tab ;skip first 16 (name etc. ??????)\par
   1 48521 DDE5   \tab PUSH IX    \par
   1 48519 281B   \tab JR Z,48548   \tab ;skip that\par
   1 48517 FEE5   \tab CP 229   \tab\tab ;empty/deleted cat entry ?????????\par
   1 48514 DD7E00 \tab LD A,(IX+0)  \tab ;point to start of data\par
   1 48509 18D7   \tab JR 48470   \tab\tab\tab ;and get more sectors\par
   1 48506 DD7704 \tab LD (IX+4),A  \tab\tab ;poke sect nr\par
   1 48505 C8   \tab\tab RET  Z     \tab\tab\tab ;done\par
   1 48503 FE10   \tab CP 16    \tab\tab\tab ;past last sector nr of CAT\par
   1 48502 3C   \tab\tab INC  A     \par
   1 48499 DD7E04 \tab LD A,(IX+4)  \tab\tab ;sector number\par
   1 48496 DD7406 \tab LD (IX+6),H  \par
   1 48493 DD7505 \tab LD (IX+5),L  \tab\tab ;and store in param table\par
   1 48492 19   \tab\tab ADD  HL,DE   \tab\tab ;prep next mem addr\par
   1 48489 DD6606 \tab LD H,(IX+6)  \par
   1 48486 DD6E05 \tab LD L,(IX+5)  \tab\tab ;mem addr\par
   1 48483 110001 \tab LD DE,256  \tab\tab\tab ;sector length\par
   1 48482 C0   \tab\tab RET  NZ    \tab\tab\tab ;ret if error\par
   1 48480 FE00   \tab CP 0     \par
   1 48477 DD7E0C \tab LD A,(IX+12) \par
   1 48473 DD2AED5C \tab LD IX,(23789)  \tab\tab ;restore\par
   1 48472 F3   \tab\tab DI     \par
   1 48470 CF3A   \tab RST  #08 DEFB 58 \tab\tab\b ;fetch cat sectors by CALPHY!\b0\par
   1 48467 DD770B \tab LD (IX+11),A \tab\tab ;command 1= read, 2= write\par
   1 48466 3C   \tab\tab INC  A     \par
   1 48464 E601   \tab AND  1     \tab\tab\tab ;turn into command\par
   1 48461 3A07BE \tab LD A,(48647) \tab\tab ;read/write key 0/1!\par
   1 48458 DD7702 \tab LD (IX+2),A  \tab\tab ;volume nr\par
   1 48455 DD7E0D \tab LD A,(IX+13) \tab\tab ;\par
   1 48454 C0   \tab\tab RET  NZ    \tab\tab\tab ;error!\par
   1 48452 FE00   \tab CP 0     \par
   1 48449 DD7E0C \tab LD A,(IX+12) \tab\tab ;fetch result from floppy contr.\par
   1 48445 DD2AED5C \tab LD IX,(23789)  \tab\tab ;retrieve IX\par
   1 48444 F3   \tab\tab DI     \par
   1 48442 CF3A   \tab RST  #08 DEFB 58 \tab\tab\b ;fetch cat by CALPHY!\b0\par
   1 48438 DD360B00 \tab LD (IX+11),0 \tab ;command 0 = position the head\par
   1 48435 DD740A \tab LD (IX+10),H \par
   1 48432 DD7509 \tab LD (IX+9),L  \tab ;table with drive characteristics\par
   1 48429 21FDBD \tab LD HL,48637  \par
   1 48425 DD360829 \tab LD (IX+8),41 \tab ;= 10546\par
   1 48421 DD360732 \tab LD (IX+7),50 \tab ;address of extended buffer\par
   1 48418 DD7406 \tab LD (IX+6),H  \par
   1 48415 DD7505 \tab LD (IX+5),L  \tab ;destination address\par
   1 48412 2A05BE \tab LD HL,(48645)  \tab ;mem addr!\par
   1 48408 DD360400 \tab LD (IX+4),0  \tab ;sector number, logical 1st =0\par
   1 48405 DD7703 \tab LD (IX+3),A  \tab ;track number\par
   1 48402 3A04BE \tab LD A,(48644) \par
   1 48398 DD360200 \tab LD (IX+2),0  \tab ;volume number, always 0\par
   1 48395 DD7701 \tab LD (IX+1),A  \tab ;drive nr\par
   1 48392 3A03BE \tab LD A,(48643) \par
   1 48388 DD360001 \tab LD (IX+0),1  \tab ;block type = sector size ??\par
   1 48384 DD22ED5C \tab LD (23789),IX  \tab ;store the pointer to the paramtable\par
   1 48380 FD213A5C \tab LD IY,23610  \tab ;restore default\par
   1 48375 C9   \tab\tab RET      \par
   1 48374 5F   \tab\tab LD E,A   \tab\tab ;resulting key number\par
   1 48372 10FC   \tab DJNZ 48370   \par
   1 48370 D608   \tab SUB  8     \par
   1 48369 92   \tab\tab SUB  D     \par
   1 48367 3E2F   \tab LD A,47    \par
   1 48366 47   \tab\tab LD B,A   \par
   1 48364 C606   \tab ADD  A,6   \par
   1 48362 ED44   \tab NEG      \par
   1 48361 78   \tab\tab LD A,B   \tab\tab ;which bit\par
   1 48360 C9   \tab\tab RET      \par
   1 48358 1EFF   \tab LD E,255   \tab\tab ;signal: no key found\par
   1 48356 20E3   \tab JR NZ,48329  \tab ;loop for other key row\par
   1 48354 FE08   \tab CP 8     \par
   1 48353 7A   \tab\tab LD A,D   \par
   1 48352 14   \tab\tab INC  D     \par
   1 48350 10FB   \tab DJNZ 48347   \par
   1 48348 300B   \tab JR NC,48361  \tab ;find a bit that is not set\par
   1 48347 1F   \tab\tab RRA      \par
   1 48345 0605   \tab LD B,5   \tab\tab ;5 keys on one row\par
   1 48343 ED78   \tab IN A,(C)   \par
   1 48341 0EFE   \tab LD C,254   \tab\tab ;get key\par
   1 48340 47   \tab\tab LD B,A   \par
   1 48338 C6FF   \tab ADD  A,255   \par
   1 48336 ED44   \tab NEG      \par
   1 48334 10FD   \tab DJNZ 48333   \tab ;turn A into keyrow value\par
   1 48333 17   \tab\tab RLA      \par
   1 48332 04   \tab\tab INC  B     \par
   1 48331 42   \tab\tab LD B,D   \tab\tab ;B=0 on entry\par
   1 48330 37   \tab\tab SCF      \par
   1 48329 AF   \tab\tab XOR  A     \tab\tab ;loop here\par
   1 48326 C9   \tab\tab RET      \par
   1 48325 C1   \tab\tab POP  BC    \par
   1 48324 D1   \tab\tab POP  DE    \par
   1 48322 20F2   \tab JR NZ,48310  \tab ;loop\par
   1 48321 B3   \tab\tab OR E     \par
   1 48320 7A   \tab\tab LD A,D   \par
   1 48319 1B   \tab\tab DEC  DE    \par
   1 48318 47   \tab\tab LD B,A   \tab\tab ;restore B\par
   1 48316 10FE   \tab DJNZ 48316   \tab ;delay\par
   1 48315 78   \tab\tab LD A,B   \tab\tab ;save B briefly\par
   1 48314 08   \tab\tab EX AF,AF'  \par
   1 48312 D3FE   \tab OUT  (254),A   \tab ;border\par
   1 48311 A9   \tab\tab XOR  C     \par
   1 48310 08   \tab\tab EX AF,AF'  \tab\tab ;loop here\par
   1 48309 4F   \tab\tab LD C,A   \par
   1 48308 07   \tab\tab RLCA     \tab\tab ;C=C*8\par
   1 48307 07   \tab\tab RLCA     \par
   1 48306 07   \tab\tab RLCA     \par
   1 48305 79   \tab\tab LD A,C   \par
   1 48304 D5   \tab\tab PUSH DE    \par
   1 48302 C9   \tab\tab RET \par
   1 48300 38DB   \tab JR C,48265   \par
   1 48299 B9   \tab\tab CP C     \par
   1 48298 7B   \tab\tab LD A,E   \par
   1 48297 1C   \tab\tab INC  E     \tab\tab ;same line, next col\par
   1 48296 D1   \tab\tab POP  DE    \par
   1 48294 38E2   \tab JR C,48266   \tab ;loop\par
   1 48293 B8   \tab\tab CP B     \par
   1 48292 7A   \tab\tab LD A,D   \par
   1 48291 14   \tab\tab INC  D     \tab\tab ;next line (?)\par
   1 48290 C1   \tab\tab POP  BC    \par
   1 48288 10FA   \tab DJNZ 48284   \tab ;8 patterns loop\par
   1 48287 24   \tab\tab INC  H     \tab\tab ;one pix row down\par
   1 48286 77   \tab\tab LD (HL),A  \par
   1 48285 A1   \tab\tab AND  C     \par
   1 48284 7E   \tab\tab LD A,(HL)  \par
   1 48282 0608   \tab LD B,8   \tab\tab ;8 patterns\par
   1 48280 0EF0   \tab LD C,240   \tab\tab ;"----    "\par
   1 48278 3002   \tab JR NC,48282  \tab ;odd or even column\par
   1 48276 0E0F   \tab LD C,15    \tab\tab ;"    ----"\par
   1 48275 C5   \tab\tab PUSH BC    \par
   1 48274 5F   \tab\tab LD E,A   \par
   1 48273 F1   \tab\tab POP  AF    \par
   1 48270 CD76BC \tab\cf3 CALL 48246\cf0   \tab ;calc screen addr from DE\par
   1 48269 F5   \tab\tab PUSH AF    \tab\tab ;save carry\par
   1 48267 CB3B   \tab SRL  E     \tab\tab ;test odd or even column(64)\par
   1 48266 7B   \tab\tab LD A,E   \tab\tab ;loop here\par
   1 48264 C9   \tab\tab RET\par
   1 48263 57   \tab\tab LD D,A   \par
   1 48262 19   \tab\tab ADD  HL,DE   \par
   1 48260 1600   \tab LD D,0   \par
   1 48259 7A   \tab\tab LD A,D   \par
   1 48258 67   \tab\tab LD H,A   \par
   1 48256 F6C0   \tab OR 192   \par
   1 48254 E618   \tab AND  24    \par
   1 48253 7A   \tab\tab LD A,D   \par
   1 48252 6F   \tab\tab LD L,A   \par
   1 48250 E6E0   \tab AND  224   \par
   1 48249 0F   \tab\tab RRCA     \par
   1 48248 0F   \tab\tab RRCA     \par
   1 48247 0F   \tab\tab RRCA     \par
   1 48245 C9   \tab\tab RET      \par
   1 48243 20A6   \tab JR NZ,48155  \tab ;loop if not\par
   1 48241 FE0D   \tab CP 13    \tab\tab ;end of text?\par
   1 48238 FD7E00 \tab LD A,(IY+0)  \tab ;get char\par
   1 48236 FD23   \tab INC  IY    \tab\tab ;point to next char\par
   1 48235 D8   \tab\tab RET  C     \par
   1 48234 BB   \tab\tab CP E     \par
   1 48232 3E3F   \tab LD A,63    \tab\tab ;last column?\par
   1 48231 1C   \tab\tab INC  E     \tab\tab ;next column(64)\par
   1 48229 10DD   \tab DJNZ 48196   \tab ;8 pattern loop\par
   1 48228 24   \tab\tab INC  H     \tab\tab ;one pix row down\par
   1 48227 77   \tab\tab LD (HL),A  \par
   1 48226 B1   \tab\tab OR C     \tab\tab ;add to screen\par
   1 48225 7E   \tab\tab LD A,(HL)  \par
   1 48223 CB21   \tab SLA  C     \par
   1 48221 CB21   \tab SLA  C     \par
   1 48219 CB21   \tab SLA  C     \par
   1 48217 CB21   \tab SLA  C     \par
   1 48215 3808   \tab JR C,48225   \par
   1 48213 CB3F   \tab SRL  A     \par
   1 48212 7B   \tab\tab LD A,E   \par
   1 48211 4F   \tab\tab LD C,A   \par
   1 48210 D9   \tab\tab EXX      \par
   1 48209 17   \tab\tab RLA      \par
   1 48207 CB3B   \tab SRL  E     \par
   1 48206 17   \tab\tab RLA      \par
   1 48204 CB3A   \tab SRL  D     \par
   1 48203 17   \tab\tab RLA      \par
   1 48201 CB39   \tab SRL  C     \par
   1 48200 17   \tab\tab RLA      \par
   1 48198 CB38   \tab SRL  B     \par
   1 48197 D9   \tab\tab EXX      \tab\tab ;patterns in BC, DE\par
   1 48196 AF   \tab\tab XOR  A     \tab\tab ;char loop\par
   1 48194 0608   \tab LD B,8   \tab\tab ;8 pixel rows\par
   1 48193 D1   \tab\tab POP  DE    \par
   1 48190 CD76BC \tab\cf3 CALL 48246\cf0    \tab ;calc screen addr. from DE\par
   1 48188 CB3B   \tab SRL  E     \tab\tab ;E holds column(64)\par
   1 48187 D5   \tab\tab PUSH DE    \par
   1 48186 D9   \tab\tab EXX      \par
   1 48183 DD5E03 \tab LD E,(IX+3)  \par
   1 48180 DD5602 \tab LD D,(IX+2)  \par
   1 48177 DD4E01 \tab LD C,(IX+1)  \par
   1 48174 DD4600 \tab LD B,(IX+0)  \tab ;fetch 4 patterns\par
   1 48173 D9   \tab\tab EXX      \par
   1 48172 EB   \tab\tab EX DE,HL   \par
   1 48170 DD19   \tab ADD  IX,DE   \tab ;point to char patterns \par
   1 48169 EB   \tab\tab EX DE,HL   \par
   1 48168 29   \tab\tab ADD  HL,HL   \tab ;each entry 4 bytes\par
   1 48167 29   \tab\tab ADD  HL,HL   \par
   1 48166 6F   \tab\tab LD L,A   \tab\tab ;HL= charnr\par
   1 48164 2600   \tab LD H,0   \par
   1 48162 D620   \tab SUB  32    \tab\tab ;reduce ASCII\par
   1 48159 FD7E00 \tab LD A,(IY+0)  \tab ;first char from print$\par
   1 48154 C9   \tab\tab RET      \par
   1 48153 FB   \tab\tab EI     \par
   1 48149 FD213A5C \tab LD IY,23610  \tab ;restore default\par
   1 48146 CD1BBC \tab\cf3 CALL 48155\cf0    ;print small char on screen\par
   1 48143 112617 \tab LD DE,5926   \par
   1 48140 CD89BC \tab\cf3 CALL 48265\cf0    ;print 'blocks' at DE \par
   1 48137 013B18 \tab LD BC,6203   \par
   1 48134 112517 \tab LD DE,5925   \par
   1 48132 FDE1   \tab POP  IY    \tab\tab ;start of print$\par
   1 48129 CDB1BD \tab\cf3 CALL 48561\cf0    \tab ;prepare a decimal number at IY\par
   1 48126 CD7FBD \tab\cf3 CALL 48511\cf0    ;calculate free room on disk, IX= cat table\par
   1 48123 113C01 \tab LD DE,316  \tab\tab ;max room on disk\par
   1 48119 DD2100EB \tab LD IX,60160  ;cat table\par
   1 48117 FD23   \tab INC  IY    \par
   1 48115 FD23   \tab INC  IY    \par
   1 48113 FD23   \tab INC  IY    \par
   1 48111 FDE5   \tab PUSH IY    \par
   1 48107 FD36140D \tab LD (IY+20),13 \tab ;enter \par
   1 48103 FD361365 \tab LD (IY+19),101\tab ;e\par
   1 48099 FD361265 \tab LD (IY+18),101\tab ;e\par
   1 48095 FD361172 \tab LD (IY+17),114\tab ;r\par
   1 48091 FD361066 \tab LD (IY+16),102\tab ;f\par
   1 48087 FD360F20 \tab LD (IY+15),32 \tab ;\par
   1 48083 FD360E73 \tab LD (IY+14),115\tab ;s\par
   1 48079 FD360D65 \tab LD (IY+13),101\tab ;e\par
   1 48075 FD360C74 \tab LD (IY+12),116\tab ;t\par
   1 48071 FD360B79 \tab LD (IY+11),121\tab ;y\par
   1 48067 FD360A62 \tab LD (IY+10),98\tab ;b\par
   1 48063 FD36094B \tab LD (IY+9),75 \tab ;K\par
   1 48059 FD360820 \tab LD (IY+8),32 \tab ;\par
   1 48055 FD360220 \tab LD (IY+2),32 \tab ;\par
   1 48051 FD36013A \tab LD (IY+1),58 \tab ;:\par
   1 48047 FD360042 \tab LD (IY+0),66 \tab ;B \par
   1 48043 FD2108BE \tab LD IY,48648  \par
   1 48036 C312BB \tab JP 47890   \par
   1 48033 112601 \tab LD DE,294  \par
   1 48029 FD2100FE \tab LD IY,65024  \tab ;2nd cat table???\par
   1 48028 E1   \tab\tab POP  HL    \par
   1 48025 CD89BC \tab\cf3 CALL 48265\cf0    \tab ;print 'blocks' at DE \par
   1 48022 013F16 \tab LD BC,5695   \par
   1 48019 112601 \tab LD DE,294  \par
   1 48018 E5   \tab\tab PUSH HL    \par
   1 48016 20F0   \tab JR NZ,48002  \tab ;loop for key\par
   1 48014 FE18   \tab CP 24    \tab\tab ;\par
   1 48012 2819   \tab JR Z,48039   \par
   1 48010 FE20   \tab CP 32    \tab\tab ;key = ?\par
   1 48008 28F8   \tab JR Z,48002   \par
   1 48006 FEFF   \tab CP 255   \tab\tab ;= no key\par
   1 48005 7B   \tab\tab LD A,E   \tab\tab ;key pressed\par
   1 48002 CDC7BC \tab\cf3 CALL 48327\cf0    \tab ;fetch key\par
   1 47999 CDAFBC \tab\cf3 CALL 48303\cf0    \tab ;border flash\par
   1 47996 11E803 \tab LD DE,1000   \par
   1 47994 0632   \tab LD B,50    \par
   1 47992 0E01   \tab LD C,1   \tab\tab ;prep flashes\par
   1 47990 389A   \tab JR C,47890   \par
   1 47988 FE3E   \tab CP 62    \par
   1 47987 5F   \tab\tab LD E,A   \par
   1 47985 C60C   \tab ADD  A,12    \par
   1 47984 7B   \tab\tab LD A,E   \par
   1 47982 1601   \tab LD D,1   \par
   1 47980 38A4   \tab JR C,47890   \par
   1 47978 FE16   \tab CP 22    \par
   1 47977 7A   \tab\tab LD A,D   \par
   1 47976 14   \tab\tab INC  D     \par
   1 47974 283F     \tab JR Z,48039   \tab ;prepare a bottom line print$ for drv 2\par
   1 47973 B5       \tab OR   L           \par
   1 47972 7C       \tab LD   A,H         \par
   1 47970 ED42     \tab SBC  HL,BC       \par
   1 47969 AF       \tab XOR  A           \par
   1 47967 DD09     \tab ADD  IX,BC       \par
   1 47964 012000   \tab LD   BC,32       \par
   1 47962 DDE1     \tab POP  IX          \par
   1 47960 FD09     \tab ADD  IY,BC       \par
   1 47957 010C00   \tab LD   BC,12       \par
   1 47955 FDE1     \tab POP  IY          \par
   1 47954 E1       \tab POP  HL          \par
   1 47953 D1       \tab POP  DE          \par
   1 47950 CD1BBC   \tab\cf3 CALL 48155\cf0        \tab ;print small char on screen\par
   1 47949 D5       \tab PUSH DE          \par
   1 47948 E5       \tab PUSH HL          \par
   1 47946 FDE5     \tab PUSH IY          \par
   1 47944 FDE1     \tab POP  IY          \par
   1 47940 FD36000D \tab LD   (IY+0),13 \tab ;end each name with CHR$13\par
   1 47938 10F2     \tab DJNZ 47926       \par
   1 47936 FD23   \tab INC  IY        \par
   1 47934 DD23   \tab INC  IX    \par
   1 47931 FD7700 \tab LD (IY+0),A  \par
   1 47929 CBBF   \tab RES  7,A   \par
   1 47926 DD7E01 \tab LD A,(IX+1)  \par
   1 47924 060B   \tab LD B,11    \par
   1 47922 FDE5   \tab PUSH IY    \tab\tab ;could have been sorted......\par
   1 47920 DDE5   \tab PUSH IX    \tab\tab ;move cat names to table in IY\par
   1 47918 1877   \tab JR 48039   \tab\tab ;prepare a bottom line print$ for drv 2\par
   1 47916 20E4   \tab JR NZ,47890  \tab ;loop\par
   1 47915 B5   \tab\tab OR L     \par
   1 47914 7C   \tab\tab LD A,H   \par
   1 47912 ED42   \tab SBC  HL,BC   \par
   1 47910 DD09   \tab ADD  IX,BC   \tab ;point to next cat entry\par
   1 47907 012000 \tab LD BC,32   \par
   1 47905 280D   \tab JR Z,47920   \tab ;jp if entry is valid\par
   1 47901 DDCB0A7E \tab BIT  7,(IX+10) \tab ;deleted?\par
   1 47899 2006   \tab JR NZ,47907  \par
   1 47896 DDBE0C \tab CP (IX+12)   \tab ;???????\par
   1 47894 200B   \tab JR NZ,47907  \tab ;skip if not\par
   1 47891 DDBE00 \tab CP (IX+0)  \tab\tab ;'primary' cat entry?\par
   1 47890 AF   \tab\tab XOR  A     \par
   1 47887 210010 \tab LD HL,4096   \tab ;counter 128 x 32, cat length\par
   1 47884 112601 \tab LD DE,294  \par
   1 47880 FD2100FE \tab LD IY,65024  \par
   1 47876 DD2100EB \tab LD IX,60160  \par
   1 47873 CD89BC \tab\cf3 CALL 48265\cf0    \tab ;print 'blocks' at DE \par
   1 47870 013F16 \tab LD BC,5695   \par
   1 47867 112601 \tab LD DE,294  \par
   1 47864 CDF8BC \tab\cf3 CALL 48376\cf0    \tab ;fetch cat\par
   1 47861 2205BE \tab LD (48645),HL  \par
   1 47858 2100EB \tab LD HL,60160  \tab ;memory addr, second table\par
   1 47855 3207BE \tab LD (48647),A \par
   1 47852 3204BE \tab LD (48644),A \par
   1 47851 AF   \tab\tab XOR  A     \par
   1 47848 3203BE \tab LD (48643),A \tab ;\b 'page 1', different from 47537!\b0\par
   1 47846 3E01   \tab LD A,1   \par
   1 47844 C9   \tab\tab RET      \par
   1 47843 FB   \tab\tab EI     \par
   1 47839 FD213A5C \tab LD IY,23610  \tab ;restore default value\par
   1 47836 CD1BBC \tab\cf3 CALL 48155\cf0    \tab ;print small chars on screen\par
   1 47833 110117 \tab LD DE,5889   \par
   1 47830 CD89BC \tab\cf3 CALL 48265\cf0    \tab ;print 'blocks' at DE \par
   1 47827 011618 \tab LD BC,6166   \par
   1 47824 110017 \tab LD DE,5888   \par
   1 47822 FDE1   \tab POP  IY    \tab\tab ;address of print$\par
   1 47819 CDB1BD \tab\cf3 CALL 48561\cf0    \tab ;prepare a decimal number at IY\par
   1 47816 CD7FBD \tab\cf3 CALL 48511\cf0    ;calculate free room on disk, IX= cat table\par
   1 47813 117C02 \tab LD DE,636  \tab\tab ;max free room on disk A\par
   1 47809 DD2100DB \tab LD IX,56064  \tab ;cat table\par
   1 47807 FD23   \tab INC  IY    \par
   1 47805 FD23   \tab INC  IY    \par
   1 47803 FD23   \tab INC  IY    \par
   1 47801 FDE5   \tab PUSH IY    \par
   1 47797 FD36140D \tab LD (IY+20),13  \tab ;enter\par
   1 47793 FD361365 \tab LD (IY+19),101 \tab ;e\par
   1 47789 FD361265 \tab LD (IY+18),101 \tab ;e\par
   1 47785 FD361172 \tab LD (IY+17),114 \tab ;r\par
   1 47781 FD361066 \tab LD (IY+16),102 \tab ;f\par
   1 47777 FD360F20 \tab LD (IY+15),32  \tab ;\par
   1 47773 FD360E73 \tab LD (IY+14),115 \tab ;s\par
   1 47769 FD360D65 \tab LD (IY+13),101 \tab ;e\par
   1 47765 FD360C74 \tab LD (IY+12),116 \tab ;t\par
   1 47761 FD360B79 \tab LD (IY+11),121 \tab ;y\par
   1 47757 FD360A62 \tab LD (IY+10),98  \tab ;b\par
   1 47753 FD36094B \tab LD (IY+9),75 \tab ;K \par
   1 47749 FD360820 \tab LD (IY+8),32 \tab ;\par
   1 47745 FD360220 \tab LD (IY+2),32 \tab ;\par
   1 47741 FD36013A \tab LD (IY+1),58 \tab ;:\par
   1 47737 FD360041 \tab LD (IY+0),65 \tab ;A\par
   1 47733 FD2108BE \tab LD IY,48648  \par
   1 47726 C3DCB9 \tab JP 47580   \tab\tab ;loop\par
   1 47723 110201 \tab LD DE,258  \par
   1 47719 FD2100FB \tab LD IY,64256  \par
   1 47718 E1   \tab\tab POP  HL    \par
   1 47715 CD89BC \tab\cf3 CALL 48265\cf0    \tab ;print 'blocks' at DE \par
   1 47712 012516 \tab LD BC,5669   \par
   1 47709 110101 \tab LD DE,257  \par
   1 47708 E5   \tab\tab PUSH HL    \par
   1 47706 20F0   \tab JR NZ,47692  \tab ;loop if no valid key\par
   1 47704 FE18   \tab CP 24    \par
   1 47702 2819   \tab JR Z,47729   \tab ;build a bottom line print$ (d=1)\par
   1 47700 FE20   \tab CP 32    \par
   1 47698 28F8   \tab JR Z,47692   \tab ;loop if no key!\par
   1 47696 FEFF   \tab CP 255   \par
   1 47695 7B   \tab\tab LD A,E   \par
   1 47692 CDC7BC \tab\cf3 CALL 48327\cf0    \tab ;fetch key\par
   1 47689 CDAFBC \tab\cf3 CALL 48303\cf0    \tab ;border flash\par
   1 47686 11E803 \tab LD DE,1000   \par
   1 47684 0632   \tab LD B,50    \par
   1 47682 0E02   \tab LD C,2   \tab\tab ;else what??????????????\par
   1 47680 389A   \tab JR C,47580   \tab ; then loop\par
   1 47678 FE26   \tab CP 38    \tab\tab ;if not 3rd column\par
   1 47677 5F   \tab\tab LD E,A   \par
   1 47675 C60C   \tab ADD  A,12    \tab ;adjust to 2nd column\par
   1 47674 7B   \tab\tab LD A,E   \par
   1 47672 1601   \tab LD D,1   \tab\tab ;reset to line 1\par
   1 47670 38A4   \tab JR C,47580   \tab ;loop if not\par
   1 47668 FE16   \tab CP 22    \tab\tab ;bottom line\par
   1 47667 7A   \tab\tab LD A,D   \par
   1 47666 14   \tab\tab INC  D     \tab\tab ;next screen line\par
   1 47664 283F   \tab JR Z,47729   \tab ;build a bottom line print$ (d=1)\par
   1 47663 B5   \tab\tab OR L     \par
   1 47662 7C   \tab\tab LD A,H   \par
   1 47660 ED42   \tab SBC  HL,BC   \tab ;HL started as 128 x 32\par
   1 47659 AF   \tab\tab XOR  A     \par
   1 47657 DD09   \tab ADD  IX,BC   \par
   1 47654 012000 \tab LD BC,32   \tab\tab ;each entry in IX table\par
   1 47652 DDE1   \tab POP  IX    \par
   1 47650 FD09   \tab ADD  IY,BC   \par
   1 47647 010C00 \tab LD BC,12   \tab\tab ;each entry in IY table\par
   1 47645 FDE1   \tab POP  IY    \par
   1 47644 E1   \tab\tab POP  HL    \par
   1 47643 D1   \tab\tab POP  DE    \par
   1 47640 CD1BBC \tab\cf3 CALL 48155\cf0    \tab ;print small char on screen\par
   1 47639 D5   \tab\tab PUSH DE    \par
   1 47638 E5   \tab\tab PUSH HL    \par
   1 47636 FDE5   \tab PUSH IY    \par
   1 47634 FDE1   \tab POP  IY    \par
   1 47630 FD36000D \tab LD (IY+0),13 \tab ;finish IY table with CHR$13\par
   1 47628 10F2   \tab DJNZ 47616   \par
   1 47626 FD23   \tab INC  IY    \par
   1 47624 DD23   \tab INC  IX    \par
   1 47621 FD7700 \tab LD (IY+0),A  \tab ;are moved from IX to IY\par
   1 47619 CBBF   \tab RES  7,A   \par
   1 47616 DD7E01 \tab LD A,(IX+1)  \par
   1 47614 060B   \tab LD B,11    \tab\tab ;11 positions\par
   1 47612 FDE5   \tab PUSH IY    \par
   1 47610 DDE5   \tab PUSH IX    \par
   1 47608 1877   \tab JR 47729   \tab\tab ;prepare a bottom line print$  (d=1)\par
   1 47606 20E4   \tab JR NZ,47580  \tab ;loop\par
   1 47605 B5   \tab\tab OR L     \par
   1 47604 7C   \tab\tab LD A,H   \par
   1 47602 ED42   \tab SBC  HL,BC   \tab ;adjust counter\par
   1 47600 DD09   \tab ADD  IX,BC   \tab ;adjust pointer to next entry\par
   1 47597 012000 \tab LD BC,32   \tab\tab ;length of cat entry\par
   1 47595 280D   \tab JR Z,47610   \tab ;jp if not\par
   1 47591 DDCB0A7E \tab BIT  7,(IX+10) \tab ;deleted entry ?\par
   1 47589 2006   \tab JR NZ,47597  \tab ;skip if not zero\par
   1 47586 DDBE0C \tab CP (IX+12)   \tab ;?????????????\par
   1 47584 200B   \tab JR NZ,47597 \tab ;skip if not primary (0)\par
   1 47581 DDBE00 \tab CP (IX+0)  \tab\tab ;type of cat entry\par
   1 47580 AF   \tab\tab XOR  A     \par
   1 47577 210010 \tab LD HL,4096   \tab ;count 128 cat entries of 32 \par
   1 47574 110201 \tab LD DE,258  \par
   1 47570 FD2100FB \tab LD IY,64256  \par
   1 47566 DD2100DB \tab LD IX,56064  \tab ;cat file in mem ???\par
   1 47563 CD89BC \tab\cf3 CALL 48265\cf0    \tab ;print 'blocks' at DE \par
   1 47560 012516 \tab LD BC,5669   \par
   1 47557 110101 \tab LD DE,257  \par
   1 47554 CDF8BC \tab\cf3 CALL 48376 \cf0   \tab ;fetch cat\par
   1 47551 2205BE \tab LD (48645),HL     \cf1 ;taskfile+5/6\cf0\par
   1 47548 2100DB \tab LD HL,56064  \tab ;destination addr\par
   1 47545 3207BE \tab LD (48647),A \tab ;+4 sector number\par
   1 47542 3204BE \tab LD (48644),A \tab ;+1 drive = 0\par
   1 47539 3203BE \tab LD (48643),A \tab ;block type =0\par
   1 47538 AF   \tab\tab XOR  A     \tab\tab ;prepare info block\par
   1 47535 18DB   \tab JR 47500   \tab\tab ;loop\par
   1 47534 5F   \tab\tab LD E,A   \par
   1 47532 D606   \tab SUB  6     \tab\tab ;point to lefthand column\par
   1 47531 7B   \tab\tab LD A,E   \tab\tab ;E=E-6\par
   1 47529 DDE1   \tab POP  IX    \tab\tab ;IX is updated\par
   1 47528 E5   \tab\tab PUSH HL    \tab\tab ;\par
   1 47526 ED42   \tab SBC  HL,BC   \par
   1 47525 AF   \tab\tab XOR  A     \par
   1 47522 01FC00 \tab LD BC,252  \par
   1 47521 E1   \tab\tab POP  HL    \tab\tab ;now IX again\par
   1 47519 DDE5   \tab PUSH IX    \tab\tab ;else do real subtraction\par
   1 47516 DAAFB8 \tab JP C,47279   \tab ;then \b exit\b0  here to menu loop\par
   1 47514 ED42   \tab SBC  HL,BC   \tab ;no room left = top of left column\par
   1 47513 AF   \tab\tab XOR  A     \par
   1 47512 C1   \tab\tab POP  BC    \tab\tab ;now DE'\par
   1 47511 D9   \tab\tab EXX      \par
   1 47510 D5   \tab\tab PUSH DE    \tab\tab\par
   1 47509 D9   \tab\tab EXX      \par
   1 47507 ED42   \tab SBC  HL,BC   \tab ;     because we go backward!\par
   1 47506 AF   \tab\tab XOR  A     \tab\tab ;     no test for 13 here\par
   1 47503 01FC00 \tab LD BC,252  \tab\tab ;21 x 12 (lines, namelength)\par
   1 47502 E1   \tab\tab POP  HL    \tab\tab ;HL=IX\par
   1 47500 DDE5   \tab PUSH IX    \par
   1 47497 C3AFB8 \tab JP 47279   \tab\tab ;back to menu loop\par
   1 47496 5F   \tab\tab LD E,A   \par
   1 47494 C606   \tab ADD  A,6   \tab\tab ;point to righthand column\par
   1 47493 7B   \tab\tab LD A,E   \par
   1 47491 DDE1   \tab POP  IX    \tab\tab ;adjust IX, now IX+(12*21)!\par
   1 47490 E5   \tab\tab PUSH HL    \par
   1 47488 10F3   \tab DJNZ 47477   \par
   1 47486 280C   \tab JR Z,47500   \tab ;we are in righthand column!\par
   1 47484 FE0D   \tab CP 13    \tab\tab ;end of data, so \par
   1 47483 7E   \tab\tab LD A,(HL)  \par
   1 47482 C1   \tab\tab POP  BC    \par
   1 47481 09   \tab\tab ADD  HL,BC   \tab ;should cursor go to right col.\par
   1 47478 010C00 \tab LD BC,12   \tab\tab ;inc HL for each file name\par
   1 47477 C5   \tab\tab PUSH BC    \par
   1 47476 E1   \tab\tab POP  HL  \tab\tab ;HL=IX  \par
   1 47474 DDE5   \tab PUSH IX    \par
   1 47469 C3AFB8 \tab JP 47279   \tab\tab ;back to menu loop\par
   1 47467 1601   \tab LD D,1   \tab\tab ;top line\par
   1 47466 5F   \tab\tab LD E,A   \tab\tab ;right hand column of names\par
   1 47464 C606   \tab ADD  A,6   \par
   1 47463 7B   \tab\tab LD A,E   \par
   1 47460 C2AFB8 \tab JP NZ,47279  \tab ;back to menu loop\par
   1 47458 FE16   \tab CP 22    \tab\tab ;bottom line\par
   1 47457 7A   \tab\tab LD A,D   \par
   1 47456 14   \tab\tab INC  D     \tab\tab ;next line\par
   1 47454 DD09   \tab ADD  IX,BC   \tab ;point to next name in table\par
   1 47451 010C00 \tab LD BC,12   \par
   1 47448 CAAFB8 \tab JP Z,47279   \tab ;back to menu loop\par
   1 47446 FE0D   \tab CP 13    \par
   1 47440 C3AFB8 \tab JP 47279   \tab\tab ;back to menu loop\par
   1 47438 DDE1   \tab POP  IX    \par
   1 47437 E5   \tab\tab PUSH HL    \par
   1 47435 ED42   \tab SBC  HL,BC   \tab ;previous name in cat table IX\par
   1 47434 AF   \tab\tab XOR  A     \par
   1 47431 010C00 \tab LD BC,12   \tab\tab ;name len\par
   1 47430 E1   \tab\tab POP  HL    \par
   1 47428 DDE5   \tab PUSH IX    \par
   1 47426 1615   \tab LD D,21    \tab\tab ;bottom line\par
   1 47425 5F   \tab\tab LD E,A   \par
   1 47423 D606   \tab SUB  6     \par
   1 47422 7B   \tab\tab LD A,E   \tab\tab ;find left column of names\par
   1 47419 CAAFB8 \tab JP Z,47279   \tab ;back to menu loop\par
   1 47418 B5   \tab\tab OR L     \par
   1 47417 7C   \tab\tab LD A,H   \par
   1 47414 DAAFB8 \tab JP C,47279   \tab ;back to menu loop\par
   1 47412 ED42   \tab SBC  HL,BC   \par
   1 47411 AF   \tab\tab XOR  A     \par
   1 47410 C1   \tab\tab POP  BC    \par
   1 47409 D9   \tab\tab EXX      \par
   1 47408 D5   \tab\tab PUSH DE    \par
   1 47404 C3AFB8 \tab JP 47279\tab\tab ;back to menu loop\par
   1 47402 DDE1   \tab POP  IX    \par
   1 47401 E5   \tab\tab PUSH HL    \par
   1 47399 ED42   \tab SBC  HL,BC   \tab ;previous cat name at IX\par
   1 47398 AF   \tab\tab XOR  A     \par
   1 47395 010C00 \tab LD BC,12   \par
   1 47394 15   \tab\tab DEC  D     \tab\tab ;one line up\par
   1 47392 280D   \tab JR Z,47407   \tab ;if already on top line\par
   1 47390 FE01   \tab CP 1     \par
   1 47389 7A   \tab\tab LD A,D   \par
   1 47388 E1   \tab\tab POP  HL    \par
   1 47385 C9   \tab\tab RET      \par
   1 47384 D9   \tab\tab EXX      \par
   1 47380 ED537EBE \tab LD (48766),DE  \par
   1 47379 D9   \tab\tab EXX      \par
   1 47375 ED537CBE \tab LD (48764),DE  \par
   1 47371 DD227ABE \tab LD (48762),IX  \tab\tab ;drive addr\par
   1 47367 C9   \tab\tab RET      \par
   1 47365 20EF   \tab JR NZ,47350  \tab ;8x pixel row\par
   1 47363 FE00   \tab CP 0     \par
   1 47362 79   \tab\tab LD A,C   \par
   1 47361 0D   \tab\tab DEC  C     \par
   1 47360 24   \tab\tab INC  H     \tab\tab ;one pixel row down\par
   1 47359 E1   \tab\tab POP  HL    \par
   1 47357 10FA   \tab DJNZ 47353   \tab ;6x1 byte = 12 small chars\par
   1 47356 23   \tab\tab INC  HL    \tab\tab ;next screen addr\par
   1 47355 77   \tab\tab LD (HL),A  \par
   1 47354 2F   \tab\tab CPL      \tab\tab ;invert\par
   1 47353 7E   \tab\tab LD A,(HL)  \tab\tab ;screen\par
   1 47352 E5   \tab\tab PUSH HL    \par
   1 47350 0606   \tab LD B,6   \tab\tab ;12 small chars\par
   1 47348 0E08   \tab LD C,8   \tab\tab ;8 pixel rows\par
   1 47343 18BE   \tab JR 47279   \tab\tab ;loop\par
   1 47340 CA53B9 \tab JP Z,47443   \tab ;cursor down\par
   1 47338 FE19   \tab CP 25    \par
   1 47335 CA70B9 \tab JP Z,47472   \tab ;'tab'\par
   1 47333 FE22   \tab CP 34    \par
   1 47330 CA1AB9 \tab JP Z,47386   \tab ;cursor up\par
   1 47328 FE1A   \tab CP 26    \par
   1 47326 28C0   \tab JR Z,47264   \tab ;fetch more cat \par
   1 47324 FE10   \tab CP 16    \par
   1 47322 28B3   \tab JR Z,47247   \tab ;fetch cat\par
   1 47320 FE08   \tab CP 8     \tab\tab ;now test up/down/tab/nxt-scrn\par
   1 47319 C8   \tab\tab RET  Z     \par
   1 47316 CC08B9 \tab\cf3 CALL Z,47368\cf0    \tab ;prep result table for BASIC\par
   1 47314 FE15   \tab CP 21    \tab\tab ;\b erase\b0  file\par
   1 47313 C8   \tab\tab RET  Z     \par
   1 47310 CC08B9 \tab\cf3 CALL Z,47368\cf0    \tab ;prep result table for BASIC\par
   1 47308 FE27   \tab CP 39    \tab\tab ;\b load\b0  screen$\par
   1 47307 C8   \tab\tab RET  Z     \par
   1 47304 CC08B9 \tab\cf3 CALL Z,47368\cf0    \tab ;prep result table for BASIC\par
   1 47302 FE21   \tab CP 33    \tab\tab ;\b load\b0  basic\par
   1 47301 F1   \tab\tab POP  AF    \par
   1 47298 CDF1B8 \tab\cf3 CALL 47345\cf0    \tab ;invert cursor\par
   1 47297 F5   \tab\tab PUSH AF    \tab\tab ;save key\par
   1 47296 D1   \tab\tab POP  DE    \par
   1 47294 28F8   \tab JR Z,47288   \tab ;loop waiting for key\par
   1 47292 FEFF   \tab CP 255   \tab\tab ;test 'no key'\par
   1 47291 7B   \tab\tab LD A,E   \par
   1 47288 CDC7BC \tab\cf3 CALL 48327\cf0    \tab ;fetch key\par
   1 47287 D5   \tab\tab PUSH DE    \par
   1 47285 10FD   \tab DJNZ 47284   \par
   1 47284 76   \tab\tab HALT     \par
   1 47282 0607   \tab LD B,7   \tab\tab ;delay\par
   1 47278 D9   \tab\tab EXX      \par
   1 47275 1100FE \tab LD DE,65024  \par
   1 47274 D9   \tab\tab EXX      \par
   1 47271 111301 \tab LD DE,275  \par
   1 47267 DD2100FE \tab LD IX,65024  \par
   1 47262 180F   \tab JR 47279   \tab\tab ;into menuloop\par
   1 47261 D9   \tab\tab EXX      \par
   1 47258 1100FB \tab LD DE,64256  \par
   1 47257 D9   \tab\tab EXX      \par
   1 47254 110101 \tab LD DE,257  \par
   1 47250 DD2100FB \tab LD IX,64256  \par
   1 47245 1820   \tab JR 47279   \tab\tab ;into menuloop\par
   1 47244 D9   \tab\tab EXX      \par
   1 47240 ED5B7EBE \tab LD DE,(48766)  \par
   1 47239 D9   \tab\tab EXX      \par
   1 47235 ED5B7CBE \tab LD DE,(48764)  \par
   1 47229 0D0D   \tab\tab\tab ;\lang1043 CHR$13 + CHR$13\lang2057\par
   1 47221 736F 7220 446F 776E  \tab ;\rdblquote sor Down\rdblquote\par
   1 47213 6162 0D4C 2D63 7572  \tab ;\rdblquote ab\rdblquote  \lang1043 + CHR$13 + \ldblquote L-cur\rdblquote\lang2057\par
   1 47205 7220 5570 0D50 2D54  \tab ;\rdblquote r Up\rdblquote  \lang1043 + CHR$13 + \ldblquote P-T\rdblquote\lang2057\par
   1 47197 0D4F 2D63 7572 736F  \tab ;\lang1043 CHR$13 + \ldblquote O-curso\rdblquote\lang2057\par
   1 47189 6420 4472 6976 6532  \tab ;\rdblquote d Drive2\rdblquote\par
   1 47181 6531 0D4D 2D72 6561  \tab ;\rdblquote e1\rdblquote  \lang1043 + CHR$13 + \ldblquote M-rea\ldblquote\lang2057\par
   1 47173 6561 6420 4472 6976  \tab ;\rdblquote ead Driv\rdblquote\par
   1 47165 6669 6C65 0D4E 2D72  \tab ;\rdblquote file\rdblquote  \lang1043 + CHR$13 + \ldblquote N-r\rdblquote\lang2057\par
   1 47157 452D 4572 6173 6520  \tab ;\rdblquote E-Erase \rdblquote\par
   1 47149 7874 2070 6167 650D  \tab ;\rdblquote t page\rdblquote  \lang1043 + CHR$13\lang2057\par
   1 47141 6765 0D53 532D 4E65  \tab ;\rdblquote ge\rdblquote  \lang1043 + CHR$13 + \ldblquote SS-Nex\rdblquote\lang2057\par
   1 47133 2D54 6869 7320 7061  \tab ;\rdblquote -This pa\rdblquote\par
   1 47125 6372 6565 6E0D 5350  \tab ;\rdblquote creen\rdblquote  \lang1043 + CHR$13 + \ldblquote SP\rdblquote\lang2057\par
   1 47117 532D 6C6F 6164 2053  \tab ;\rdblquote S-load S\rdblquote\par
   1 47109 726F 6772 616D 0D43  \tab ;\rdblquote rogram\rdblquote  \lang1043 + CHR$13 + \ldblquote C\rdblquote\lang2057\par
   1 47101 522D 6C6F 6164 2050  \tab ;\rdblquote R-load P\rdblquote\par
   1 47093 2D2D 2D2D 2D2D 0D43  \tab ;\rdblquote\lang1043 ------\lang2057\rdblquote  \lang1043 + CHR$13 + \ldblquote C\rdblquote\lang2057\par
   1 47085 4F0D 2D2D 2D2D 2D2D  \tab ;\rdblquote O\rdblquote  \lang1043 + CHR$13 + \ldblquote ------\ldblquote\lang2057\par
   1 47077 7420 6279 2041 4C45  \tab ;\rdblquote\lang1043 t by ALE\lang2057\rdblquote\par
   1 47069 2D2D 2D2D 0D53 6F66  \tab ;\rdblquote\lang1043 ----\lang2057\rdblquote\lang1043 + CHR$13 + \ldblquote Sof\ldblquote\lang2057\par
   1 47061 2D2D 2D2D 2D2D 2D2D  \tab ;\rdblquote\lang1043 --------\lang2057\rdblquote\par
   1 47053 6F6E 2031 3939 370D  \tab ;\rdblquote\lang1043 on 1997\lang2057\rdblquote  + CHR$13\par
   1 47045 4943 2056 6572 7369  \tab ;\rdblquote\lang1043 IC Versi\lang2057\rdblquote\par
   1 47037 2E31 3E3E 0D42 4153  \tab ;\rdblquote\lang1043 .1>>\rdblquote  + CHR$13 + \ldblquote BAS\lang2057\rdblquote\par
   1 47029 4E6F 7274 6F6E 2036  \tab ;\rdblquote\lang1043 Norton 6\lang2057\rdblquote\par
   1 47021\highlight0  4843 2D39 3120 3C3C  \tab ;\rdblquote\lang1043 HC-91 <<\rdblquote\lang2057\par
   1 47020 C9   \tab\tab RET      \par
   1 47018 20F1   \tab JR NZ,47005  \tab ;loop\par
   1 47016 FE0D   \tab CP 13    \par
   1 47013 FD7E00\tab LD A,(IY+0)  \par
   1 47012 14   \tab\tab INC  D     \tab\tab ;next column(64)\par
   1 47010 FD23   \tab INC  IY    \par
   1 47009 D1   \tab\tab POP  DE    \par
   1 47006 CD1BBC \tab\cf3 CALL 48155\cf0    \tab ;print small char on screen\par
   1 47005 D5   \tab\tab PUSH DE    \par
   1 47002 112904\tab LD DE,1065   \tab ;line/column(64)\par
   1 46997 C9   \tab\tab RET      \par
   1 46995 E607   \tab AND  7     \par
   1 46994 78  \tab\tab LD A,B   \par
   1 46993 67  \tab\tab LD H,A   \par
   1 46992 84   \tab\tab ADD  A,H   \par
   1 46990 E607   \tab AND  7     \par
   1 46989 79  \tab\tab LD A,C   \par
   1 46988 67  \tab\tab LD H,A   \par
   1 46986 F6C0   \tab OR 192   \par
   1 46984 E618   \tab AND  24    \par
   1 46983 0F   \tab\tab RRCA     \par
   1 46982 0F   \tab\tab RRCA     \par
   1 46981 0F   \tab\tab RRCA     \par
   1 46980 79  \tab\tab LD A,C            ;coords to address ??\par
   1 46979 6F  \tab\tab LD L ,A   \par
   1 46978 85   \tab\tab ADD  A,L   \par
   1 46976 E6E0   \tab AND  224   \par
   1 46975 07   \tab\tab RLCA     \par
   1 46974 07   \tab\tab RLCA     \par
   1 46973 79  \tab\tab LD A,C   \par
   1 46972 6F  \tab\tab LD L ,A   \par
   1 46970 E61F   \tab AND  31    \par
   1 46969 0F   \tab\tab RRCA     \par
   1 46968 0F   \tab\tab RRCA     \par
   1 46967 0F   \tab\tab RRCA     \par
   1 46965 C9   \tab\tab RET      \par
   1 46964 77  \tab\tab LD (HL),A  \tab\tab ;new pattern added\par
   1 46963 B6   \tab\tab OR (HL)    \tab\tab ;old screen content\par
   1 46962 C1   \tab\tab POP  BC    \par
   1 46960 10FD   \tab DJNZ 46959   \par
   1 46959 1F   \tab\tab RRA      \tab\tab ;into position\par
   1 46958 37   \tab\tab SCF      \tab\tab ;set one pixel\par
   1 46957 AF   \tab\tab XOR  A     \par
   1 46956 04   \tab\tab INC  B     \par
   1 46955 47  \tab\tab LD B,A   \par
   1 46954 C5   \tab\tab PUSH BC    \par
   1 46950 C9   \tab\tab RET      \par
   1 46948 20F8   \tab JR NZ,46942  \tab ;loop\par
   1 46947 BB   \tab\tab CP E     \par
   1 46946 79  \tab\tab LD A,C   \par
   1 46945 0C   \tab\tab INC  C     \par
   1 46941 C9   \tab\tab RET      \par
   1 46939 20F8   \tab JR NZ,46933  \tab ;loop\par
   1 46938 BA   \tab\tab CP D     \par
   1 46937 78  \tab\tab LD A,B   \par
   1 46936 04   \tab\tab INC  B     \par
   1 46932 C9   \tab\tab RET      \par
   1 46929 CD67B7 \tab\cf3 CALL 46951\cf0    \tab ;move to screen\par
   1 46926 CD55B7 \tab\cf3 CALL 46933\cf0    \par
   1 46923 CD5EB7 \tab\cf3 CALL 46942\cf0    \par
   1 46922 C1   \tab\tab POP  BC    \par
   1 46919 CD5EB7 \tab\cf3 CALL 46942\cf0    \par
   1 46916 CD55B7 \tab\cf3 CALL 46933\cf0    \par
   1 46914 C9   \tab\tab\tab RET      \par
   1 46911 CD43B7 \tab\tab\cf3 CALL 46915\cf0    \par
   1 46908 11B5FD\tab\tab LD DE,64949  \tab ;D=253, E=181\par
   1 46905 010297\tab\tab LD BC,38658  \tab ;B=151, C=0\par
   1 46902 CD43B7 \tab\tab\cf3 CALL 46915\cf0    \par
   1 46899 11B595\tab\tab LD DE,38325  \tab ;D=149, E=181\par
   1 46896 010202\tab\tab LD BC,514  \tab\tab ;B=2, C=2\par
   1 46893 CD43B7 \tab\tab\cf3 CALL 46915\cf0    \par
   1 46890 11B7FF\tab\tab LD DE,65463  \tab ;D=255, E=183\par
   1 46887 010000\tab\tab LD BC,0    \tab\tab ;B=0, C=0\par
   1 46885 EDB0  \tab\tab LDIR     \tab\tab ;empty now\par
   1 46883 3607  \tab\tab LD (HL),7  \par
   1 46880 01FF02\tab\tab LD BC,767  \par
   1 46878 EDB0  \tab\tab LDIR     \par
   1 46876 3600  \tab\tab LD (HL),0  \par
   1 46873 010018\tab\tab LD BC,6144   \par
   1 46870 1101C0\tab\tab LD DE,49153  \par
   1 46864 C38FB8 \tab\tab JP 47247   \tab\tab ;print menu text\par
   1 46863 FB   \tab\tab\tab EI     \tab\tab ;page in second screen\par
   1 46859 FD213A5C\tab\tab LD IY,23610\tab\tab ;restore default value\par
   1 46856 CD96B7 \tab\tab\cf3 CALL 46998\cf0    \tab ;print header text\par
   1 46853 CD13B7 \tab\tab\cf3 CALL 46867\cf0\tab\tab ;build screen frame\par
   1 46851 D300   \tab\tab OUT  (0),A\tab\tab ;use second screen \par
   1 46849 3E08  \tab\tab LD A,8   \tab\tab ;       screen\par
   1 24240  0D00 \tab\tab\tab ; DEFB 13,0\par
   1 24232  0700 ECB0 2233 3022 \tab ; DEFB 7,0,236,176,34,51,48,34\par
   1 24224  4220 2020 200D 0005 \tab ; DEFB 66,32,32,32,32,13,0,5\par
   1 24216  0804 0204 027E BDA5 \tab ; DEFB 8,4,2,4,2,126,189,165\par
   1 24208  4200 007E 0000 4276 \tab ; DEFB 66,0,0,126,0,0,66,118\par
   1 24200  7C00 6454 4C00 0876 \tab ; DEFB 124,0,100,84,76,0,,8,118\par
   1 24192  3C00 6C10 6C00 9CA0 \tab ; DEFB 60,0,108,16,108,0,156,160\par
   1 24184  7C00 3C40 3C00 3C78 \tab ; DEFB 124,0,60,64,60,0,60,120\par
   1 24176  2400 043E 4400 7C40 \tab ; DEFB 36,0,4,62,68,0,124,64\par
   1 24168  FC00 7804 0400 4854 \tab ; DEFB 252,0,120,4,4,0,72,84\par
   1 24160  3800 FC24 1800 1824 \tab ; DEFB 56,0,252,36,24,0,24,36\par
   1 24152  7C00 7C04 7800 3844 \tab ; DEFB 124,0,124,4,120,0,56,68\par
   1 24144  6400 3E40 4000 7C38 \tab ; DEFB 100,0,62,64,64,0,124,56\par
   1 24136  4000 4080 7A00 7E18 \tab ; DEFB 64,0,64,128,122,0,126,24\par
   1 24128  7C00 7E08 7000 487A \tab ; DEFB 124,0,126,8,112,0,72,122\par
   1 24120  4800 7C0A 0200 98A4 \tab ; DEFB 72,0,124,10,2,0,152,164\par
   1 24112  4400 3048 7E00 3854 \tab ; DEFB 68,0,48,72,126,0,56,84\par
   1 24104  7800 7E48 3000 3844 \tab ; DEFB 120,0,126,72,48,0,56,68\par
   1 24096  8050 7C52 5400 7454 \tab ; DEFB 128,80,124,82,84,0,116,84\par
   1 24088  7E00 0402 0480 8080 \tab ; DEFB 126,0,4,2,4,128,128,128\par
   1 24080  4200 0618 6000 4242 \tab ; DEFB 66,0,6,24,96,0,66,66\par
   1 24072  0E00 625A 4600 7E42 \tab ; DEFB 14,0,98,90,70,0,126,66\par
   1 24064  3E00 6618 6600 0E70 \tab ; DEFB 62,0,102,24,102,0,14,112\par
   1 24056  7E00 3E40 3E00 3E7C \tab ; DEFB 126,0,62,64,62,0,62,124\par
   1 24048  3200 027E 0200 7E40 \tab ; DEFB 50,0,2,126,2,0,126,64\par
   1 24040  FE00 7E32 4E00 444A \tab ; DEFB 254,0,126,50,78,0,68,74\par
   1 24032  3C00 7E12 0C00 7E62 \tab ; DEFB 60,0,126,18,12,0,126,98\par
   1 24024  7E00 7E02 7E00 3C42 \tab ; DEFB 126,0,126,2,126,0,60,66\par
   1 24016  6600 7E40 4000 7E1C \tab ; DEFB 102,0,126,64,64,0,126,28\par
   1 24008  4200 3040 3E00 7E18 \tab ; DEFB 66,0,48,64,62,0,126,24\par
   1 23992  4200 7E0A 0A00 3C52 \tab ; DEFB 66,0,126,10,10,0,60,82\par
   1 23984  2400 7E42 3C00 7E4A \tab ; DEFB 36,0,126,66,60,0,126,74\par
   1 23976  7C00 7E4A 3400 3C42 \tab ; DEFB 124,0,126,74,52,0,60,66\par
   1 23968  0C3C 4E56 0C00 7C12 \tab ; DEFB 12,60,78,86,12,0,124,18\par
   1 23960  2800 4428 1000 0452 \tab ; DEFB 40,0,68,40,16,0,4,82\par
   1 23952  0000 1028 4400 2828 \tab ; DEFB 0,0,16,40,68,0,40,40\par
   1 23944  3C00 0024 0000 8064 \tab ; DEFB 60,0,0,36,0,0,128,100\par
   1 23936  0600 764A 7600 4C52 \tab ; DEFB 6,0,118,74,118,0,76,82\par
   1 23928  3200 3C4A 3200 621A \tab ; DEFB 50,0,60,74,50,0,98,26\par
   1 23920  3C00 3824 7E00 4E4A \tab ; DEFB 60,0,56,36,126,0,78,74\par
   1 23912  4000 6452 4C00 4A4A \tab ; DEFB 64,0,100,82,76,0,74,74 \par
   1 23904  0600 7E42 7E00 447E \tab ; DEFB 6,0,126,66,126,0,68,126 \par
   1 23896  1000 6060 0000 6018 \tab ; DEFB 16,0,96,96,0,0,96,24\par
   1 23888  1000 8060 0000 1010 \tab ; DEFB 16,0,128,96,0,0,16,16 \par
   1 23880  0000 5438 5400 107C \tab ; DEFB 0,0,84,56,84,0,16,124 \par
   1 23872  0000 3C42 0000 423C \tab ; DEFB 0,0,60,66,0,0,66,60 \par
   1 23864  C860 547A 6400 0402 \tab ; DEFB 200,96,84,122,100,0,4,2 \par
   1 23856  7E00 5CD6 7400 2610 \tab ; DEFB 126,0,92,214,116,0,38,16 \par
   1 23848  0000 0600 0600 7E24 \tab ; DEFB 0,0,6,0,6,0,126,36  \par
   1 23840 C9       RET      \par
   1 23838 EDB0     LDIR     \par
   1 23835 018001   LD BC,384  \tab ; shifted the memory some 12 bytes up.\par
   1 23832 1180BE   LD DE,48768  \tab ; is not clear, as opening a printer channel\par
   1 23100  3400 7E08 7E00 427E \tab ; DEFB 52,0,126,8,126,0,66,126\par
   1 -----------------------------------------------\par
   1 ------------------------------------------------------\par
   1  130 OUT 0,8: PAUSE 0: RANDOMIZE USR \b 47231\b0 : GO TO 40\tab\par
   1  120 IF i= 21 THEN BEEP 0.02,40: CLEAR #: \par
   1  110 IF CODE INKEY$<> 13 THEN GO TO 110\tab\tab\tab\cf1\b ;wait for enter\cf0\b0\par
   1  100 LOAD *"d";d;n$ \b SCREEN$\b0  : OUT 0,0\tab\tab\tab\cf1\b ;prep for normal screen\cf0\b0\par
   1   90 IF i<> 39" THEN GO TO 120\par
   1   70 LET i=PEEK \b 48761\tab\tab\tab\tab\tab\tab\cf1 ;key from menu\par
   1   60 FOR i=0 TO 10: LET n$=n$+CHR$ PEEK (m+i): NEXT i\par
   1   50 LET d=1: IF m>=65024 THEN LET d=2              \tab\cf1\b ;#FE00\cf0\b0\par
   1   5  GO TO 30\par
   1   40 LET m=\b PEEK 48762+ 256*PEEK 48763\b0 : LET n$=""\par
   1   30 RANDOMIZE USR \b 46848\tab\tab\tab\tab\tab\cf1 ;do-it!\cf0\b0\par
   1   20 LOAD *"d";0;"nortoncd"CODE 46848, 1820: \par
   1   10 BORDER 0: PAPER 0: INK 7: CLEAR \b 46847\b0\par
   1   1 REM !   ?PEEK ? GO SUB VAL <>^   ~$~\\ VERIFY t&`Tzd<BB<T8T?````~B\par
   1      \b ERASE \b0 "d";d;n$: RANDOMIZE USR \b (47537+(d-1)*308)\tab\cf1 ;fetch CAT again\cf0\b0\par
   1      SAVE *"d";1;"run" LINE 10\par
   1      SAVE *"d";1;"nortoncd"CODE 46848,1820: STOP \par
   1      RANDOMIZE USR (PEEK 23635 + 256*PEEK 23636 + 5)\tab\cf1\b ;move charset\cf0\b0\par
   1      ;d;" ; ";n$: OUT 0,0: \b LOAD\b0  *"d";d;n$\tab\tab\tab\par