; Borg Disassembler v2.27 : H:\Develop\CoPro\80x86CoPro\dosboot-16Jul86 ; ; Created by Borg Disassembler ; written by Cronos Master 512 "dosplus" DOS boot file - 16-July-1986 DOSPLUS.SYS version --------------------------------------------------------------------- Commentary by J.G.Harston 0400:0000 ;----------------------------------------------------------------------- 0400:0000 ;Segment : 400h Offset : 00h Size : 8ffh 0400:0000 ;16-bit Code 0400:0000 ;----------------------------------------------------------------------- 0400:0000 start: 0400:0000 8cc8 mov ax, cs 0400:0002 8ed8 mov ds, ax 0400:0004 8ed0 mov ss, ax Point DS and SS to code segment 0400:0006 bc5a09 mov sp, 95ah Set up a stack at 095A 0400:0009 b80078 mov ax, 7800h 0400:000c 8ec0 mov es, ax Point ES to &7800, physical address &78000 0400:000e be0000 mov si, 00h Source=&0000 - start of my code 0400:0011 bf0000 mov di, 00h Dest=&0000 - offset from &78000 0400:0014 b90040 mov cx, 4000h Copy 32K of code to &78000 0400:0017 f3a5 rep movsw Copy myself to &78000, just under the 512K point 0400:0019 2eff2e1e00 jmp cs:[1eh] Jump to code pointed to by [001E], to 7800:0022 7800:001e 2200 dest offset &0022 7800:0020 0078 dest segment &7800 Code now executing at 7800:0020 (physical address &78020) --------------------------------------------------------- 7800:0022 8cc8 mov ax, cs 7800:0024 8ed8 mov ds, ax 7800:0026 8ec0 mov es, ax 7800:0028 8ed0 mov ss, ax Point DS, ES and SS to code segment 7800:002a bc5a09 mov sp, 95ah Set up a stack at 095A 7800:002d e86401 call loc_00000194 Set up MODE 3 screen Read DOS root directory into memory from disk --------------------------------------------- Read sector &000010-&000011 to Read sector &000012-&00001F to Look for "LOGO.SYS" in directory 7800:0030 bbf904 mov bx, 4f9h 7800:0033 e8c401 call loc_000001fa Do OSWORD &72, BX=>04F9 7800:0036 bb0805 mov bx, 508h 7800:0039 e8be01 call loc_000001fa Do OSWORD &72, BX=>0508 7800:003c bf4205 mov di, 542h DI=>"LOGO.SYS" filename 7800:003f e82701 call loc_00000169 Look for "LOGO.SYS" in directory 7800:0042 85c0 test ax, ax 7800:0044 740c jz loc_00000052 Not found, skip trying to load it 7800:0046 c7065a096011 mov word ptr [95ah], 1160h =>something out of code area 7800:004c e8fc00 call loc_0000014b 7800:004f e83703 call loc_00000389 7800:0052 loc_00000052: 7800:0052 c7065e094d05 mov word ptr [95eh], 54dh =>"6502.SYS" filename 7800:0058 c7065a096009 mov word ptr [95ah], 960h =>??? 7800:005e e8c800 call loc_00000129 Look for "6502.SYS" 7800:0061 e84903 call loc_000003ad Now look for a DOS boot file ---------------------------- 7800:0064 bf2c05 mov di, 52ch DI=>"CCPM.SYS" filename 7800:0067 e8ff00 call loc_00000169 Look for it in directory 7800:006a 85c0 test ax, ax 7800:006c 751c jnz loc_0000008a If found, ... 7800:006e bf3705 mov di, 537h DI=>"DOSPLUS.SYS" filename 7800:0071 e8f500 call loc_00000169 Look it in directory 7800:0074 85c0 test ax, ax 7800:0076 7506 jnz loc_0000007e If found, ... 7800:0078 be9004 mov si, 490h SI=>"Can't find system file...." 7800:007b e98a01 jmp loc_00000208 Jump to report failure DOSPLUS.SYS found ----------------- 7800:007e loc_0000007e: 7800:007e a32605 mov word ptr[526h], ax 7800:0081 be7a04 mov si, 47ah SI=>"Loading DOSPLUS" 7800:0084 e88d01 call loc_00000214 Print message 7800:0087 e90900 jmp loc_00000093 Jump to load DOSPLUS CCPM.SYS found -------------- 7800:008a loc_0000008a: 7800:008a a32605 mov word ptr[526h], ax 7800:008d be5e04 mov si, 45eh Point to 'Loading Concurrent...' 7800:0090 e88101 call loc_00000214 Print zero-terminated string Now load DOSPLUS.SYS or CCPM.SYS -------------------------------- 7800:0093 loc_00000093: 7800:0093 a12605 mov ax, word ptr[526h] 7800:0096 3df70f cmp ax, 0ff7h 7800:0099 773d ja loc_000000d8 7800:009b c7062a050000 mov word ptr [52ah], 00h 7800:00a1 50 push ax 7800:00a2 e8fc00 call loc_000001a1 7800:00a5 ff062805 inc word ptr [528h] 7800:00a9 ff062a05 inc word ptr [52ah] 7800:00ad 5b pop bx 7800:00ae 43 inc bx 7800:00af 3bc3 cmp ax, bx 7800:00b1 7507 jnz loc_000000ba 7800:00b3 833e2a0510 cmp word ptr [52ah], 10h 7800:00b8 75e7 jnz 0a1h 7800:00ba ; XREFS First: 7800:00b1 Number : 1 7800:00ba loc_000000ba: 7800:00ba 87062605 xchg [526h], ax 7800:00be 8b0e2a05 mov cx, [52ah] 7800:00c2 e8fc00 call loc_000001c1 7800:00c5 b02e mov al, 2eh 7800:00c7 e87f01 call loc_00000249 7800:00ca 8b0e2a05 mov cx, [52ah] 7800:00ce 8106f3048000 add word ptr [4f3h], 80h 7800:00d4 e2f8 loop 0ceh 7800:00d6 ebbb jmp loc_00000093 7800:00d8 ; XREFS First: 7800:0099 Number : 1 7800:00d8 loc_000000d8: 7800:00d8 e85d01 call loc_00000238 7800:00db e89202 call loc_00000370 7800:00de fa cli 7800:00df 8b162805 mov dx, [528h] 7800:00e3 b80004 mov ax, 400h 7800:00e6 8ed8 mov ds, ax DS=0400, physical address 04000 7800:00e8 a10300 mov ax, word ptr[03h] Get entry point offset from loaded code 7800:00eb 2ea3f704 mov cs:word ptr[4f7h], ax Set destination offset from AX 7800:00ef b80804 mov ax, 408h 7800:00f2 8ed8 mov ds, ax DS=0408, physical address 04080 7800:00f4 2ea1f704 mov ax, cs:word ptr[4f7h] Get destination offset back to AX 7800:00f8 8ec0 mov es, ax 7800:00fa be0000 mov si, 00h 7800:00fd bf0000 mov di, 00h 7800:0100 b90004 mov cx, 400h 7800:0103 f3a5 rep movsw 7800:0105 8cd8 mov ax, ds 7800:0107 058000 add ax, 80h 7800:010a 8ed8 mov ds, ax 7800:010c 8cc0 mov ax, es 7800:010e 058000 add ax, 80h 7800:0111 8ec0 mov es, ax 7800:0113 4a dec dx | was dec dl 7800:0114 75e4 jnz 0fah 7800:0116 1f pop ds 7800:0117 2ea1f704 mov ax, cs:word ptr[4f7h] Get destination segment back to AX 7800:011b 8ed8 mov ds, ax 7800:011d 8e1e0600 mov ds, [06h] 7800:0121 ba0000 mov dx, 00h 7800:0124 2eff2ef504 jmp cs:[4f5h] Jump to enter DOS Do something with "6502.SYS", filename passed at [065E] ------------------------------------------------------- 7800:0129 loc_00000129: 7800:0129 8b3e5e09 mov di, [95eh] DI=>filename 7800:012d e83900 call loc_00000169 Look for it in directory 7800:0130 85c0 test ax, ax 7800:0132 7517 jnz loc_0000014b Found... 7800:0134 8cd8 mov ax, ds 7800:0136 8ec0 mov es, ax 7800:0138 8b365e09 mov si, [95eh] SI=>filename 7800:013c bfa904 mov di, 4a9h DI=>middle of "Can't find..." message 7800:013f b97800 mov cx, 04h Copy eight characters of "6502 " into message 7800:0142 fc cld 7800:0143 f3a5 rep movsw 7800:0145 be9004 mov si, 490h SI=>"Cant find...." 7800:0148 e9bd00 jmp loc_00000208 Jump to report failure message "6502.SYS" found ---------------- 7800:014b loc_0000014b: 7800:014b b90100 mov cx, 01h 7800:014e e87000 call loc_000001c1 7800:0151 b90008 mov cx, 800h 7800:0154 8b3e5a09 mov di, [95ah] 7800:0158 1e push ds 7800:0159 8cd8 mov ax, ds 7800:015b 8ec0 mov es, ax 7800:015d a1f304 mov ax, word ptr[4f3h] 7800:0160 8ed8 mov ds, ax 7800:0162 be0000 mov si, 00h 7800:0165 f3a4 rep movsb 7800:0167 1f pop ds 7800:0168 c3 ret Scan directory in memory for a filename --------------------------------------- DI=>filename in FCB format 7800:0169 loc_00000169: 7800:0169 b97000 mov cx, 70h 7800:016c be0000 mov si, 00h 7800:016f loc_0000016f: 7800:016f 56 push si 7800:0170 57 push di 7800:0171 1e push ds 7800:0172 06 push es 7800:0173 51 push cx 7800:0174 b8003e mov ax, 3e00h 7800:0177 8ed8 mov ds, ax 7800:0179 8cc8 mov ax, cs 7800:017b 8ec0 mov es, ax 7800:017d 8b441a mov ax, [si+1ah] 7800:0180 b90b00 mov cx, 0bh 7800:0183 f3a6 rep cmpsb 7800:0185 59 pop cx 7800:0186 07 pop es 7800:0187 1f pop ds 7800:0188 5f pop di 7800:0189 5e pop si 7800:018a 7407 jz loc_00000193 7800:018c 83c620 add si, 20h 7800:018f e2de loop 16fh 7800:0191 2bc0 sub ax, ax 7800:0193 ; XREFS First: 7800:018a Number : 1 7800:0193 loc_00000193: 7800:0193 c3 ret Select screen mode and print Boot strap message ----------------------------------------------- 7800:0194 loc_00000194: 7800:0194 e8a100 call loc_00000238 MODE 3 with green text 7800:0197 e8bd01 call loc_00000357 Remove the tiger stripes 7800:019a be3b04 mov si, 43bh Point to 'Boot strap...' message 7800:019d e87400 call loc_00000214 Print the zero-terminated string 7800:01a0 c3 ret 7800:01a1 loc_000001a1: 7800:01a1 8bd8 mov bx, ax 7800:01a3 d1e3 shl bx, 1h 7800:01a5 03d8 add bx, ax 7800:01a7 d1eb shr bx, 1h 7800:01a9 1e push ds 7800:01aa b80038 mov ax, 3800h | was 3000 7800:01ad 8ed8 mov ds, ax 7800:01af 8b07 mov ax, [bx] 7800:01b1 1f pop ds 7800:01b2 7308 jnc loc_000001bc 7800:01b4 d1e8 shr ax, 1h 7800:01b6 d1e8 shr ax, 1h 7800:01b8 d1e8 shr ax, 1h 7800:01ba d1e8 shr ax, 1h 7800:01bc ; XREFS First: 7800:01b2 Number : 1 7800:01bc loc_000001bc: 7800:01bc 25ff0f and ax, 0fffh 7800:01bf c3 ret 7800:01c0 c3 db 0c3h 7800:01c1 loc_000001c1: 7800:01c1 e336 jcxz loc_000001f9 7800:01c3 2d0200 sub ax, 02h 7800:01c6 bb0800 mov bx, 08h 7800:01c9 f7e3 mul bx 7800:01cb 052000 add ax, 20h 7800:01ce a21f05 mov byte ptr word ptr[51fh], al 7800:01d1 88261e05 mov [51eh], ah 7800:01d5 8bc1 mov ax, cx 7800:01d7 f7e3 mul bx 7800:01d9 a22005 mov byte ptr word ptr[520h], al 7800:01dc a1f304 mov ax, word ptr[4f3h] 7800:01df a31a05 mov word ptr[51ah], ax 7800:01e2 c70618050000 mov word ptr [518h], 00h 7800:01e8 c7061c050800 mov word ptr [51ch], 08h 7800:01ee c606170500 mov byte ptr [517h], 00h 7800:01f3 bb1705 mov bx, 517h 7800:01f6 e80100 call loc_000001fa 7800:01f9 ; XREFS First: 7800:01c1 Number : 1 7800:01f9 loc_000001f9: 7800:01f9 c3 ret Do an OSWORD &72 call --------------------- BX=>control block 7800:01fa loc_000001fa: 7800:01fa b072 mov al, 72h AL=&72 - Read MFM disk 7800:01fc e82602 call loc_00000425 Do OSWORD call 7800:01ff 803f00 cmp byte ptr [bx], 00h Check result byte 7800:0202 7501 jnz loc_00000205 If nonzero, drop to report error 7800:0204 c3 ret If zero, ok, return 7800:0205 loc_00000205: 7800:0205 bec304 mov si, 4c3h SI=>"Disk read error..." 7800:0208 loc_00000208: 7800:0208 e80900 call loc_00000214 Report failed boot message 7800:020b loc_0000020b: 7800:020b e9fdff jmp loc_0000020b Loop to hang Print inline string ------------------- 7800:020e loc_0000020e: 7800:020e 5e pop si Pop return address to SI 7800:020f e80200 call loc_00000214 Print zer-terminated string at SI 7800:0212 ffe6 jmp si Jump back to SI to return Send zero-terminated string to OSWRCH via Tube ---------------------------------------------- 7800:0214 loc_00000214: 7800:0214 fc cld Direction is upwards 7800:0215 ac lodsb Get byte from SI, inc SI 7800:0216 84c0 test al, al Test byte 7800:0218 7405 jz loc_0000021f Exit if zero byte 7800:021a e82c00 call loc_00000249 Send to OSWRCH via Tube R1 7800:021d ebf6 jmp 215h Loop back for next character 7800:021f loc_0000021f: 7800:021f c3 ret Print AL in hex (not called by anything) ---------------------------------------- 7800:0220 loc_00000220: 7800:0220 50 push ax 7800:0221 d0e8 shr al, 1h 7800:0223 d0e8 shr al, 1h 7800:0225 d0e8 shr al, 1h 7800:0227 d0e8 shr al, 1h 7800:0229 e80100 call loc_0000022d 7800:022c 58 pop ax 7800:022d loc_0000022d: 7800:022d 250f00 and ax, 0fh 7800:0230 3c0a cmp al, 0ah 7800:0232 7202 jc loc_00000236 7800:0234 0407 add al, 07h 7800:0236 loc_00000236: 7800:0236 0430 add al, 30h Should continue into loc_0249 here to send to OSWRCH, but instead crashes into MODE 3 setup code Set screen to MODE 3 with green text ------------------------------------ 7800:0238 loc_00000238: 7800:0238 be3104 mov si, 431h Point to MODE 3:VDU 19,1,2,0,0,0 7800:023b b90a00 mov cx, 0ah 10 characters 7800:023e e90801 jmp loc_00000349 Jump to print string Call Tube to do OSRDCH (not called by anything) ----------------------------------------------- 7800:0241 loc_00000241: 7800:0241 e81000 call loc_00000254 Do OSRDCH call 7800:0244 7302 jnc loc_00000248 Carry Clear, exit 7800:0246 b01b mov al, 1bh Carry Set, make AL=Esc 7800:0248 loc_00000248: 7800:0248 c3 ret Send character to OSWRCH via Tube --------------------------------- 7800:0249 loc_00000249: 7800:0249 50 push ax Save A 7800:024a e480 in al, 80h Read Tube R1 Status 7800:024c d0e0 shl al, 1h Move TxRDY from b6 to b7 7800:024e 79fa jns 24ah Loop until TxRDY 7800:0250 58 pop ax Get A back 7800:0251 e682 out 82h, al Send character to Tube R1 7800:0253 c3 ret Read character via Tube OSRDCH command -------------------------------------- 7800:0254 loc_00000254: 7800:0254 86c4 xchg ah, al 7800:0256 b400 mov ah, 00h 7800:0258 e80e00 call loc_00000269 Send Command &00 - OSRDCH 7800:025b e81a00 call loc_00000278 Wait for returned Carry byte 7800:025e f6d4 not ah Complement and Compare to copy b7 7800:0260 80fc80 cmp ah, 80h into Carry 7800:0263 e81200 call loc_00000278 Wait for returned Character 7800:0266 86c4 xchg ah, al Return it in AL 7800:0268 c3 ret Send byte in AH to Tube R2 - Command channel -------------------------------------------- 7800:0269 loc_00000269: 7800:0269 9c pushf 7800:026a 50 push ax 7800:026b e484 in al, 84h Read Tube R2 Status 7800:026d a840 test al, 40h Test TxRDY 7800:026f 74fa jz 26bh Loop until TxRDY 7800:0271 8ac4 mov al, ah Get byte to send 7800:0273 e686 out 86h, al Send to Tube R2 7800:0275 58 pop ax Restore AX 7800:0276 9d popf Restore flags 7800:0277 c3 ret Wait for byte from Tube R2 - Command channel -------------------------------------------- 7800:0278 loc_00000278: 7800:0278 9c pushf 7800:0279 86e0 xchg al, ah 7800:027b e484 in al, 84h Read Tube R2 Status 7800:027d a880 test al, 80h Test RxRDY 7800:027f 74fa jz 27bh Loop until RxRDY 7800:0281 e486 in al, 86h Get byte from Tube R2 7800:0283 86e0 xchg al, ah Return it in AH 7800:0285 9d popf 7800:0286 c3 ret Do an OSWORD call ----------------- AL=function, BX=>control block 7800:0287 50 push ax Save function 7800:0288 56 push si Save SI 7800:0289 8ae0 mov ah, al AH=function 7800:028b 8bf3 mov si, bx SI=>control block 7800:028d e80300 call loc_00000293 7800:0290 5e pop si Restore SI and AX 7800:0291 58 pop ax 7800:0292 c3 ret Do an OSWORD call ----------------- AH=function, SI=>control block 7800:0293 loc_00000293: 7800:0293 b286 mov dl, 86h DL=Tube R2 Data address 7800:0295 84e4 test ah, ah Check for OSWORD 0 7800:0297 7501 jnz loc_0000029a Jump if not OSWORD 0 7800:0299 c3 ret Return - don't attempt to do RDLINE 7800:029a loc_0000029a: 7800:029a b008 mov al, 08h 7800:029c e88c00 call loc_0000032b Send Command &08 = OSWORD 7800:029f 8ac4 mov al, ah 7800:02a1 e88700 call loc_0000032b Send function 7800:02a4 2bdb sub bx, bx BX=0 7800:02a6 80fc81 cmp ah, 81h This should be 80h 7800:02a9 7207 jc loc_000002b2 Low functions have fixed length 7800:02ab 8a04 mov al, [si] Get TxLen from control block 7800:02ad 8a7401 mov dh, [si+01h] Get RxLen from control block 7800:02b0 eb11 jmp loc_000002c3 7800:02b2 loc_000002b2: 7800:02b2 80fc15 cmp ah, 15h 7800:02b5 7302 jnc loc_000002b9 7800:02b7 8adc mov bl, ah 7800:02b9 loc_000002b9: 7800:02b9 2e8a87ee02 mov al, cs:[bx+2eeh] Get TxLen from table 7800:02be 2e8ab70303 mov dh, cs:[bx+303h] Get RxLen from table AL=TxLen, DH=RxLen, SI=>control block ------------------------------------- 7800:02c3 loc_000002c3: 7800:02c3 e86500 call loc_0000032b Send TxLen 7800:02c6 8ad8 mov bl, al 7800:02c8 85db test bx, bx 7800:02ca 740a jz loc_000002d6 TxLen=0, don't send a control block 7800:02cc 8bcb mov cx, bx CX=control block length 7800:02ce 4b dec bx Send control block high to low 7800:02cf 8a00 mov al, [bx+si] 7800:02d1 e85700 call loc_0000032b Send byte to Tube 7800:02d4 e2f8 loop 2ceh 7800:02d6 loc_000002d6: 7800:02d6 8ac6 mov al, dh 7800:02d8 e85000 call loc_0000032b Send RxLen 7800:02db 2aff sub bh, bh 7800:02dd 8ade mov bl, dh 7800:02df 85db test bx, bx 7800:02e1 740a jz loc_000002ed RxLen=0, don't read control block reply 7800:02e3 8bcb mov cx, bx 7800:02e5 4b dec bx 7800:02e6 e82f00 call loc_00000318 7800:02e9 8800 mov [bx+si], al 7800:02eb e2f8 loop 2e5h 7800:02ed loc_000002ed: 7800:02ed c3 ret Done Low numbered OSWORD control block lengths ----------------------------------------- 7800:02ee 1000 adc [bx+si], al 7800:02f0 050005 add ax, 500h 7800:02f3 0205 add al, byte ptr [di] 7800:02f5 080e0401 or [104h], cl 7800:02f9 0105 add word ptr [di], ax 7800:02fb 0001 add [bx+di], al 7800:02fd 2010 and [bx+si], dl 7800:02ff 0d0008 or ax, 800h 7800:0302 801005 adc byte ptr [bx+si], 05h 7800:0305 0005 add byte ptr [di], al 7800:0307 0005 add byte ptr [di], al 7800:0309 0000 add [bx+si], al 7800:030b 0005 add byte ptr [di], al 7800:030d 0905 or word ptr [di], ax 7800:030f 0008 add [bx+si], cl 7800:0311 1900 sbb [bx+si], ax 7800:0313 010d add word ptr [di], cx 7800:0315 800880 or byte ptr [bx+si], 80h 7800:0318 loc_00000318: 7800:0318 52 push dx 7800:0319 b600 mov dh, 00h 7800:031b feca dec dl 7800:031d feca dec dl 7800:031f ec in al, dx 7800:0320 84c0 test al, al 7800:0322 79fb jns 31fh 7800:0324 fec2 inc dl 7800:0326 fec2 inc dl 7800:0328 ec in al, dx 7800:0329 5a pop dx 7800:032a c3 ret Send a byte in AL to Tube Register in DL ---------------------------------------- 7800:032b loc_0000032b: 7800:032b 52 push dx Save DX 7800:032c 50 push ax Save AX 7800:032d b600 mov dh, 00h Ensure DX is &00xx 7800:032f feca dec dl Step back two to point to Status register 7800:0331 feca dec dl 7800:0333 ec in al, dx Read Status register 7800:0334 d0e0 shl al, 1h Move TxRDY from b6 to b7 7800:0336 79fb jns 333h Loop until TxRDY 7800:0338 fec2 inc dl Step back up to point to Data register 7800:033a fec2 inc dl 7800:033c 58 pop ax Get byte back 7800:033d ee out dx, al Send it to Tube 7800:033e 5a pop dx Restore DX 7800:033f c3 ret Send a VDU 23 command --------------------- 7800:0340 a3eb04 mov word ptr[4ebh], ax Store command & data in control block 7800:0343 bee904 mov si, 4e9h Point to VDU 23 string 7800:0346 b90a00 mov cx, 0ah 10 characters to print Send string at SI to OSWRCH via Tube ------------------------------------ 7800:0349 loc_00000349: 7800:0349 ba8200 mov dx, 82h DX=Tube R1 Data 7800:034c e480 in al, 80h Read Rube R1 Status 7800:034e d0e0 shl al, 1h Move TxRDY from b6 to b7 7800:0350 79fa jns 34ch Loop until TxRDY 7800:0352 ac lodsb Get byte from DX, inc DX, dec CX 7800:0353 ee out dx, al Send character to OSWRCH via Tube R1 7800:0354 e2f6 loop 34ch Loop for whole string 7800:0356 c3 ret Remove tiger stripes from MODE 3 display ---------------------------------------- 7800:0357 loc_00000357: 7800:0357 b80907 mov ax, 709h VDU 23;9,7;0;0;0 7800:035a e8e3ff call 340h 7+1 scan lines per character 7800:035d b80426 mov ax, 2604h VDU 23;4,26;0;0;0 7800:0360 e8ddff call 340h Vertical total=26 7800:0363 b80500 mov ax, 05h VDU 23;5,0;0;0;0 7800:0366 e8d7ff call 340h Vertial total adjust=0 7800:0369 b8071b mov ax, 1b07h VDU 23;7,27;0;0;0 7800:036c e8d1ff call 340h Vertical sync=27 7800:036f c3 ret 7800:0370 ; XREFS First: 7800:00db Number : 1 7800:0370 loc_00000370: 7800:0370 b80909 mov ax, 909h VDU 23;9,9 7800:0373 e8caff call 340h 7800:0376 b8041e mov ax, 1e04h VDU 23;4,30 7800:0379 e8c4ff call 340h 7800:037c b80500 mov ax, 05h VDU 23;5,0 7800:037f e8beff call 340h 7800:0382 b8071b mov ax, 1b07h VDU 23;7,27 7800:0385 e8b8ff call 340h 7800:0388 c3 ret 7800:0389 loc_00000389: 7800:0389 b90600 mov cx, 06h 7800:038c be6011 mov si, 1160h 7800:038f bf9041 mov di, 4190h 7800:0392 51 push cx 7800:0393 57 push di 7800:0394 b9d800 mov cx, 0d8h 7800:0397 ac lodsb 7800:0398 51 push cx 7800:0399 56 push si 7800:039a 57 push di 7800:039b e87b00 call loc_00000419 7800:039e 5f pop di 7800:039f 5e pop si 7800:03a0 59 pop cx 7800:03a1 47 inc di 7800:03a2 e2f3 loop 397h 7800:03a4 5f pop di 7800:03a5 59 pop cx 7800:03a6 81c78002 add di, 280h 7800:03aa e2e6 loop 392h 7800:03ac c3 ret 7800:03ad ; XREFS First: 7800:0061 Number : 1 7800:03ad loc_000003ad: 7800:03ad b90008 mov cx, 800h 7800:03b0 be6009 mov si, 960h 7800:03b3 8b3e6109 mov di, [961h] 7800:03b7 ac lodsb 7800:03b8 51 push cx 7800:03b9 56 push si 7800:03ba 57 push di 7800:03bb e85b00 call loc_00000419 7800:03be 5f pop di 7800:03bf 5e pop si 7800:03c0 59 pop cx 7800:03c1 47 inc di 7800:03c2 e2f3 loop 3b7h 7800:03c4 c706e4780002 mov word ptr [4e4h], 200h 7800:03ca b005 mov al, 05h 7800:03cc e85300 call loc_00000422 7800:03cf a16109 mov ax, word ptr[961h] 7800:03d2 40 inc ax 7800:03d3 a3e404 mov word ptr[4e4h], ax 7800:03d6 b006 mov al, 06h 7800:03d8 e84700 call loc_00000422 7800:03db c706e4040102 mov word ptr [4e4h], 201h 7800:03e1 b005 mov al, 05h 7800:03e3 e83c00 call loc_00000422 7800:03e6 a16109 mov ax, word ptr[961h] 7800:03e9 050200 add ax, 02h 7800:03ec a3e404 mov word ptr[4e4h], ax 7800:03ef b006 mov al, 06h 7800:03f1 e82e00 call loc_00000422 7800:03f4 a16109 mov ax, word ptr[961h] 7800:03f7 050300 add ax, 03h 7800:03fa a2e804 mov byte ptr word ptr[4e8h], al 7800:03fd c706e4780002 mov word ptr [4e4h], 200h 7800:0403 50 push ax 7800:0404 b006 mov al, 06h 7800:0406 e81900 call loc_00000422 7800:0409 58 pop ax 7800:040a 8826e804 mov [4e8h], ah 7800:040e c706e4040102 mov word ptr [4e4h], 201h 7800:0414 b006 mov al, 06h 7800:0416 e90900 jmp loc_00000422 7800:0419 ; XREFS First: 7800:039b Number : 2 7800:0419 loc_00000419: 7800:0419 a2e804 mov byte ptr word ptr[4e8h], al 7800:041c 893ee404 mov [4e4h], di 7800:0420 b006 mov al, 06h 7800:0422 ; XREFS First: 7800:03cc Number : 6 7800:0422 loc_00000422: 7800:0422 bbe404 mov bx, 4e4h 7800:0425 ; XREFS First: 7800:01fc Number : 1 Do an OSWORD call ----------------- 7800:0425 loc_00000425: 7800:0425 50 push ax Save everything 7800:0426 53 push bx 7800:0427 56 push si 7800:0428 06 push es 7800:0429 e85bfe call 287h Make an OSWORD call 7800:042c 07 pop es Restore everything 7800:042d 5e pop si 7800:042e 5b pop bx 7800:042f 58 pop ax 7800:0430 c3 ret Return 7800:0431 16 03 db 16h, 03h MODE 3 7800:0433 13 01 02 00 00 00 db 13h, 01h, 02h VDU 19,0,2,0,0,0 db 00h, 00h, 00h 7800:043b 0a 0a db 0ah, 0ah 7800:043d 42 db "Boot strap loader [16-July-86]" 7800:045b 0d 0a db 0dh, 0ah 7800:045d 00 db 00h 7800:045e 0d 0a 0a 0a db 0dh,0ah,0ah,0ah 7800:0462 4c db "Loading Concurrent DOS." 7800:0479 00 db 00h 7800:047a 0d 0a 0a 0a db 0dh,0ah,0ah,0ah 7800:047e 4c db "Loading DOS PLUS." 7800:048f 00 db 00h 7800:0490 0d 0a db 0dh, 0ah 7800:0492 43 db "Can't find system file DOSPLUS .SYS on boot disk" 7800:04c2 00 db 00h 7800:04c3 0d 0a 0a db 0dh, 0ah, 0ah 7800:04c6 44 db "Disc Read Error - BOOT failed" 7800:04e3 00 db 00h 7800:04e4 00 db 00h 7800:04e5 00 db 00h 7800:04e6 00 db 00h 7800:04e7 00 db 00h 7800:04e8 00 db 00h VDU 23 control block -------------------- 7800:04e9 17 db 17h 7800:04ea 00 db 00h 7800:04eb 00 db 00h 7800:04ec 00 db 00h 7800:04ed 00 db 00h 7800:04ee 00 db 00h 7800:04ef 00 db 00h 7800:04f0 00 db 00h 7800:04f1 00 db 00h 7800:04f2 00 db 00h 7800:04f3 00 db 00h 7800:04f4 04 db 04h 7800:04f5 00 00 dest offset &0000 7800:04f7 60 00 dest segment &0060 - physical address &00060 OSWORD &72 control block to load root directory ----------------------------------------------- 7800:04f9 00 db 00h Result 7800:04fa 00 db 00h \ 7800:04fb 00 db 00h : Address=3800:0000 7800:04fc 00 db 00h : Physical address &38000 7800:04fd 38 db 38h / 7800:04fe 08 db 08h &08=Read 7800:04ff 00 db 00h \ 7800:0500 00 db 00h : Sector &000010 7800:0501 10 db 10h / 7800:0502 02 db 02h Number=2 sectors 7800:0503 00 db 00h unused 7800:0504 00 db 00h \ 7800:0505 00 db 00h : Byte count if 7800:0506 00 db 00h : number=0 7800:0507 00 db 00h / OSWORD &72 control block to load root directory ----------------------------------------------- 7800:0508 00 db 00h Result 7800:0509 00 db 00h \ 7800:050a 00 db 00h : Address=3E00:0000 7800:050b 00 db 00h : Physical address &3E000 7800:050c 3e db 3eh / 7800:050d 08 db 08h &08=Read 7800:050e 00 db 00h \ 7800:050f 00 db 00h : Sector &000012 7800:0510 12 db 12h / 7800:0511 0e db 0eh Number=14 sectors 7800:0512 00 db 00h unused 7800:0513 00 db 00h \ 7800:0514 00 db 00h : Byte count if 7800:0515 00 db 00h : number=0 7800:0516 00 db 00h / OSWORD &72 control block for something -------------------------------------- 7800:0517 00 db 00h 7800:0518 00 db 00h 7800:0519 00 db 00h 7800:051a 00 db 00h 7800:051b 04 db 04h 7800:051c 08 db 08h 7800:051d 00 db 00h 7800:051e 00 db 00h 7800:051f 00 db 00h 7800:0520 00 db 00h 7800:0521 00 db 00h 7800:0522 00 db 00h 7800:0523 00 db 00h 7800:0524 00 db 00h 7800:0525 00 db 00h 7800:0526 00 db 00h 7800:0527 00 db 00h 7800:0528 00 db 00h 7800:0529 00 db 00h 7800:052a 00 db 00h 7800:052b 00 db 00h Filenames in FCB format ----------------------- 7800:052c 43 db "CCPM SYS" 7800:0537 44 db "DOSPLUS SYS" 7800:0542 4c db "LOGO SYS" 7800:054d 36 db "6502 SYS" 7800:0558 00 db 00h 7800:0559 00 db 00h 7800:055a 00 db 00h 7800:055b 00 db 00h 7800:055c 00 db 00h 7800:055d 00 db 00h 7800:055e 00 db 00h 7800:055f 00 db 00h 7800:0560 00 db 00h 7800:0561 00 db 00h 7800:0562 00 db 00h 7800:0563 00 db 00h 7800:0564 00 db 00h 7800:0565 00 db 00h 7800:0566 00 db 00h 7800:0567 00 db 00h 7800:0568 00 db 00h 7800:0569 00 db 00h 7800:056a 00 db 00h 7800:056b 00 db 00h 7800:056c 00 db 00h 7800:056d 00 db 00h 7800:056e 00 db 00h 7800:056f 00 db 00h 7800:0570 00 db 00h 7800:0571 00 db 00h 7800:0572 00 db 00h 7800:0573 00 db 00h 7800:0574 00 db 00h 7800:0575 00 db 00h 7800:0576 00 db 00h 7800:0577 00 db 00h 7800:0578 00 db 00h 7800:0579 00 db 00h 7800:057a 00 db 00h 7800:057b 00 db 00h 7800:057c 00 db 00h 7800:057d 00 db 00h 7800:057e 00 db 00h 7800:057f 00 db 00h, "Master 512" 7800:058c b1 db 0b1h 7800:058d 00 db 00h 7800:058e 00 db 00h 7800:058f 00 db 00h 7800:0590 00 db 00h 7800:0591 00 db 00h 7800:0592 00 db 00h 7800:0593 00 db 00h 7800:0594 00 db 00h 7800:0595 00 db 00h 7800:0596 00 db 00h 7800:0597 00 db 00h 7800:0598 00 db 00h 7800:0599 00 db 00h 7800:059a 00 db 00h 7800:059b 00 db 00h 7800:059c 00 db 00h 7800:059d 00 db 00h 7800:059e 00 db 00h 7800:059f 00 db 00h, "Master 512" 7800:05ab 00 db 00h 7800:05ac 20 db 20h ;' ' 7800:05ad 00 db 00h 7800:05ae 01 db 01h 7800:05af 00 db 00h 7800:05b0 01 db 01h 7800:05b1 00 db 00h 7800:05b2 01 db 01h More filenames -------------- 7800:05b3 24 db 00h, "$$$$$$$$$$$" 7800:05bf 00 db 00h, "DOSPLUS SYS" 7800:05cb 00 db 00h, "6502 SYS" 7800:05d7 00 db 00h, "COMMAND COM" 7800:05e3 00 db 00h, "???????????" 7800:05ef 00 db 00h 7800:05f0 00 db 00h 7800:05f1 00 db 00h 7800:05f2 00 db 00h 7800:05f3 00 db 00h 7800:05f4 00 db 00h 7800:05f5 00 db 00h 7800:05f6 00 db 00h 7800:05f7 00 db 00h 7800:05f8 00 db 00h 7800:05f9 00 db 00h 7800:05fa 00 db 00h 7800:05fb 00 db 00h 7800:05fc 00 db 00h 7800:05fd 00 db 00h 7800:05fe 00 db 00h 7800:05ff 00 db 00h 7800:0600 00 db 00h 7800:0601 00 db 00h 7800:0602 00 db 00h 7800:0603 00 db 00h 7800:0604 00 db 00h 7800:0605 00 db 00h 7800:0606 00 db 00h 7800:0607 00 db 00h 7800:0608 00 db 00h 7800:0609 00 db 00h 7800:060a 00 db 00h 7800:060b 00 db 00h 7800:060c 00 db 00h 7800:060d 00 db 00h 7800:060e 00 db 00h 7800:060f 00 db 00h 7800:0610 00 db 00h 7800:0611 00 db 00h 7800:0612 00 db 00h 7800:0613 00 db 00h 7800:0614 00 db 00h 7800:0615 00 db 00h 7800:0616 00 db 00h 7800:0617 00 db 00h 7800:0618 00 db 00h 7800:0619 00 db 00h 7800:061a 00 db 00h 7800:061b 00 db 00h 7800:061c 00 db 00h 7800:061d 00 db 00h 7800:061e 00 db 00h 7800:061f 00 db 00h 7800:0620 00 db 00h 7800:0621 00 db 00h 7800:0622 00 db 00h 7800:0623 00 db 00h 7800:0624 00 db 00h 7800:0625 00 db 00h 7800:0626 00 db 00h 7800:0627 00 db 00h 7800:0628 00 db 00h 7800:0629 00 db 00h 7800:062a 00 db 00h 7800:062b 00 db 00h 7800:062c 00 db 00h 7800:062d 00 db 00h 7800:062e 00 db 00h 7800:062f 00 db 00h 7800:0630 00 db 00h 7800:0631 00 db 00h 7800:0632 00 db 00h 7800:0633 00 db 00h 7800:0634 00 db 00h 7800:0635 00 db 00h 7800:0636 00 db 00h 7800:0637 00 db 00h 7800:0638 00 db 00h 7800:0639 00 db 00h 7800:063a 00 db 00h 7800:063b 00 db 00h 7800:063c 00 db 00h 7800:063d 00 db 00h 7800:063e 00 db 00h 7800:063f 00 db 00h 7800:0640 00 db 00h 7800:0641 00 db 00h 7800:0642 00 db 00h 7800:0643 00 db 00h 7800:0644 00 db 00h 7800:0645 00 db 00h 7800:0646 00 db 00h 7800:0647 00 db 00h 7800:0648 00 db 00h 7800:0649 00 db 00h 7800:064a 00 db 00h 7800:064b 00 db 00h 7800:064c 00 db 00h 7800:064d 00 db 00h 7800:064e 00 db 00h 7800:064f 00 db 00h 7800:0650 00 db 00h 7800:0651 00 db 00h 7800:0652 00 db 00h 7800:0653 00 db 00h 7800:0654 00 db 00h 7800:0655 00 db 00h 7800:0656 00 db 00h 7800:0657 00 db 00h 7800:0658 00 db 00h 7800:0659 00 db 00h 7800:065a 00 db 00h 7800:065b 00 db 00h 7800:065c 00 db 00h 7800:065d 00 db 00h 7800:065e 02 db 02h 7800:065f 00 db 00h Left over from somewhere else? ------------------------------ 7800:0660 9c db 9ch 7800:0661 12 db 12h 7800:0662 64 db 64h ;'d' 7800:0663 47 db 47h ;'G' 7800:0664 01 db 01h 7800:0665 00 db 00h 7800:0666 20 db 20h ;' ' 7800:0667 20 db 20h ;' ' 7800:0668 20 db 20h ;' ' 7800:0669 20 db 20h ;' ' 7800:066a 20 db 20h ;' ' 7800:066b 20 db 20h ;' ' 7800:066c 20 db 20h ;' ' 7800:066d 41 db 41h ;'A' 7800:066e 63 db 63h ;'c' 7800:066f 6f db 6fh ;'o' 7800:0670 72 db 72h ;'r' 7800:0671 6e db 6eh ;'n' 7800:0672 20 db 20h ;' ' 7800:0673 44 db 44h ;'D' 7800:0674 4f db 4fh ;'O' 7800:0675 53 db 53h ;'S' 7800:0676 20 db 20h ;' ' 7800:0677 44 db 44h ;'D' 7800:0678 69 db 69h ;'i' 7800:0679 73 db 73h ;'s' 7800:067a 6b db 6bh ;'k' 7800:067b 20 db 20h ;' ' 7800:067c 4d db 4dh ;'M' 7800:067d 61 db 61h ;'a' 7800:067e 69 db 69h ;'i' 7800:067f 6e db 6eh ;'n' 7800:0680 74 db 74h ;'t' 7800:0681 65 db 65h ;'e' 7800:0682 6e db 6eh ;'n' 7800:0683 61 db 61h ;'a' 7800:0684 6e db 6eh ;'n' 7800:0685 63 db 63h ;'c' 7800:0686 65 db 65h ;'e' 7800:0687 20 db 20h ;' ' 7800:0688 50 db 50h ;'P' 7800:0689 72 db 72h ;'r' 7800:068a 6f db 6fh ;'o' 7800:068b 67 db 67h ;'g' 7800:068c 72 db 72h ;'r' 7800:068d 61 db 61h ;'a' 7800:068e 6d db 6dh ;'m' 7800:068f 20 db 20h ;' ' 7800:0690 20 db 20h ;' ' 7800:0691 76 db 76h ;'v' 7800:0692 65 db 65h ;'e' 7800:0693 72 db 72h ;'r' 7800:0694 73 db 73h ;'s' 7800:0695 69 db 69h ;'i' 7800:0696 6f db 6fh ;'o' 7800:0697 6e db 6eh ;'n' 7800:0698 20 db 20h ;' ' 7800:0699 31 db 31h ;'1' 7800:069a 2e db 2eh ;'.' 7800:069b 30 db 30h ;'0' 7800:069c 31 db 31h ;'1' 7800:069d 20 db 20h ;' ' 7800:069e 20 db 20h ;' ' 7800:069f 20 db 20h ;' ' 7800:06a0 00 db 00h 7800:06a1 00 db 00h 7800:06a2 59 db 59h ;'Y' 7800:06a3 65 db 65h ;'e' 7800:06a4 73 db 73h ;'s' 7800:06a5 00 db 00h 7800:06a6 4e db 4eh ;'N' 7800:06a7 6f db 6fh ;'o' 7800:06a8 00 db 00h 7800:06a9 00 db 00h 7800:06aa 56 db 56h ;'V' 7800:06ab 45 db 45h ;'E' 7800:06ac 52 db 52h ;'R' 7800:06ad 49 db 49h ;'I' 7800:06ae 46 db 46h ;'F' 7800:06af 59 db 59h ;'Y' 7800:06b0 20 db 20h ;' ' 7800:06b1 41 db 41h ;'A' 7800:06b2 20 db 20h ;' ' 7800:06b3 44 db 44h ;'D' 7800:06b4 49 db 49h ;'I' 7800:06b5 53 db 53h ;'S' 7800:06b6 4b db 4bh ;'K' 7800:06b7 45 db 45h ;'E' 7800:06b8 54 db 54h ;'T' 7800:06b9 54 db 54h ;'T' 7800:06ba 45 db 45h ;'E' 7800:06bb 00 db 00h 7800:06bc 43 db 43h ;'C' 7800:06bd 4f db 4fh ;'O' 7800:06be 50 db 50h ;'P' 7800:06bf 59 db 59h ;'Y' 7800:06c0 20 db 20h ;' ' 7800:06c1 4f db 4fh ;'O' 7800:06c2 4e db 4eh ;'N' 7800:06c3 45 db 45h ;'E' 7800:06c4 20 db 20h ;' ' 7800:06c5 44 db 44h ;'D' 7800:06c6 49 db 49h ;'I' 7800:06c7 53 db 53h ;'S' 7800:06c8 4b db 4bh ;'K' 7800:06c9 45 db 45h ;'E' 7800:06ca 54 db 54h ;'T' 7800:06cb 54 db 54h ;'T' 7800:06cc 45 db 45h ;'E' 7800:06cd 20 db 20h ;' ' 7800:06ce 54 db 54h ;'T' 7800:06cf 4f db 4fh ;'O' 7800:06d0 20 db 20h ;' ' 7800:06d1 41 db 41h ;'A' 7800:06d2 4e db 4eh ;'N' 7800:06d3 4f db 4fh ;'O' 7800:06d4 54 db 54h ;'T' 7800:06d5 48 db 48h ;'H' 7800:06d6 45 db 45h ;'E' 7800:06d7 52 db 52h ;'R' 7800:06d8 00 db 00h 7800:06d9 00 db 00h 7800:06da 46 db 46h ;'F' 7800:06db 4f db 4fh ;'O' 7800:06dc 52 db 52h ;'R' 7800:06dd 4d db 4dh ;'M' 7800:06de 41 db 41h ;'A' 7800:06df 54 db 54h ;'T' 7800:06e0 20 db 20h ;' ' 7800:06e1 41 db 41h ;'A' 7800:06e2 20 db 20h ;' ' 7800:06e3 44 db 44h ;'D' 7800:06e4 49 db 49h ;'I' 7800:06e5 53 db 53h ;'S' 7800:06e6 4b db 4bh ;'K' 7800:06e7 45 db 45h ;'E' 7800:06e8 54 db 54h ;'T' 7800:06e9 54 db 54h ;'T' 7800:06ea 45 db 45h ;'E' 7800:06eb 00 db 00h 7800:06ec 53 db 53h ;'S' 7800:06ed 45 db 45h ;'E' 7800:06ee 4c db 4ch ;'L' 7800:06ef 45 db 45h ;'E' 7800:06f0 43 db 43h ;'C' 7800:06f1 54 db 54h ;'T' 7800:06f2 20 db 20h ;' ' 7800:06f3 4f db 4fh ;'O' 7800:06f4 50 db 50h ;'P' 7800:06f5 54 db 54h ;'T' 7800:06f6 49 db 49h ;'I' 7800:06f7 4f db 4fh ;'O' 7800:06f8 4e db 4eh ;'N' 7800:06f9 00 db 00h 7800:06fa 56 db 56h ;'V' 7800:06fb 65 db 65h ;'e' 7800:06fc 72 db 72h ;'r' 7800:06fd 69 db 69h ;'i' 7800:06fe 66 db 66h ;'f' 7800:06ff 79 db 79h ;'y' 7800:0700 20 db 20h ;' ' 7800:0701 44 db 44h ;'D' 7800:0702 69 db 69h ;'i' 7800:0703 73 db 73h ;'s' 7800:0704 6b db 6bh ;'k' 7800:0705 65 db 65h ;'e' 7800:0706 74 db 74h ;'t' 7800:0707 74 db 74h ;'t' 7800:0708 65 db 65h ;'e' 7800:0709 00 db 00h 7800:070a 43 db 43h ;'C' 7800:070b 6f db 6fh ;'o' 7800:070c 70 db 70h ;'p' 7800:070d 79 db 79h ;'y' 7800:070e 20 db 20h ;' ' 7800:070f 44 db 44h ;'D' 7800:0710 69 db 69h ;'i' 7800:0711 73 db 73h ;'s' 7800:0712 6b db 6bh ;'k' 7800:0713 65 db 65h ;'e' 7800:0714 74 db 74h ;'t' 7800:0715 74 db 74h ;'t' 7800:0716 65 db 65h ;'e' 7800:0717 00 db 00h 7800:0718 46 db 46h ;'F' 7800:0719 6f db 6fh ;'o' 7800:071a 72 db 72h ;'r' 7800:071b 6d db 6dh ;'m' 7800:071c 61 db 61h ;'a' 7800:071d 74 db 74h ;'t' 7800:071e 20 db 20h ;' ' 7800:071f 44 db 44h ;'D' 7800:0720 69 db 69h ;'i' 7800:0721 73 db 73h ;'s' 7800:0722 6b db 6bh ;'k' 7800:0723 65 db 65h ;'e' 7800:0724 74 db 74h ;'t' 7800:0725 74 db 74h ;'t' 7800:0726 65 db 65h ;'e' 7800:0727 00 db 00h 7800:0728 45 db 45h ;'E' 7800:0729 78 db 78h ;'x' 7800:072a 69 db 69h ;'i' 7800:072b 74 db 74h ;'t' 7800:072c 20 db 20h ;' ' 7800:072d 74 db 74h ;'t' 7800:072e 6f db 6fh ;'o' 7800:072f 20 db 20h ;' ' 7800:0730 44 db 44h ;'D' 7800:0731 4f db 4fh ;'O' 7800:0732 53 db 53h ;'S' 7800:0733 00 db 00h 7800:0734 53 db 53h ;'S' 7800:0735 65 db 65h ;'e' 7800:0736 6c db 6ch ;'l' 7800:0737 65 db 65h ;'e' 7800:0738 63 db 63h ;'c' 7800:0739 74 db 74h ;'t' 7800:073a 20 db 20h ;' ' 7800:073b 64 db 64h ;'d' 7800:073c 69 db 69h ;'i' 7800:073d 73 db 73h ;'s' 7800:073e 6b db 6bh ;'k' 7800:073f 65 db 65h ;'e' 7800:0740 74 db 74h ;'t' 7800:0741 74 db 74h ;'t' 7800:0742 65 db 65h ;'e' 7800:0743 20 db 20h ;' ' 7800:0744 74 db 74h ;'t' 7800:0745 6f db 6fh ;'o' 7800:0746 20 db 20h ;' ' 7800:0747 76 db 76h ;'v' 7800:0748 65 db 65h ;'e' 7800:0749 72 db 72h ;'r' 7800:074a 69 db 69h ;'i' 7800:074b 66 db 66h ;'f' 7800:074c 79 db 79h ;'y' 7800:074d 3a db 3ah ;':' 7800:074e 00 db 00h 7800:074f 00 db 00h 7800:0750 56 db 56h ;'V' 7800:0751 65 db 65h ;'e' 7800:0752 72 db 72h ;'r' 7800:0753 69 db 69h ;'i' 7800:0754 66 db 66h ;'f' 7800:0755 79 db 79h ;'y' 7800:0756 20 db 20h ;' ' 7800:0757 6f db 6fh ;'o' 7800:0758 6e db 6eh ;'n' 7800:0759 20 db 20h ;' ' 7800:075a 64 db 64h ;'d' 7800:075b 72 db 72h ;'r' 7800:075c 69 db 69h ;'i' 7800:075d 76 db 76h ;'v' 7800:075e 65 db 65h ;'e' 7800:075f 20 db 20h ;' ' 7800:0760 41 db 41h ;'A' 7800:0761 00 db 00h 7800:0762 56 db 56h ;'V' 7800:0763 65 db 65h ;'e' 7800:0764 72 db 72h ;'r' 7800:0765 69 db 69h ;'i' 7800:0766 66 db 66h ;'f' 7800:0767 79 db 79h ;'y' 7800:0768 20 db 20h ;' ' 7800:0769 6f db 6fh ;'o' 7800:076a 6e db 6eh ;'n' 7800:076b 20 db 20h ;' ' 7800:076c 64 db 64h ;'d' 7800:076d 72 db 72h ;'r' 7800:076e 69 db 69h ;'i' 7800:076f 76 db 76h ;'v' 7800:0770 65 db 65h ;'e' 7800:0771 20 db 20h ;' ' 7800:0772 42 db 42h ;'B' 7800:0773 00 db 00h 7800:0774 45 db 45h ;'E' 7800:0775 78 db 78h ;'x' 7800:0776 69 db 69h ;'i' 7800:0777 74 db 74h ;'t' 7800:0778 20 db 20h ;' ' 7800:0779 74 db 74h ;'t' 7800:077a 6f db 6fh ;'o' 7800:077b 20 db 20h ;' ' 7800:077c 6d db 6dh ;'m' 7800:077d 61 db 61h ;'a' 7800:077e 69 db 69h ;'i' 7800:077f 6e db 6eh ;'n' 7800:0780 20 db 20h ;' ' 7800:0781 6d db 6dh ;'m' 7800:0782 65 db 65h ;'e' 7800:0783 6e db 6eh ;'n' 7800:0784 75 db 75h ;'u' 7800:0785 00 db 00h 7800:0786 56 db 56h ;'V' 7800:0787 65 db 65h ;'e' 7800:0788 72 db 72h ;'r' 7800:0789 69 db 69h ;'i' 7800:078a 66 db 66h ;'f' 7800:078b 79 db 79h ;'y' 7800:078c 69 db 69h ;'i' 7800:078d 6e db 6eh ;'n' 7800:078e 67 db 67h ;'g' 7800:078f 20 db 20h ;' ' 7800:0790 54 db 54h ;'T' 7800:0791 72 db 72h ;'r' 7800:0792 61 db 61h ;'a' 7800:0793 63 db 63h ;'c' 7800:0794 6b db 6bh ;'k' 7800:0795 20 db 20h ;' ' 7800:0796 00 db 00h 7800:0797 00 db 00h 7800:0798 49 db 49h ;'I' 7800:0799 6e db 6eh ;'n' 7800:079a 73 db 73h ;'s' 7800:079b 65 db 65h ;'e' 7800:079c 72 db 72h ;'r' 7800:079d 74 db 74h ;'t' 7800:079e 20 db 20h ;' ' 7800:079f 64 db 64h ;'d' 7800:07a0 69 db 69h ;'i' 7800:07a1 73 db 73h ;'s' 7800:07a2 6b db 6bh ;'k' 7800:07a3 20 db 20h ;' ' 7800:07a4 69 db 69h ;'i' 7800:07a5 6e db 6eh ;'n' 7800:07a6 74 db 74h ;'t' 7800:07a7 6f db 6fh ;'o' 7800:07a8 20 db 20h ;' ' 7800:07a9 73 db 73h ;'s' 7800:07aa 6f db 6fh ;'o' 7800:07ab 75 db 75h ;'u' 7800:07ac 72 db 72h ;'r' 7800:07ad 63 db 63h ;'c' 7800:07ae 65 db 65h ;'e' 7800:07af 20 db 20h ;' ' 7800:07b0 64 db 64h ;'d' 7800:07b1 72 db 72h ;'r' 7800:07b2 69 db 69h ;'i' 7800:07b3 76 db 76h ;'v' 7800:07b4 65 db 65h ;'e' 7800:07b5 20 db 20h ;' ' 7800:07b6 61 db 61h ;'a' 7800:07b7 6e db 6eh ;'n' 7800:07b8 64 db 64h ;'d' 7800:07b9 20 db 20h ;' ' 7800:07ba 73 db 73h ;'s' 7800:07bb 65 db 65h ;'e' 7800:07bc 6c db 6ch ;'l' 7800:07bd 65 db 65h ;'e' 7800:07be 63 db 63h ;'c' 7800:07bf 74 db 74h ;'t' 7800:07c0 20 db 20h ;' ' 7800:07c1 69 db 69h ;'i' 7800:07c2 74 db 74h ;'t' 7800:07c3 3a db 3ah ;':' 7800:07c4 00 db 00h 7800:07c5 00 db 00h 7800:07c6 43 db 43h ;'C' 7800:07c7 6f db 6fh ;'o' 7800:07c8 70 db 70h ;'p' 7800:07c9 79 db 79h ;'y' 7800:07ca 20 db 20h ;' ' 7800:07cb 66 db 66h ;'f' 7800:07cc 72 db 72h ;'r' 7800:07cd 6f db 6fh ;'o' 7800:07ce 6d db 6dh ;'m' 7800:07cf 20 db 20h ;' ' 7800:07d0 64 db 64h ;'d' 7800:07d1 72 db 72h ;'r' 7800:07d2 69 db 69h ;'i' 7800:07d3 76 db 76h ;'v' 7800:07d4 65 db 65h ;'e' 7800:07d5 20 db 20h ;' ' 7800:07d6 41 db 41h ;'A' 7800:07d7 00 db 00h 7800:07d8 43 db 43h ;'C' 7800:07d9 6f db 6fh ;'o' 7800:07da 70 db 70h ;'p' 7800:07db 79 db 79h ;'y' 7800:07dc 20 db 20h ;' ' 7800:07dd 66 db 66h ;'f' 7800:07de 72 db 72h ;'r' 7800:07df 6f db 6fh ;'o' 7800:07e0 6d db 6dh ;'m' 7800:07e1 20 db 20h ;' ' 7800:07e2 64 db 64h ;'d' 7800:07e3 72 db 72h ;'r' 7800:07e4 69 db 69h ;'i' 7800:07e5 76 db 76h ;'v' 7800:07e6 65 db 65h ;'e' 7800:07e7 20 db 20h ;' ' 7800:07e8 42 db 42h ;'B' 7800:07e9 00 db 00h 7800:07ea 49 db 49h ;'I' 7800:07eb 6e db 6eh ;'n' 7800:07ec 73 db 73h ;'s' 7800:07ed 65 db 65h ;'e' 7800:07ee 72 db 72h ;'r' 7800:07ef 74 db 74h ;'t' 7800:07f0 20 db 20h ;' ' 7800:07f1 64 db 64h ;'d' 7800:07f2 69 db 69h ;'i' 7800:07f3 73 db 73h ;'s' 7800:07f4 6b db 6bh ;'k' 7800:07f5 20 db 20h ;' ' 7800:07f6 69 db 69h ;'i' 7800:07f7 6e db 6eh ;'n' 7800:07f8 74 db 74h ;'t' 7800:07f9 6f db 6fh ;'o' 7800:07fa 20 db 20h ;' ' 7800:07fb 64 db 64h ;'d' 7800:07fc 65 db 65h ;'e' 7800:07fd 73 db 73h ;'s' 7800:07fe 74 db 74h ;'t' 7800:07ff 69 db 69h ;'i' 7800:0800 6e db 6eh ;'n' 7800:0801 61 db 61h ;'a' 7800:0802 74 db 74h ;'t' 7800:0803 69 db 69h ;'i' 7800:0804 6f db 6fh ;'o' 7800:0805 6e db 6eh ;'n' 7800:0806 20 db 20h ;' ' 7800:0807 64 db 64h ;'d' 7800:0808 72 db 72h ;'r' 7800:0809 69 db 69h ;'i' 7800:080a 76 db 76h ;'v' 7800:080b 65 db 65h ;'e' 7800:080c 20 db 20h ;' ' 7800:080d 61 db 61h ;'a' 7800:080e 6e db 6eh ;'n' 7800:080f 64 db 64h ;'d' 7800:0810 20 db 20h ;' ' 7800:0811 73 db 73h ;'s' 7800:0812 65 db 65h ;'e' 7800:0813 6c db 6ch ;'l' 7800:0814 65 db 65h ;'e' 7800:0815 63 db 63h ;'c' 7800:0816 74 db 74h ;'t' 7800:0817 20 db 20h ;' ' 7800:0818 69 db 69h ;'i' 7800:0819 74 db 74h ;'t' 7800:081a 3a db 3ah ;':' 7800:081b 00 db 00h 7800:081c 43 db 43h ;'C' 7800:081d 6f db 6fh ;'o' 7800:081e 70 db 70h ;'p' 7800:081f 79 db 79h ;'y' 7800:0820 20 db 20h ;' ' 7800:0821 74 db 74h ;'t' 7800:0822 6f db 6fh ;'o' 7800:0823 20 db 20h ;' ' 7800:0824 64 db 64h ;'d' 7800:0825 72 db 72h ;'r' 7800:0826 69 db 69h ;'i' 7800:0827 76 db 76h ;'v' 7800:0828 65 db 65h ;'e' 7800:0829 20 db 20h ;' ' 7800:082a 41 db 41h ;'A' 7800:082b 00 db 00h 7800:082c 43 db 43h ;'C' 7800:082d 6f db 6fh ;'o' 7800:082e 70 db 70h ;'p' 7800:082f 79 db 79h ;'y' 7800:0830 20 db 20h ;' ' 7800:0831 74 db 74h ;'t' 7800:0832 6f db 6fh ;'o' 7800:0833 20 db 20h ;' ' 7800:0834 64 db 64h ;'d' 7800:0835 72 db 72h ;'r' 7800:0836 69 db 69h ;'i' 7800:0837 76 db 76h ;'v' 7800:0838 65 db 65h ;'e' 7800:0839 20 db 20h ;' ' 7800:083a 42 db 42h ;'B' 7800:083b 00 db 00h 7800:083c 53 db 53h ;'S' 7800:083d 6f db 6fh ;'o' 7800:083e 75 db 75h ;'u' 7800:083f 72 db 72h ;'r' 7800:0840 63 db 63h ;'c' 7800:0841 65 db 65h ;'e' 7800:0842 20 db 20h ;' ' 7800:0843 61 db 61h ;'a' 7800:0844 6e db 6eh ;'n' 7800:0845 64 db 64h ;'d' 7800:0846 20 db 20h ;' ' 7800:0847 64 db 64h ;'d' 7800:0848 65 db 65h ;'e' 7800:0849 73 db 73h ;'s' 7800:084a 74 db 74h ;'t' 7800:084b 69 db 69h ;'i' 7800:084c 6e db 6eh ;'n' 7800:084d 61 db 61h ;'a' 7800:084e 74 db 74h ;'t' 7800:084f 69 db 69h ;'i' 7800:0850 6f db 6fh ;'o' 7800:0851 6e db 6eh ;'n' 7800:0852 20 db 20h ;' ' 7800:0853 64 db 64h ;'d' 7800:0854 69 db 69h ;'i' 7800:0855 73 db 73h ;'s' 7800:0856 6b db 6bh ;'k' 7800:0857 65 db 65h ;'e' 7800:0858 74 db 74h ;'t' 7800:0859 74 db 74h ;'t' 7800:085a 65 db 65h ;'e' 7800:085b 73 db 73h ;'s' 7800:085c 20 db 20h ;' ' 7800:085d 6d db 6dh ;'m' 7800:085e 75 db 75h ;'u' 7800:085f 73 db 73h ;'s' 7800:0860 74 db 74h ;'t' 7800:0861 20 db 20h ;' ' 7800:0862 62 db 62h ;'b' 7800:0863 65 db 65h ;'e' 7800:0864 20 db 20h ;' ' 7800:0865 6f db 6fh ;'o' 7800:0866 66 db 66h ;'f' 7800:0867 20 db 20h ;' ' 7800:0868 74 db 74h ;'t' 7800:0869 68 db 68h ;'h' 7800:086a 65 db 65h ;'e' 7800:086b 20 db 20h ;' ' 7800:086c 73 db 73h ;'s' 7800:086d 61 db 61h ;'a' 7800:086e 6d db 6dh ;'m' 7800:086f 65 db 65h ;'e' 7800:0870 20 db 20h ;' ' 7800:0871 74 db 74h ;'t' 7800:0872 79 db 79h ;'y' 7800:0873 70 db 70h ;'p' 7800:0874 65 db 65h ;'e' 7800:0875 2e db 2eh ;'.' 7800:0876 00 db 00h 7800:0877 00 db 00h 7800:0878 48 db 48h ;'H' 7800:0879 69 db 69h ;'i' 7800:087a 74 db 74h ;'t' 7800:087b 20 db 20h ;' ' 7800:087c 61 db 61h ;'a' 7800:087d 6e db 6eh ;'n' 7800:087e 79 db 79h ;'y' 7800:087f 20 db 20h ;' ' 7800:0880 6b db 6bh ;'k' 7800:0881 65 db 65h ;'e' 7800:0882 79 db 79h ;'y' 7800:0883 20 db 20h ;' ' 7800:0884 74 db 74h ;'t' 7800:0885 6f db 6fh ;'o' 7800:0886 20 db 20h ;' ' 7800:0887 63 db 63h ;'c' 7800:0888 6f db 6fh ;'o' 7800:0889 6e db 6eh ;'n' 7800:088a 74 db 74h ;'t' 7800:088b 69 db 69h ;'i' 7800:088c 6e db 6eh ;'n' 7800:088d 75 db 75h ;'u' 7800:088e 65 db 65h ;'e' 7800:088f 00 db 00h 7800:0890 52 db 52h ;'R' 7800:0891 65 db 65h ;'e' 7800:0892 61 db 61h ;'a' 7800:0893 64 db 64h ;'d' 7800:0894 69 db 69h ;'i' 7800:0895 6e db 6eh ;'n' 7800:0896 67 db 67h ;'g' 7800:0897 20 db 20h ;' ' 7800:0898 54 db 54h ;'T' 7800:0899 72 db 72h ;'r' 7800:089a 61 db 61h ;'a' 7800:089b 63 db 63h ;'c' 7800:089c 6b db 6bh ;'k' 7800:089d 20 db 20h ;' ' 7800:089e 00 db 00h 7800:089f 00 db 00h 7800:08a0 57 db 57h ;'W' 7800:08a1 72 db 72h ;'r' 7800:08a2 69 db 69h ;'i' 7800:08a3 74 db 74h ;'t' 7800:08a4 69 db 69h ;'i' 7800:08a5 6e db 6eh ;'n' 7800:08a6 67 db 67h ;'g' 7800:08a7 20 db 20h ;' ' 7800:08a8 26 db 26h ;'&' 7800:08a9 20 db 20h ;' ' 7800:08aa 56 db 56h ;'V' 7800:08ab 65 db 65h ;'e' 7800:08ac 72 db 72h ;'r' 7800:08ad 69 db 69h ;'i' 7800:08ae 66 db 66h ;'f' 7800:08af 79 db 79h ;'y' 7800:08b0 69 db 69h ;'i' 7800:08b1 6e db 6eh ;'n' 7800:08b2 67 db 67h ;'g' 7800:08b3 20 db 20h ;' ' 7800:08b4 54 db 54h ;'T' 7800:08b5 72 db 72h ;'r' 7800:08b6 61 db 61h ;'a' 7800:08b7 63 db 63h ;'c' 7800:08b8 6b db 6bh ;'k' 7800:08b9 20 db 20h ;' ' 7800:08ba 00 db 00h 7800:08bb 00 db 00h 7800:08bc 53 db 53h ;'S' 7800:08bd 65 db 65h ;'e' 7800:08be 6c db 6ch ;'l' 7800:08bf 65 db 65h ;'e' 7800:08c0 63 db 63h ;'c' 7800:08c1 74 db 74h ;'t' 7800:08c2 20 db 20h ;' ' 7800:08c3 64 db 64h ;'d' 7800:08c4 72 db 72h ;'r' 7800:08c5 69 db 69h ;'i' 7800:08c6 76 db 76h ;'v' 7800:08c7 65 db 65h ;'e' 7800:08c8 20 db 20h ;' ' 7800:08c9 74 db 74h ;'t' 7800:08ca 6f db 6fh ;'o' 7800:08cb 20 db 20h ;' ' 7800:08cc 66 db 66h ;'f' 7800:08cd 6f db 6fh ;'o' 7800:08ce 72 db 72h ;'r' 7800:08cf 6d db 6dh ;'m' 7800:08d0 61 db 61h ;'a' 7800:08d1 74 db 74h ;'t' 7800:08d2 3a db 3ah ;':' 7800:08d3 00 db 00h 7800:08d4 46 db 46h ;'F' 7800:08d5 6f db 6fh ;'o' 7800:08d6 72 db 72h ;'r' 7800:08d7 6d db 6dh ;'m' 7800:08d8 61 db 61h ;'a' 7800:08d9 74 db 74h ;'t' 7800:08da 20 db 20h ;' ' 7800:08db 6f db 6fh ;'o' 7800:08dc 6e db 6eh ;'n' 7800:08dd 20 db 20h ;' ' 7800:08de 64 db 64h ;'d' 7800:08df 72 db 72h ;'r' 7800:08e0 69 db 69h ;'i' 7800:08e1 76 db 76h ;'v' 7800:08e2 65 db 65h ;'e' 7800:08e3 20 db 20h ;' ' 7800:08e4 41 db 41h ;'A' 7800:08e5 00 db 00h 7800:08e6 46 db 46h ;'F' 7800:08e7 6f db 6fh ;'o' 7800:08e8 72 db 72h ;'r' 7800:08e9 6d db 6dh ;'m' 7800:08ea 61 db 61h ;'a' 7800:08eb 74 db 74h ;'t' 7800:08ec 20 db 20h ;' ' 7800:08ed 6f db 6fh ;'o' 7800:08ee 6e db 6eh ;'n' 7800:08ef 20 db 20h ;' ' 7800:08f0 64 db 64h ;'d' 7800:08f1 72 db 72h ;'r' 7800:08f2 69 db 69h ;'i' 7800:08f3 76 db 76h ;'v' 7800:08f4 65 db 65h ;'e' 7800:08f5 20 db 20h ;' ' 7800:08f6 42 db 42h ;'B' 7800:08f7 00 db 00h 7800:08f8 46 db 46h ;'F' 7800:08f9 6f db 6fh ;'o' 7800:08fa 72 db 72h ;'r' 7800:08fb 6d db 6dh ;'m' 7800:08fc 61 db 61h ;'a' 7800:08fd 74 db 74h ;'t' 7800:08fe 74 db 74h ;'t'