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