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