pushed updates
This commit is contained in:
4564
OperatingSystem/basic/include/basic.s
Normal file
4564
OperatingSystem/basic/include/basic.s
Normal file
File diff suppressed because it is too large
Load Diff
1
OperatingSystem/basic/include/extern_symbols.s
Symbolic link
1
OperatingSystem/basic/include/extern_symbols.s
Symbolic link
@@ -0,0 +1 @@
|
||||
../../monitor_v2/zout/symbols.s
|
||||
5
OperatingSystem/basic/properties.env
Normal file
5
OperatingSystem/basic/properties.env
Normal file
@@ -0,0 +1,5 @@
|
||||
export OPT_GEN_SYMBOLTABLE=0
|
||||
export OPT_GEN_MONFILE=1
|
||||
export OPT_GEN_OBJFILE=1
|
||||
export OPT_WRITEROM=0
|
||||
export FILENAME=test
|
||||
93
OperatingSystem/basic/test.asm
Normal file
93
OperatingSystem/basic/test.asm
Normal file
@@ -0,0 +1,93 @@
|
||||
.include "extern_symbols.s" ;include monitor symbols.
|
||||
START_ADDR .EQU 0x8000
|
||||
|
||||
|
||||
org START_ADDR
|
||||
com_header:
|
||||
jp com_prg
|
||||
db 0x00
|
||||
dw 0x00, 0x00, 0x00 ;always 0
|
||||
dw [START_ADDR] ;start addr
|
||||
dw [_eof] ;end of file
|
||||
dw [_eof - START_ADDR] ;length
|
||||
dc 48,0x00
|
||||
|
||||
com_prg:
|
||||
;shadow rom
|
||||
call B_PRINTINLINE
|
||||
db 10,13,"Shadowing ROM @ 0x0000-0x3FFF ...",10,13,0
|
||||
ld a,0x01 ;set bit1 to switch to ram
|
||||
out (0x00),a ;store to bank select register
|
||||
ld hl,[prg_start]
|
||||
ld de,0
|
||||
ld bc,[prg_end-prg_start]
|
||||
ldir
|
||||
jp 0x0000
|
||||
|
||||
|
||||
prg_start:
|
||||
phase 0x0000
|
||||
|
||||
BASRST_00: ;Hardware Restart
|
||||
jp CSTART
|
||||
defs 5
|
||||
;org 0x0008
|
||||
BASRST_08 ;Print Char
|
||||
jp _BASRST_08
|
||||
defs 5
|
||||
;org 0x0010
|
||||
BASRST_10 ;receive char
|
||||
jp _BASRST_10
|
||||
defs 5
|
||||
;org 0x0018
|
||||
BASRST_18 ;Buffer length
|
||||
jp _BASRST_18
|
||||
defs 5
|
||||
;org 0x0044
|
||||
|
||||
_BASRST_08:
|
||||
out (CS_SIO_A_D),a
|
||||
_wait:
|
||||
ld a,1
|
||||
out (CS_SIO_A_C),A
|
||||
in A,(CS_SIO_A_C) ;read RRx
|
||||
bit 0,A
|
||||
jr z,_wait
|
||||
ret
|
||||
|
||||
_BASRST_10:
|
||||
;RTS ON
|
||||
ld a,005h ;write into WR0: select WR5
|
||||
out (CS_SIO_A_C),A
|
||||
ld a,0EAh ;DTR active, TX 8bit, BREAK off, TX on, RTS active
|
||||
out (CS_SIO_A_C),A
|
||||
nop
|
||||
;read if avail
|
||||
xor a ; a = 0
|
||||
out (CS_SIO_A_C), a ; select reg 0
|
||||
in a, (CS_SIO_A_C) ; read reg 0
|
||||
and 1 ; mask D0 (recieve char available)
|
||||
;RTS OFF
|
||||
push af
|
||||
ld a,005h ;write into WR0: select WR5
|
||||
out (CS_SIO_A_C),A
|
||||
ld a,068h ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive
|
||||
out (CS_SIO_A_C),A
|
||||
pop af
|
||||
ret Z ; return 0 if no char
|
||||
;read data
|
||||
in a, (CS_SIO_A_D) ; read char if avail
|
||||
ret ; return
|
||||
|
||||
_BASRST_18:
|
||||
ld a,0
|
||||
ret
|
||||
|
||||
BASSTART:
|
||||
.include "basic.s"
|
||||
_WORKSPACE:
|
||||
|
||||
dephase
|
||||
prg_end:
|
||||
|
||||
_eof:
|
||||
BIN
OperatingSystem/basic/zout/HELLORD.COM
Normal file
BIN
OperatingSystem/basic/zout/HELLORD.COM
Normal file
Binary file not shown.
BIN
OperatingSystem/basic/zout/test.bin
Normal file
BIN
OperatingSystem/basic/zout/test.bin
Normal file
Binary file not shown.
487
OperatingSystem/basic/zout/test.hex
Normal file
487
OperatingSystem/basic/zout/test.hex
Normal file
@@ -0,0 +1,487 @@
|
||||
:10800000C340800000000000000000805E9E5E1EF5
|
||||
:108010000000000000000000000000000000000060
|
||||
:108020000000000000000000000000000000000050
|
||||
:108030000000000000000000000000000000000040
|
||||
:10804000CDD0010A0D536861646F77696E67205265
|
||||
:108050004F4D2040203078303030302D307833464E
|
||||
:108060004646202E2E2E0A0D003E01D300217B8095
|
||||
:1080700011000001E31DEDB0C30000C35A00000071
|
||||
:10808000000000C320000000000000C32D0000001D
|
||||
:10809000000000C34B000000000000D3083E01D3E5
|
||||
:1080A00009DB09CB4728F6C93E05D3093EEAD309C7
|
||||
:1080B00000AFD309DB09E601F53E05D3093E68D3DD
|
||||
:1080C00009F1C8DB08C93E00C9C35A00C3DD000579
|
||||
:1080D0000109D210C021E31DF9AF32301E211E0369
|
||||
:1080E000015A0011E31DEDB0EBF9CD2605CD190BBA
|
||||
:1080F00032841E32D31E21371F237CB5CAA2007ED4
|
||||
:10810000472F77BE70CA7E00C3A200CD1B09B7C23D
|
||||
:10811000EB03EB2B3ED94677BE70C27B002B1136AA
|
||||
:108120001F7C9220027D93DA7B0011CEFF22891EF4
|
||||
:108130001922341ECD01052A341E11EFFF1911D367
|
||||
:108140001E7D936F7C9A67E521F500CD0212E1CD8B
|
||||
:10815000CF1821E600CD021231401ECD2605C339CD
|
||||
:108160000420427974657320667265650D0A00000B
|
||||
:108170005A38302042415349432056657220342EEC
|
||||
:1081800037630D0A436F70797269676874202843FA
|
||||
:10819000292031393738206279204D6963726F7335
|
||||
:1081A0006F66740D0A4D6F64696669656420666F59
|
||||
:1081B00072205A38432062792044656E6E697320BC
|
||||
:1081C00047756E69610D0A00004D656D6F7279200B
|
||||
:1081D000746F70004E1704186417E61DB0105E141B
|
||||
:1081E000DE10DC19D51AE415371A631B691BCF1B87
|
||||
:1081F000E91BB214551C8B13821125149A13AB136F
|
||||
:10820000EE1C811DBB13EB13F513C54E44C64F5234
|
||||
:10821000CE455854C4415441C94E505554C4494D9B
|
||||
:10822000D2454144CC4554C74F544FD2554EC94610
|
||||
:10823000D24553544F5245C74F535542D2455455DA
|
||||
:10824000524ED2454DD3544F50CF5554CF4ECE55AC
|
||||
:108250004C4CD7414954C44546D04F4B45C44F4B75
|
||||
:1082600045CC494E4553C34C53D749445448CD4F50
|
||||
:108270004E49544F52D245534554D052494E54C39F
|
||||
:108280004F4E54CC495354C34C454152C84C4F41B6
|
||||
:1082900044CE4557D4414228D44FC64ED3504328EC
|
||||
:1082A000D448454ECE4F54D3544550ABADAAAFDE63
|
||||
:1082B000C14E44CF52BEBDBCD3474EC94E54C1423D
|
||||
:1082C00053D55352C65245C94E50D04F53D3515235
|
||||
:1082D000D24E44CC4F47C55850C34F53D3494ED4C8
|
||||
:1082E000414EC1544ED045454BC445454BCC454EFF
|
||||
:1082F000D3545224D6414CC15343C3485224C84599
|
||||
:108300005824C2494E24CC45465424D249474854A7
|
||||
:1083100024CD4944248099088D079B0CF0099A0BC1
|
||||
:10832000F00EC90B070AAA098D09970A5E08990978
|
||||
:10833000CB09F20997086A14790AD8087014E61074
|
||||
:10834000B914601C461C381C3E1C351C5900BB0A65
|
||||
:10835000C50804074409771C000579B61879D714B5
|
||||
:108360007C23167C8E167FED1950440E46430E4E2C
|
||||
:1083700046534E52474F4446434F564F4D554C423D
|
||||
:108380005344442F304944544D4F534C535354435A
|
||||
:108390004E55464D4F4858424EC3DD00C31609D3D3
|
||||
:1083A00000C9D6006F7CDE006778DE00473E00C95A
|
||||
:1083B000000000354ACA99391C76982295B3980A6C
|
||||
:1083C000DD479853D199990A1A9F9865BCCD98D6E4
|
||||
:1083D000773E9852C74F80DB00C901FF1C00001494
|
||||
:1083E00000140000000000C33906371FFEFFD41E32
|
||||
:1083F00003204572726F720020696E20004F6B0D72
|
||||
:108400000A0000427265616B00210400397E23FE80
|
||||
:1084100081C04E234623E569607AB3EBCAAB03EB18
|
||||
:108420007C9220027D93010D00E1C809C39203CD27
|
||||
:10843000D103C5E3C17C9220027D937E02C80B2B41
|
||||
:10844000C3BA03E52AB41E060009093EE53ED095ED
|
||||
:108450006F3EFF9CDAE0036739E1D81E0CC3FF03CF
|
||||
:108460002AA31E22361E1E02011E14011E00011E1A
|
||||
:1084700012011E22011E0A011E18CD260532281ED9
|
||||
:10848000CD0C0B21F402573E3FCDC706197ECDC758
|
||||
:1084900006CD4F08CDC706217603CD02122A361E1F
|
||||
:1084A00011FEFF7C9220027D93CA5A007CA53CC439
|
||||
:1084B000C7183EC1AF32281ECD0C0B218203CD025E
|
||||
:1084C0001221FFFF22361ECD311EDA4604CD4F08A1
|
||||
:1084D0003C3DCA4604F5CD1B09D5CD500547D1F129
|
||||
:1084E000D22F08D5C5AF32A61ECD4F08B7F5CDDDCA
|
||||
:1084F00004DA7F04F1F5CAC609B7C5D29904EB2A9C
|
||||
:10850000B01E1A0203137C9220027D93C28704607E
|
||||
:108510006922B01ED1F1CAC0042AB01EE3C109E528
|
||||
:10852000CDB403E122B01EEB74D123237323722355
|
||||
:10853000113B1E1A772313B7C2B804CD0C0523EBE9
|
||||
:10854000626B7E23B6CA4604232323AFBE23C2D167
|
||||
:1085500004EB732372C3C5042A381E444D7E23B630
|
||||
:108560002BC823237E23666F7C9220027D93606953
|
||||
:108570007E23666F3FC83FD0C3E004C02A381EAFD9
|
||||
:108580007723772322B01E2A381E2B22A81E2A8981
|
||||
:108590001E229D1EAFCD5E082AB01E22B21E22B43E
|
||||
:1085A0001EC12A341EF9218D1E228B1EAF6F672239
|
||||
:1085B000AE1E32A51E22B81EE5C52AA81EC93E3F22
|
||||
:1085C000CDC7063E20CDC706C3311EAF32881E0E72
|
||||
:1085D00005113B1E7EFE20CAD80547FE22CAF805BB
|
||||
:1085E000B7CAFF053A881EB77EC2D805FE3F3E9C3B
|
||||
:1085F000CAD8057EFE30DA8305FE3CDAD805D511EF
|
||||
:108600008E01C501D405C5067F7EFE61DA9C05FE9C
|
||||
:108610007BD29C05E65F774EEB23B6F29E05047E87
|
||||
:10862000E67FC8B9C29E05EBE5131AB7FAD0054F2D
|
||||
:1086300078FE88C2BF05CD4F082B237EFE61DAC8C5
|
||||
:1086400005E65FB9CAAE05E1C39C0548F1EBC9EB8D
|
||||
:1086500079C1D12312130CD63ACAE605FE49C2E904
|
||||
:108660000532881ED654C25905477EB7CAFF05B8E1
|
||||
:10867000CAD80523120C13C3EF05213A1E12131298
|
||||
:108680001312C93A271EB73E0032271EC21C060528
|
||||
:10869000CA311ECDC7063E052BCA30067ECDC706A1
|
||||
:1086A000C34206052BCDC706C24206CDC706CD196B
|
||||
:1086B0000BC3311E213B1E0601AF32271ECDF5062E
|
||||
:1086C0004FFE7FCA08063A271EB7CA5B063E00CD9A
|
||||
:1086D000C706AF32271E79FE07CA9F06FE03CC19D4
|
||||
:1086E0000B37C8FE0DCA140BFE15CA3306FE40CA6E
|
||||
:1086F0003006FE5FCA2806FE08CA2806FE12C29A85
|
||||
:1087000006C5D5E53600CDEF06213B1ECD0212E1B0
|
||||
:10871000D1C1C34206FE20DA420678FE493E07D2A6
|
||||
:10872000B406797132A61E2304CDC706C34206CD16
|
||||
:10873000C7063E08C3AE067EE3BE23E3CA4F08C3A6
|
||||
:10874000EB03F53A281EB7C23A12F1C5F5FE20DA5E
|
||||
:10875000EB063A251E473A851E04CAE70605B8CC43
|
||||
:10876000190B3C32851EF1C1CFC9CDC706C3190B09
|
||||
:10877000D7E67FFE0FC03A281E2F32281EAFC9CD84
|
||||
:108780001B09C0C1CDDD04C5CD5A07E14E234623E8
|
||||
:1087900078B1CA3904CD6307CD7908C5CD190B5E10
|
||||
:1087A000235623E5EBCDCF183E20E1CDC7067EB79B
|
||||
:1087B00023CA1007F23007D67F4F118F011A13B763
|
||||
:1087C000F242070DC24207E67FCDC7061A13B7F281
|
||||
:1087D0004C07C33307E52A2B1E22291EE1C9E5D524
|
||||
:1087E0002A291E11FFFFED5A22291ED1E1F0E52AA8
|
||||
:1087F0002B1E22291ED7FE03CA8407E1C363072A62
|
||||
:108800002B1E22291EC3E0003E6432A51ECD070A9E
|
||||
:10881000C1E5CDF00922A11E21020039CD9203D17C
|
||||
:10882000C2C10709D52B562B5E2323E52AA11E7C46
|
||||
:1088300092C2BB077D93E1C2A107D1F9EB0E08CD2F
|
||||
:10884000C803E52AA11EE3E52A361EE3CDF90CCDC7
|
||||
:10885000BC06A3CDF60CED5BBE1EED4BC01EC5D510
|
||||
:10886000010081515A7EFEA83E01C20308CD4F0887
|
||||
:10887000CDF60CED5BBE1EED4BC01ECD3F17C5D532
|
||||
:10888000F533E52AA81EE30681C533CD790822A871
|
||||
:108890001E7EFE3ACA2F08B7C2EB03237E23B6CA58
|
||||
:1088A000A108235E2356ED53361ECD4F0811100844
|
||||
:1088B000D5C8D680DA070AFE22D2EB03074F06009E
|
||||
:1088C000EB219B02094E2346C5EB237EFE3AD0FEE8
|
||||
:1088D0002028F7FE303F3C3DC9EB2A381ECA7308FA
|
||||
:1088E000EBCD1B09E5CDDD046069D1D2C6092B2291
|
||||
:1088F000B61EEBC9DFB7C8D7FE1B2811FE03280D33
|
||||
:10890000FE13C0D7FE11C8FE03280718F63EFF323B
|
||||
:10891000301EC0F6C022A81E21F6FFC12A361EF561
|
||||
:108920007DA43CCAB40822AC1E2AA81E22AE1EAFEB
|
||||
:1089300032281ECD0C0BF1218803C21F04C3390459
|
||||
:108940002AAE1E7CB51E20CAFF03EB2AAC1E2236BF
|
||||
:108950001EEBC9CDA114C032241EC9E52A2D1E0666
|
||||
:10896000004F09222D1EE1C97EFE41D8FE5B3FC9A2
|
||||
:10897000CD4F08CDF60CCD3F17FA16093AC11EFEB1
|
||||
:1089800090DAD417018090110000E5CDA717E151CE
|
||||
:10899000C81E08C3FF032B110000CD4F08D0E5F51A
|
||||
:1089A0002198197C92C22F097D93DAEB03626B192F
|
||||
:1089B000291929F1D6305F160019EBE1C31F09CA46
|
||||
:1089C0001005CDF8082BCD4F08E52A891ECA670986
|
||||
:1089D000E1CDBC062CD5CDF8082BCD4F08C2EB035A
|
||||
:1089E000E3EB7D935F7C9A57DAE003E52AB01E0142
|
||||
:1089F0002800097C9220027D93D2E003EB22341EF2
|
||||
:108A0000E122891EE1C31005CA0C05CD1005011035
|
||||
:108A100008C3A9090E03CDC803C1E5E52A361EE344
|
||||
:108A20003E8CF533C5CD1B09CDF209E52A361E7CF7
|
||||
:108A30009220027D93E123DCE004D4DD0460692B05
|
||||
:108A4000D81E0EC3FF03C016FFCD8E03F9FE8C1E89
|
||||
:108A500004C2FF03E122361E237CB5C2EA093AA60E
|
||||
:108A60001EB7C23804211008E33EE1013A0E0006A9
|
||||
:108A7000007948477EB7C8B8C823FE22CAF609C3A2
|
||||
:108A8000F909CDF50ECDBC06B1D53A871EF5CD0856
|
||||
:108A90000DF1E322A81E1FCDFB0CCA690AE52ABE10
|
||||
:108AA0001EE523235E23562A381E7C9220027D93E6
|
||||
:108AB000D2520A2A341E7C9220027D93D1D25A0AC5
|
||||
:108AC00021991E7C9220027D93D25A0A3ED1CD7705
|
||||
:108AD00013EBCD9211CD7713E1EBEDA0EDA0EDA05E
|
||||
:108AE000EDA0E1C9E511BE1EEBEDA0EDA0EDA0EDFE
|
||||
:108AF000A0D1E1C9CDA1147E47FE8CCA880ACDBCA5
|
||||
:108B000006882B4B0D78CA3708CD1C09FE2CC0C334
|
||||
:108B1000890ACD080D7EFE88CAA50ACDBC06A62B03
|
||||
:108B2000CDF90CCD3F17CAF209CD4F08DAAA09C317
|
||||
:108B300036082BCD4F08CA190BC8FEA2CA4C0BFE33
|
||||
:108B4000A5CA4C0BE5FE2CCA350BFE3BCA6F0BC108
|
||||
:108B5000CD080DE53A871EB7C2050BCDDA18CDB6A4
|
||||
:108B60001136202ABE1E342ABE1E3A251E4704CACC
|
||||
:108B7000010B043A851E863DB8D4190BCD0512AF02
|
||||
:108B8000C40512E1C3B70A3A851EB7C8C3190B362C
|
||||
:108B900000213A1E3E0DCDC7063E0ACDC706AF32B4
|
||||
:108BA000851E3A241E3DC8F5AFCDC706F1C32A0B7A
|
||||
:108BB0003A261E473A851EB8D4190BD26F0BD60E33
|
||||
:108BC000D2430B2FC3640BF5CD9E14CDBC06292BCD
|
||||
:108BD000F1D6A5E5CA5F0B3A851E2F83D26F0B3CF9
|
||||
:108BE000473E20CDC70605C2680BE1CD4F08C3BE86
|
||||
:108BF0000A3F5265646F2066726F6D2073746172F4
|
||||
:108C0000740D0A003AA71EB7C2E503C121760BCD49
|
||||
:108C10000212C33F05CD63117EFE223E0032281EA4
|
||||
:108C2000C2B40BCDB711CDBC063BE5CD05123EE578
|
||||
:108C3000CD4305C1DA9E08237EB72BC5CAEF09369E
|
||||
:108C40002CC3CE0BE52AB61EF6AF32A71EE3C3DA5D
|
||||
:108C50000BCDBC062CCDF50EE3D57EFE2CCA020C46
|
||||
:108C60003AA71EB7C2780C3E3FCDC706CD4305D10B
|
||||
:108C7000C1DA9E08237EB72BC5CAEF09D53A871EF5
|
||||
:108C8000B7CA2C0CCD4F085747FE22CA200C3AA772
|
||||
:108C90001EB757CA1D0C163A062C2BCDBA11EB2164
|
||||
:108CA000400CE3D5C3220ACD4F08CD3718E311BEDF
|
||||
:108CB0001EEBEDA0EDA0EDA0EDA0E12BCD4F08CA7D
|
||||
:108CC0004C0CFE2CC2890BE32BCD4F08C2D60BD126
|
||||
:108CD0003AA71EB7EBC27408D5B621670CC40212BE
|
||||
:108CE000E1C93F45787472612069676E6F7265648F
|
||||
:108CF0000D0A00CDF009B7C2900C237E23B61E06E4
|
||||
:108D0000CAFF03235E2356ED53A31ECD4F08FE83F7
|
||||
:108D1000C2780CC3020C110000C4F50E22A81ECDAF
|
||||
:108D20008E03C2F103F9D57E23F5D511BE1EEDA049
|
||||
:108D3000EDA0EDA0EDA0E3E5CDCD14D121BE1EED5B
|
||||
:108D4000A0EDA0EDA0EDA0E1CD8917E5CDA717E13D
|
||||
:108D5000C190CD8917CAE60CEB22361E6960C30CA0
|
||||
:108D600008F92AA81E7EFE2CC21008CD4F08CD9E01
|
||||
:108D70000CCD080DF6373A871E8FB7E8C3FD03CD3B
|
||||
:108D8000BC06282B1600D50E01CDC803CD820D22BE
|
||||
:108D9000AA1E2AAA1EC178FE78D4F90C7E1600D627
|
||||
:108DA000B0DA400DFE03D2400DFE0117AABA57DA21
|
||||
:108DB000EB03229F1ECD4F08C3240D7AB7C2700E5D
|
||||
:108DC0007E229F1ED6A9D8FE07D05F3A871E3DB3EC
|
||||
:108DD0007BCA091307835F21DF02197856BAD023B3
|
||||
:108DE000CDF90CC501170DC5ED4BBE1EC5ED4BC031
|
||||
:108DF0001EC54E234623C52A9F1EC30B0DAF3287C7
|
||||
:108E00001ECD4F081E24CAFF03DA3718CDED08D255
|
||||
:108E1000EA0DFEA9CA820DFE2ECA3718FEAACAD9CB
|
||||
:108E20000DFE22CAB711FEA7CAD00EFEA4CA1311A6
|
||||
:108E3000FE26C2CC0DCD4F08FE48CA431DFE42CAD5
|
||||
:108E4000B31D1E02CAFF03D6B3D2FB0DCD040DCD58
|
||||
:108E5000BC0629C9167DCD0B0D2AAA1EE5CD6817C3
|
||||
:108E6000CDF90CE1C9CDF50EE5EB22BE1E3A871E09
|
||||
:108E7000B7CC7D17E1C90600074FC5CD4F0879FE75
|
||||
:108E80002FDA220ECD040DCDBC062CCDFA0CEB2A28
|
||||
:108E9000BE1EE3E5EBCDA114EBE3C32A0ECDD10D4D
|
||||
:108EA000E311E50DD5015901094E236669E915FE67
|
||||
:108EB000AAC8FE2DC814FE2BC8FEA9C82BC9F6AF40
|
||||
:108EC000F5CDF90CCD0109F1EBC1E3EBED53BE1E7D
|
||||
:108ED000ED43C01EF5CD0109F1C17921D110C26B5E
|
||||
:108EE0000EA34F78A2E9B34F78B2E921820E3A87F8
|
||||
:108EF0001E1F7A175F166478BAD0C3680D840E7986
|
||||
:108F0000B71FC1D1F5CDFB0C21C60EE5CAA717AF1F
|
||||
:108F100032871ED5CD56137E23234E2346D1C5F569
|
||||
:108F2000CD5A13CD8917F157E17BB2C87AD601D853
|
||||
:108F3000AFBB3CD0151D0ABE2303CAAE0E3FC34AC9
|
||||
:108F4000173C8FC1A0C6FF9FC35117165ACD0B0DFA
|
||||
:108F5000CDF90CCD01097B2F4F7A2FCDD110C1C394
|
||||
:108F6000170D2BCD4F08C8CDBC062C01E70EC5F65A
|
||||
:108F7000AF32861E46CDED08DAEB03AF4F32871EC7
|
||||
:108F8000CD4F08DA110FCDED08DA1E0F4FCD4F0887
|
||||
:108F9000DA120FCDED08D2120FD624C22D0F3C32BB
|
||||
:108FA000871E0F814FCD4F083AA51E3DCAE80FF22C
|
||||
:108FB0003D0F7ED628CAC00FAF32A51EE550592AF4
|
||||
:108FC000B81E7C92C24E0F7D9311BA1ECA75132A29
|
||||
:108FD000B21EEB2AB01E7C92C2620F7D93CA780F3C
|
||||
:108FE000799623C26D0F789623CAB20F23232323C9
|
||||
:108FF000C35B0FE1E3D511ED0D7C9220027D93D18F
|
||||
:10900000CAB50FE3E5C50106002AB41EE509C1E5AE
|
||||
:10901000CDB403E122B41E606922B21E2B36007C5F
|
||||
:109020009220027D93C2A10FD173237223EBE1C979
|
||||
:1090300032C11E21810322BE1EE1C9E52A861EE33C
|
||||
:1090400057D5C5CDF508C1F1EBE3E5EB3C577EFE06
|
||||
:109050002CCAC60FCDBC062922AA1EE122861E1EDE
|
||||
:1090600000D511E5F52AB21E3E19ED5BB41E7C92C7
|
||||
:10907000C2FA0F7D93CA23107EB923C205107EB8B1
|
||||
:10908000235E235623C2EE0F3A861EB7C2F403F1C5
|
||||
:10909000444DCA751396CA84101E10C3FF031104F1
|
||||
:1090A00000F1CA1609712370234FCDC80323232270
|
||||
:1090B0009F1E71233A861E1779010B00D24610C1FC
|
||||
:1090C0000371237023F5E5CD1D18EBE1F13DC23EA0
|
||||
:1090D00010F5424BEB19DAE003CDD10322B41E2B7D
|
||||
:1090E00036007C9220027D93C2641003572A9F1E93
|
||||
:1090F0005EEB2909EB2B2B73237223F1DAAC1047BB
|
||||
:109100004F7E2316E15E235623E3F57C92C297102F
|
||||
:109110007D93D21E10E5CD1D18D119F13D444DC2ED
|
||||
:1091200089102929C109EB2AAA1EC92AB41EEB21DC
|
||||
:109130000000393A871EB7CACC10CD5613CD48125D
|
||||
:109140002A341EEB2A9D1E7D934F7C9A41501E00AF
|
||||
:1091500021871E730690C356173A851E47AFC3D2A8
|
||||
:1091600010CD7111CD631101F009C5D5CDBC062814
|
||||
:10917000CDF50EE5EB2B562B5EE1CDF90CCDBC0603
|
||||
:1091800029CDBC06B1444DE3712370C3B011CD713C
|
||||
:1091900011D5CDD10DCDF90CE35E2356237AB3CA98
|
||||
:1091A000F7037E23666FE52AB81EE322B81E2ABCA9
|
||||
:1091B0001EE52ABA1EE5D511BA1E21BE1EEDA0ED90
|
||||
:1091C000A0EDA0EDA0E1CDF60C2BCD4F08C2EB0336
|
||||
:1091D000E122BA1EE122BC1EE122B81EE1C9E52A45
|
||||
:1091E000361E237CB5E1C01E16C3FF03CDBC06A40A
|
||||
:1091F0003E8032A51EB647CDFA0EC3F90CCDF90C50
|
||||
:10920000CDDA18CDB611CD561301B713C57E232381
|
||||
:10921000E5CD1B12E14E2346CDAA11E56FCD4913D2
|
||||
:10922000D1C9CD1B1221991EE5772323732372E147
|
||||
:10923000C92B062250E50EFF237E0CB7CACC11BA0B
|
||||
:10924000CACC11B8C2BD11FE22CC4F08E323EB7982
|
||||
:10925000CDAA1111991E2A8B1E22BE1E3E013287F5
|
||||
:109260001EEBEDA0EDA0EDA0EDA0EB7C9220027D29
|
||||
:1092700093228B1EE17EC01E1EC3FF0323CDB611B9
|
||||
:10928000CD5613CD89171C1DC80ACDC706FE0DCCBF
|
||||
:10929000230B03C30C12B70EF1F52A341EEB2A9DE3
|
||||
:1092A0001E2F4F06FF09237C9220027D93DA3C1289
|
||||
:1092B000229D1E23EBF1C9F11E1ACAFF03BFF5015F
|
||||
:1092C0001D12C52A891E229D1E210000E52A341E7A
|
||||
:1092D000E5218D1EED5B8B1E7C9220027D93015952
|
||||
:1092E00012C2B5122AB01EED5BB21E7C9220027D26
|
||||
:1092F00093CA84127E2323B7CDB812C36C12C1ED7A
|
||||
:109300005BB41E7C9220027D93CAE412CD89177B48
|
||||
:10931000E509B7F28312229F1EE14E0600090923D8
|
||||
:10932000ED5B9F1E7C9220027D93CA841201A512E0
|
||||
:10933000C5F6807E23235E235623F0B7C8444D2A0A
|
||||
:109340009D1E7C9220027D936069D8E1E37C92208F
|
||||
:10935000027D93E3E56069D0C1F1F1E5D5C5C9D1DE
|
||||
:10936000E17DB4C82B462B4EE52B2B6E2600095011
|
||||
:10937000592B444D2A9D1ECDB703E17123706960BE
|
||||
:109380002BC34B12C5E52ABE1EE3CD820DE3CDFAF9
|
||||
:109390000C7EE52ABE1EE5861E1CDAFF03CDA71152
|
||||
:1093A000D1CD5A13E3CD5913E52A9B1EEBCD4013C3
|
||||
:1093B000CD401321140DE3E5C3D811E1E37E23234F
|
||||
:1093C0004E23466F2C2DC80A120313C34A13CDFA3D
|
||||
:1093D0000C2ABE1EEBCD7713EBC0D550591B4E2A7D
|
||||
:1093E0009D1E7C9220027D93C275134709229D1E0B
|
||||
:1093F000E1C92A8B1E2B462B4E2B2B7C9220027D03
|
||||
:1094000093C0228B1EC901E110C5CD5313AF573253
|
||||
:10941000871E7EB7C901E110C5CD8F13CA16092377
|
||||
:10942000235E23561AC93E01CDA711CDA4142A9B51
|
||||
:109430001E73C1C3D811CD5414AFE34FE57EB8DA23
|
||||
:10944000C91378110E00C5CD1B12C1E1E5232346D7
|
||||
:10945000236668060009444DCDAA116FCD4913D18A
|
||||
:10946000CD5A13C3D811CD5414D1D51A90C3BF13FC
|
||||
:10947000EB7ECD59140405CA1609C51EFFFE29CA84
|
||||
:109480000E14CDBC062CCDA114CDBC0629F1E301F0
|
||||
:10949000C113C53DBE0600D04F7E91BB47D843C91E
|
||||
:1094A000CD8F13CA4A155F23237E23666FE51946C5
|
||||
:1094B00072E3C57EFE24C24314CD431D180DFE2564
|
||||
:1094C000C24D14CDB31D1803CD3718C1E170C9EBDF
|
||||
:1094D000CDBC0629C1D1C543C9CDA41432221ECDAD
|
||||
:1094E000211EC3E110CD8E14C3E91DCD8E14F51ECF
|
||||
:1094F000002BCD4F08CA8414CDBC062CCDA114C1BD
|
||||
:10950000CD211EABA0CA8514C9CDA11432221E32B2
|
||||
:10951000EA1DCDBC062CC3A114CD4F08CDF60CCD51
|
||||
:10952000FB087AB7C216092BCD4F087BC9CD0109BC
|
||||
:109530001AC3E110CDF60CCD0109D5CDBC062CCD5A
|
||||
:10954000A114D112C921C119CD8917C3DC14CD8949
|
||||
:109550001721C1D1CD681778B7C83AC11EB7CA79EB
|
||||
:109560001590D2FE142F3C2ABE1EE52AC01EE5ED42
|
||||
:1095700053BE1EED43C01EC1D1FE19D0F5CD9217CA
|
||||
:1095800067F1CDAF15B421BE1EF22415CD8F15D2D3
|
||||
:109590006A152334CAFA032E01CDC515C36A15AF67
|
||||
:1095A00090477E9B5F237E9A57237E994FDC9B15C5
|
||||
:1095B0006863AF4779B7C257154A54656F78D608C4
|
||||
:1095C000FEE0C23815AF32C11EC905297A17577996
|
||||
:1095D0008F4FF24F15785C45B7CA6A1521C11E86B8
|
||||
:1095E00077D24A15C87821C11EB7FC821546237E62
|
||||
:1095F000E680A94FED53BE1EED43C01EC91CC0142A
|
||||
:10960000C00CC00E8034C0C3FA037E835F237E8A01
|
||||
:1096100057237E894FC921C21E7E2F77AF6F904797
|
||||
:109620007D9B5F7D9A577D994FC90600D608DABEAB
|
||||
:1096300015435A510E00C3B115C6096FAF2DC87935
|
||||
:109640001F4F7A1F577B1F5F781F47C3C11500004C
|
||||
:10965000008103AA561980F122768045AA3882CD6E
|
||||
:109660003F17B7EA160921C11E7E01358011F304A8
|
||||
:1096700090F570D5C5CDDC14C1D104CD901621D3A1
|
||||
:1096800015CDD31421D715CD981A01808011000073
|
||||
:10969000CDDC14F1CDAB1801318011187221C1D18C
|
||||
:1096A000CD3F17C82E00CDF8167932D01EEB22D14F
|
||||
:1096B0001E0100005058213515E5214716E5E5212A
|
||||
:1096C000BE1E7E23B7CA7316E52E081F6779D261C6
|
||||
:1096D00016E52AD11E19EBE13AD01E891F4F7A1FD9
|
||||
:1096E000577B1F5F781F472D7CC25016E1C9435A34
|
||||
:1096F000514FC92ABE1EE52AC01EE5012084110073
|
||||
:1097000000ED53BE1EED43C01EC1D1CD3F17CAEEC2
|
||||
:10971000032EFFCDF81634342B7E32F51D2B7E320E
|
||||
:10972000F11D2B7E32ED1D41EBAF4F575F32F81D1F
|
||||
:10973000E5C57DCDEC1DDE003FD2C81632F81DF127
|
||||
:10974000F137D2C1E1793C3D1FFA6B15177B175FEA
|
||||
:109750007A175779174F297817473AF81D1732F8B3
|
||||
:109760001D79B2B3C2B516E521C11E35E1C2B516E9
|
||||
:10977000C3FA0378B7CA1C177D21C11EAE80471FEC
|
||||
:10978000A878F21B17C68077CA7513CD9217772B6E
|
||||
:10979000C9CD3F172FE1B7E1F24A15C3FA03ED5BDC
|
||||
:1097A000BE1EED4BC01E78B7C8C602DAFA0347CD1D
|
||||
:1097B000DC1421C11E34C0C3FA033AC11EB7C83A33
|
||||
:1097C000C01EFE2F179FC03CC9CD3F170688110051
|
||||
:1097D0000021C11E4F70060023368017C33215CDFD
|
||||
:1097E0003F17F021C01E7EEE8077C9EB2ABE1EE334
|
||||
:1097F000E52AC01EE3E5EBC911BE1EEDA0EDA0ED0C
|
||||
:10980000A0EDA0C95E2356234E234623C921C01EC6
|
||||
:109810007E07371F773F1F2323777907371F4F1F97
|
||||
:10982000AEC978B7CA3F17214817E5CD3F1779C8A9
|
||||
:1098300021C01EAE79F8CDC1171FA9C92378BEC0BB
|
||||
:109840002B79BEC02B7ABEC02B7B96C0E1E1C94705
|
||||
:109850004F575FB7C8E5ED5BBE1EED4BC01ECD9206
|
||||
:1098600017AE67FCFD173E9890CDAF157C17DC82D4
|
||||
:10987000150600DC9B15E1C91B7AA33CC00BC9216E
|
||||
:10988000C11E7EFE983ABE1ED07ECDD41736987B80
|
||||
:10989000F57917CD3215F1C921000078B1C87806E5
|
||||
:1098A0001029DA1E10CB1117D2341819DA1E101035
|
||||
:1098B000F0C9FE2DF5CA4318FE2BCA43182BCD4A1A
|
||||
:1098C0001547575F2F4FCD4F08DA9418FE2ECA6FF9
|
||||
:1098D00018FE45C27318CD4F08CD330ECD4F08DAB0
|
||||
:1098E000BB1814C27318AF935F0C0CCA4B18E57BFE
|
||||
:1098F00090F48C18F28218F5CD7816F13CC27618E7
|
||||
:10990000D1F1CC6817EBC9C8F5CD2317F13DC9D506
|
||||
:1099100057788947C5E5D5CD2317F1D630CDAB189B
|
||||
:10992000E1C1D1C34B182ABE1EE52AC01EE5CD51A8
|
||||
:1099300017C1D1C3DC147B0707830786D6305FC30A
|
||||
:109940006118E5217D03CD0212E1EBAF0698CD56FB
|
||||
:1099500017210112E521C31EE5CD3F173620F2E89D
|
||||
:1099600018362D233630CAAC19E5FC6817AFF5CD93
|
||||
:10997000B21901439111F84FCDA717B7E21519F1AC
|
||||
:10998000CD8D18F5C3F718CD7816F13CF5CDB21989
|
||||
:10999000CDCA143CCDD417ED53BE1EED43C01E01FD
|
||||
:1099A0000603F1813CFA3619FE08D236193C473ECF
|
||||
:1099B000023D3DE1F511C51905C24719362E233682
|
||||
:1099C000302305362ECC9017C5E5EBED5BBE1EEDC2
|
||||
:1099D0004BC01E062F047B965F237A9E5723799EE9
|
||||
:1099E0004F2B2BD25A19CD8F1523ED53BE1EED43AD
|
||||
:1099F000C01EEBE17023C10DC2471905CA90192B97
|
||||
:109A00007EFE30CA8419FE2EC49017F1CAAF1936F3
|
||||
:109A10004523362BF2A019362D2F3C062F04D60AEB
|
||||
:109A2000D2A219C63A237023772371E1C901749435
|
||||
:109A300011F723CDA717B7E1E20C19E90000008068
|
||||
:109A4000A08601102700E803006400000A0000015E
|
||||
:109A50000000216817E3E9CD701721C11911BE1E5E
|
||||
:109A6000EDA0EDA0EDA0EDA0C1D1CD3F1778CA3794
|
||||
:109A70001AF2FD19B7CAEE03B7CA4B15D5C579F668
|
||||
:109A80007FED5BBE1EED4BC01EF21F1AD5C5CD0487
|
||||
:109A900018C1D1F5CDA717E17C1FE122C01EE1223C
|
||||
:109AA000BE1EDCD719CC6817D5C5CDE415C1D1CD04
|
||||
:109AB0002516CD7017013881113BAACD25163AC164
|
||||
:109AC0001EFE88D21617CD0418C680C602DA1617F5
|
||||
:109AD000F521D315CDCD14CD1C16F1C1D1F5CDD9BD
|
||||
:109AE00014CD681721771ACDAC1A110000C14AC3F2
|
||||
:109AF000251608402E9474704F2E776E02887AE6F1
|
||||
:109B0000A02A7C50AAAA7EFFFF7F7F0000808100F0
|
||||
:109B1000000081CD7017112316D5E5ED5BBE1EED5B
|
||||
:109B20004BC01ECD2516E1CD70177E2311BE1EED54
|
||||
:109B3000A0EDA0EDA0EDA006F1C1D13DC8D5C5F5C1
|
||||
:109B4000E5CD2516E1CD8917E5CDDC14E1C3BD1ABD
|
||||
:109B5000CD3F1721FC1DFA4F1B211D1E11BE1EED0E
|
||||
:109B6000A0EDA0EDA0EDA021FC1DC886E607060033
|
||||
:109B7000772387874F09CD8917CD25163AFB1D3CE2
|
||||
:109B8000E6030600FE018832FB1D21531B87874F29
|
||||
:109B900009CDCD14ED5BBE1EED4BC01E7B59EE4FC3
|
||||
:109BA0004F21C21E36802B46368021FA1D347ED6C8
|
||||
:109BB000ABC23D1B770C151CCD3515111D1E21BEEA
|
||||
:109BC0001EEDA0EDA0EDA0EDA0C9772B772B77C3FC
|
||||
:109BD000191B68B1466899E9926910D1756821B27C
|
||||
:109BE0001BCDCD14CD701701498311DB0FED53BE92
|
||||
:109BF0001EED43C01EC1D1CD9016CD7017CD0418F7
|
||||
:109C0000C1D1CDD91421B61BCDD314CD3F1737F216
|
||||
:109C10009E1BCDCA14CD3F17B7F5F4681721B61BAC
|
||||
:109C2000CDCD14F1D4681721BA1BC3981ADB0F49A4
|
||||
:109C3000810000007F05BAD71E86642699875834B4
|
||||
:109C40002387E05DA586DA0F4983CD7017CD691BA8
|
||||
:109C5000C1E1CD7017EBED53BE1EED43C01ECD63C9
|
||||
:109C60001BC38E16CD3F17FCD719FC68173AC11ECF
|
||||
:109C7000FE81DA061C0100815159CD901621D314C2
|
||||
:109C8000E521101CCD981A21B21BC9094AD73B788F
|
||||
:109C9000026E847BFEC12F7C74319A7D843D5A7D97
|
||||
:109CA000C87F917EE4BB4C7E6CAAAA7F0000008135
|
||||
:109CB000C300003E0CCFC9ED45CDA1147B32251E5B
|
||||
:109CC000C9CDF60CCD0109ED53291EED532B1EC94C
|
||||
:109CD000CD0109D5E146237EC3D210CDF60CCD01CE
|
||||
:109CE00009D5CDBC062CCDF60CCD0109E37323724A
|
||||
:109CF000E1C9C0CD961C1B2A891EAFED52380BED71
|
||||
:109D000053891E21CEFF1922341E13ED53E71D186F
|
||||
:109D100021D7FE3A20FB0E00CDD41C47CDD41C57D2
|
||||
:109D2000CDD41C5FCDD41C3D281A3CC2FD03C9CD47
|
||||
:109D3000961CCDD41C121310F9CDD41C79B7C27C5B
|
||||
:109D40001DC3B41CCDD41C79B7C27C1DC3E000CDAB
|
||||
:109D5000E51C070707076FCDE51CB56F814F7DC96F
|
||||
:109D6000D7D630FE0AD8D607C9CDF90CCD0109C522
|
||||
:109D700021C31E7AFE00280CCD261D78FE30280255
|
||||
:109D8000702371237BCD261D7AFE00200578FE30DE
|
||||
:109D9000280270237123AF772377C121C31EC388A4
|
||||
:109DA0001147E60FFE0A3802C607C6304F780F0F7C
|
||||
:109DB0000F0FE60FFE0A3802C607C63047C9EB216F
|
||||
:109DC0000000CD5C1DDA7C1D1805CD5C1D381F29F7
|
||||
:109DD000292929B56F18F3131AFE20CA5C1DD63045
|
||||
:109DE000D8FE0A3805D607FE0AD8FE103FC9EB7A1E
|
||||
:109DF0004BE5CDD110E1C91E26C3FF03CDF90CCD33
|
||||
:109E00000109C521C31E06110578FE012808CB13E0
|
||||
:109E1000CB1230F41804CB13CB123E30CE00772394
|
||||
:109E20000520F3AF772377C121C31EC38811EB212F
|
||||
:109E30000000CDD01DDADE1DD63029B56FCDD01D86
|
||||
:109E400030F6EB7A4BE5CDD110E1C9131AFE20CAEA
|
||||
:0E9E5000D01DFE30D8FE323FC91E28C3FF03CE
|
||||
:00000001FF
|
||||
6537
OperatingSystem/basic/zout/test.lst
Normal file
6537
OperatingSystem/basic/zout/test.lst
Normal file
File diff suppressed because it is too large
Load Diff
486
OperatingSystem/basic/zout/test.mon
Normal file
486
OperatingSystem/basic/zout/test.mon
Normal file
@@ -0,0 +1,486 @@
|
||||
!8000 C3 40 80 00 00 00 00 00 00 00 00 80 5E 9E 5E 1E
|
||||
!8010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8040 CD D0 01 0A 0D 53 68 61 64 6F 77 69 6E 67 20 52
|
||||
!8050 4F 4D 20 40 20 30 78 30 30 30 30 2D 30 78 33 46
|
||||
!8060 46 46 20 2E 2E 2E 0A 0D 00 3E 01 D3 00 21 7B 80
|
||||
!8070 11 00 00 01 E3 1D ED B0 C3 00 00 C3 5A 00 00 00
|
||||
!8080 00 00 00 C3 20 00 00 00 00 00 00 C3 2D 00 00 00
|
||||
!8090 00 00 00 C3 4B 00 00 00 00 00 00 D3 08 3E 01 D3
|
||||
!80A0 09 DB 09 CB 47 28 F6 C9 3E 05 D3 09 3E EA D3 09
|
||||
!80B0 00 AF D3 09 DB 09 E6 01 F5 3E 05 D3 09 3E 68 D3
|
||||
!80C0 09 F1 C8 DB 08 C9 3E 00 C9 C3 5A 00 C3 DD 00 05
|
||||
!80D0 01 09 D2 10 C0 21 E3 1D F9 AF 32 30 1E 21 1E 03
|
||||
!80E0 01 5A 00 11 E3 1D ED B0 EB F9 CD 26 05 CD 19 0B
|
||||
!80F0 32 84 1E 32 D3 1E 21 37 1F 23 7C B5 CA A2 00 7E
|
||||
!8100 47 2F 77 BE 70 CA 7E 00 C3 A2 00 CD 1B 09 B7 C2
|
||||
!8110 EB 03 EB 2B 3E D9 46 77 BE 70 C2 7B 00 2B 11 36
|
||||
!8120 1F 7C 92 20 02 7D 93 DA 7B 00 11 CE FF 22 89 1E
|
||||
!8130 19 22 34 1E CD 01 05 2A 34 1E 11 EF FF 19 11 D3
|
||||
!8140 1E 7D 93 6F 7C 9A 67 E5 21 F5 00 CD 02 12 E1 CD
|
||||
!8150 CF 18 21 E6 00 CD 02 12 31 40 1E CD 26 05 C3 39
|
||||
!8160 04 20 42 79 74 65 73 20 66 72 65 65 0D 0A 00 00
|
||||
!8170 5A 38 30 20 42 41 53 49 43 20 56 65 72 20 34 2E
|
||||
!8180 37 63 0D 0A 43 6F 70 79 72 69 67 68 74 20 28 43
|
||||
!8190 29 20 31 39 37 38 20 62 79 20 4D 69 63 72 6F 73
|
||||
!81A0 6F 66 74 0D 0A 4D 6F 64 69 66 69 65 64 20 66 6F
|
||||
!81B0 72 20 5A 38 43 20 62 79 20 44 65 6E 6E 69 73 20
|
||||
!81C0 47 75 6E 69 61 0D 0A 00 00 4D 65 6D 6F 72 79 20
|
||||
!81D0 74 6F 70 00 4E 17 04 18 64 17 E6 1D B0 10 5E 14
|
||||
!81E0 DE 10 DC 19 D5 1A E4 15 37 1A 63 1B 69 1B CF 1B
|
||||
!81F0 E9 1B B2 14 55 1C 8B 13 82 11 25 14 9A 13 AB 13
|
||||
!8200 EE 1C 81 1D BB 13 EB 13 F5 13 C5 4E 44 C6 4F 52
|
||||
!8210 CE 45 58 54 C4 41 54 41 C9 4E 50 55 54 C4 49 4D
|
||||
!8220 D2 45 41 44 CC 45 54 C7 4F 54 4F D2 55 4E C9 46
|
||||
!8230 D2 45 53 54 4F 52 45 C7 4F 53 55 42 D2 45 54 55
|
||||
!8240 52 4E D2 45 4D D3 54 4F 50 CF 55 54 CF 4E CE 55
|
||||
!8250 4C 4C D7 41 49 54 C4 45 46 D0 4F 4B 45 C4 4F 4B
|
||||
!8260 45 CC 49 4E 45 53 C3 4C 53 D7 49 44 54 48 CD 4F
|
||||
!8270 4E 49 54 4F 52 D2 45 53 45 54 D0 52 49 4E 54 C3
|
||||
!8280 4F 4E 54 CC 49 53 54 C3 4C 45 41 52 C8 4C 4F 41
|
||||
!8290 44 CE 45 57 D4 41 42 28 D4 4F C6 4E D3 50 43 28
|
||||
!82A0 D4 48 45 4E CE 4F 54 D3 54 45 50 AB AD AA AF DE
|
||||
!82B0 C1 4E 44 CF 52 BE BD BC D3 47 4E C9 4E 54 C1 42
|
||||
!82C0 53 D5 53 52 C6 52 45 C9 4E 50 D0 4F 53 D3 51 52
|
||||
!82D0 D2 4E 44 CC 4F 47 C5 58 50 C3 4F 53 D3 49 4E D4
|
||||
!82E0 41 4E C1 54 4E D0 45 45 4B C4 45 45 4B CC 45 4E
|
||||
!82F0 D3 54 52 24 D6 41 4C C1 53 43 C3 48 52 24 C8 45
|
||||
!8300 58 24 C2 49 4E 24 CC 45 46 54 24 D2 49 47 48 54
|
||||
!8310 24 CD 49 44 24 80 99 08 8D 07 9B 0C F0 09 9A 0B
|
||||
!8320 F0 0E C9 0B 07 0A AA 09 8D 09 97 0A 5E 08 99 09
|
||||
!8330 CB 09 F2 09 97 08 6A 14 79 0A D8 08 70 14 E6 10
|
||||
!8340 B9 14 60 1C 46 1C 38 1C 3E 1C 35 1C 59 00 BB 0A
|
||||
!8350 C5 08 04 07 44 09 77 1C 00 05 79 B6 18 79 D7 14
|
||||
!8360 7C 23 16 7C 8E 16 7F ED 19 50 44 0E 46 43 0E 4E
|
||||
!8370 46 53 4E 52 47 4F 44 46 43 4F 56 4F 4D 55 4C 42
|
||||
!8380 53 44 44 2F 30 49 44 54 4D 4F 53 4C 53 53 54 43
|
||||
!8390 4E 55 46 4D 4F 48 58 42 4E C3 DD 00 C3 16 09 D3
|
||||
!83A0 00 C9 D6 00 6F 7C DE 00 67 78 DE 00 47 3E 00 C9
|
||||
!83B0 00 00 00 35 4A CA 99 39 1C 76 98 22 95 B3 98 0A
|
||||
!83C0 DD 47 98 53 D1 99 99 0A 1A 9F 98 65 BC CD 98 D6
|
||||
!83D0 77 3E 98 52 C7 4F 80 DB 00 C9 01 FF 1C 00 00 14
|
||||
!83E0 00 14 00 00 00 00 00 C3 39 06 37 1F FE FF D4 1E
|
||||
!83F0 03 20 45 72 72 6F 72 00 20 69 6E 20 00 4F 6B 0D
|
||||
!8400 0A 00 00 42 72 65 61 6B 00 21 04 00 39 7E 23 FE
|
||||
!8410 81 C0 4E 23 46 23 E5 69 60 7A B3 EB CA AB 03 EB
|
||||
!8420 7C 92 20 02 7D 93 01 0D 00 E1 C8 09 C3 92 03 CD
|
||||
!8430 D1 03 C5 E3 C1 7C 92 20 02 7D 93 7E 02 C8 0B 2B
|
||||
!8440 C3 BA 03 E5 2A B4 1E 06 00 09 09 3E E5 3E D0 95
|
||||
!8450 6F 3E FF 9C DA E0 03 67 39 E1 D8 1E 0C C3 FF 03
|
||||
!8460 2A A3 1E 22 36 1E 1E 02 01 1E 14 01 1E 00 01 1E
|
||||
!8470 12 01 1E 22 01 1E 0A 01 1E 18 CD 26 05 32 28 1E
|
||||
!8480 CD 0C 0B 21 F4 02 57 3E 3F CD C7 06 19 7E CD C7
|
||||
!8490 06 CD 4F 08 CD C7 06 21 76 03 CD 02 12 2A 36 1E
|
||||
!84A0 11 FE FF 7C 92 20 02 7D 93 CA 5A 00 7C A5 3C C4
|
||||
!84B0 C7 18 3E C1 AF 32 28 1E CD 0C 0B 21 82 03 CD 02
|
||||
!84C0 12 21 FF FF 22 36 1E CD 31 1E DA 46 04 CD 4F 08
|
||||
!84D0 3C 3D CA 46 04 F5 CD 1B 09 D5 CD 50 05 47 D1 F1
|
||||
!84E0 D2 2F 08 D5 C5 AF 32 A6 1E CD 4F 08 B7 F5 CD DD
|
||||
!84F0 04 DA 7F 04 F1 F5 CA C6 09 B7 C5 D2 99 04 EB 2A
|
||||
!8500 B0 1E 1A 02 03 13 7C 92 20 02 7D 93 C2 87 04 60
|
||||
!8510 69 22 B0 1E D1 F1 CA C0 04 2A B0 1E E3 C1 09 E5
|
||||
!8520 CD B4 03 E1 22 B0 1E EB 74 D1 23 23 73 23 72 23
|
||||
!8530 11 3B 1E 1A 77 23 13 B7 C2 B8 04 CD 0C 05 23 EB
|
||||
!8540 62 6B 7E 23 B6 CA 46 04 23 23 23 AF BE 23 C2 D1
|
||||
!8550 04 EB 73 23 72 C3 C5 04 2A 38 1E 44 4D 7E 23 B6
|
||||
!8560 2B C8 23 23 7E 23 66 6F 7C 92 20 02 7D 93 60 69
|
||||
!8570 7E 23 66 6F 3F C8 3F D0 C3 E0 04 C0 2A 38 1E AF
|
||||
!8580 77 23 77 23 22 B0 1E 2A 38 1E 2B 22 A8 1E 2A 89
|
||||
!8590 1E 22 9D 1E AF CD 5E 08 2A B0 1E 22 B2 1E 22 B4
|
||||
!85A0 1E C1 2A 34 1E F9 21 8D 1E 22 8B 1E AF 6F 67 22
|
||||
!85B0 AE 1E 32 A5 1E 22 B8 1E E5 C5 2A A8 1E C9 3E 3F
|
||||
!85C0 CD C7 06 3E 20 CD C7 06 C3 31 1E AF 32 88 1E 0E
|
||||
!85D0 05 11 3B 1E 7E FE 20 CA D8 05 47 FE 22 CA F8 05
|
||||
!85E0 B7 CA FF 05 3A 88 1E B7 7E C2 D8 05 FE 3F 3E 9C
|
||||
!85F0 CA D8 05 7E FE 30 DA 83 05 FE 3C DA D8 05 D5 11
|
||||
!8600 8E 01 C5 01 D4 05 C5 06 7F 7E FE 61 DA 9C 05 FE
|
||||
!8610 7B D2 9C 05 E6 5F 77 4E EB 23 B6 F2 9E 05 04 7E
|
||||
!8620 E6 7F C8 B9 C2 9E 05 EB E5 13 1A B7 FA D0 05 4F
|
||||
!8630 78 FE 88 C2 BF 05 CD 4F 08 2B 23 7E FE 61 DA C8
|
||||
!8640 05 E6 5F B9 CA AE 05 E1 C3 9C 05 48 F1 EB C9 EB
|
||||
!8650 79 C1 D1 23 12 13 0C D6 3A CA E6 05 FE 49 C2 E9
|
||||
!8660 05 32 88 1E D6 54 C2 59 05 47 7E B7 CA FF 05 B8
|
||||
!8670 CA D8 05 23 12 0C 13 C3 EF 05 21 3A 1E 12 13 12
|
||||
!8680 13 12 C9 3A 27 1E B7 3E 00 32 27 1E C2 1C 06 05
|
||||
!8690 CA 31 1E CD C7 06 3E 05 2B CA 30 06 7E CD C7 06
|
||||
!86A0 C3 42 06 05 2B CD C7 06 C2 42 06 CD C7 06 CD 19
|
||||
!86B0 0B C3 31 1E 21 3B 1E 06 01 AF 32 27 1E CD F5 06
|
||||
!86C0 4F FE 7F CA 08 06 3A 27 1E B7 CA 5B 06 3E 00 CD
|
||||
!86D0 C7 06 AF 32 27 1E 79 FE 07 CA 9F 06 FE 03 CC 19
|
||||
!86E0 0B 37 C8 FE 0D CA 14 0B FE 15 CA 33 06 FE 40 CA
|
||||
!86F0 30 06 FE 5F CA 28 06 FE 08 CA 28 06 FE 12 C2 9A
|
||||
!8700 06 C5 D5 E5 36 00 CD EF 06 21 3B 1E CD 02 12 E1
|
||||
!8710 D1 C1 C3 42 06 FE 20 DA 42 06 78 FE 49 3E 07 D2
|
||||
!8720 B4 06 79 71 32 A6 1E 23 04 CD C7 06 C3 42 06 CD
|
||||
!8730 C7 06 3E 08 C3 AE 06 7E E3 BE 23 E3 CA 4F 08 C3
|
||||
!8740 EB 03 F5 3A 28 1E B7 C2 3A 12 F1 C5 F5 FE 20 DA
|
||||
!8750 EB 06 3A 25 1E 47 3A 85 1E 04 CA E7 06 05 B8 CC
|
||||
!8760 19 0B 3C 32 85 1E F1 C1 CF C9 CD C7 06 C3 19 0B
|
||||
!8770 D7 E6 7F FE 0F C0 3A 28 1E 2F 32 28 1E AF C9 CD
|
||||
!8780 1B 09 C0 C1 CD DD 04 C5 CD 5A 07 E1 4E 23 46 23
|
||||
!8790 78 B1 CA 39 04 CD 63 07 CD 79 08 C5 CD 19 0B 5E
|
||||
!87A0 23 56 23 E5 EB CD CF 18 3E 20 E1 CD C7 06 7E B7
|
||||
!87B0 23 CA 10 07 F2 30 07 D6 7F 4F 11 8F 01 1A 13 B7
|
||||
!87C0 F2 42 07 0D C2 42 07 E6 7F CD C7 06 1A 13 B7 F2
|
||||
!87D0 4C 07 C3 33 07 E5 2A 2B 1E 22 29 1E E1 C9 E5 D5
|
||||
!87E0 2A 29 1E 11 FF FF ED 5A 22 29 1E D1 E1 F0 E5 2A
|
||||
!87F0 2B 1E 22 29 1E D7 FE 03 CA 84 07 E1 C3 63 07 2A
|
||||
!8800 2B 1E 22 29 1E C3 E0 00 3E 64 32 A5 1E CD 07 0A
|
||||
!8810 C1 E5 CD F0 09 22 A1 1E 21 02 00 39 CD 92 03 D1
|
||||
!8820 C2 C1 07 09 D5 2B 56 2B 5E 23 23 E5 2A A1 1E 7C
|
||||
!8830 92 C2 BB 07 7D 93 E1 C2 A1 07 D1 F9 EB 0E 08 CD
|
||||
!8840 C8 03 E5 2A A1 1E E3 E5 2A 36 1E E3 CD F9 0C CD
|
||||
!8850 BC 06 A3 CD F6 0C ED 5B BE 1E ED 4B C0 1E C5 D5
|
||||
!8860 01 00 81 51 5A 7E FE A8 3E 01 C2 03 08 CD 4F 08
|
||||
!8870 CD F6 0C ED 5B BE 1E ED 4B C0 1E CD 3F 17 C5 D5
|
||||
!8880 F5 33 E5 2A A8 1E E3 06 81 C5 33 CD 79 08 22 A8
|
||||
!8890 1E 7E FE 3A CA 2F 08 B7 C2 EB 03 23 7E 23 B6 CA
|
||||
!88A0 A1 08 23 5E 23 56 ED 53 36 1E CD 4F 08 11 10 08
|
||||
!88B0 D5 C8 D6 80 DA 07 0A FE 22 D2 EB 03 07 4F 06 00
|
||||
!88C0 EB 21 9B 02 09 4E 23 46 C5 EB 23 7E FE 3A D0 FE
|
||||
!88D0 20 28 F7 FE 30 3F 3C 3D C9 EB 2A 38 1E CA 73 08
|
||||
!88E0 EB CD 1B 09 E5 CD DD 04 60 69 D1 D2 C6 09 2B 22
|
||||
!88F0 B6 1E EB C9 DF B7 C8 D7 FE 1B 28 11 FE 03 28 0D
|
||||
!8900 FE 13 C0 D7 FE 11 C8 FE 03 28 07 18 F6 3E FF 32
|
||||
!8910 30 1E C0 F6 C0 22 A8 1E 21 F6 FF C1 2A 36 1E F5
|
||||
!8920 7D A4 3C CA B4 08 22 AC 1E 2A A8 1E 22 AE 1E AF
|
||||
!8930 32 28 1E CD 0C 0B F1 21 88 03 C2 1F 04 C3 39 04
|
||||
!8940 2A AE 1E 7C B5 1E 20 CA FF 03 EB 2A AC 1E 22 36
|
||||
!8950 1E EB C9 CD A1 14 C0 32 24 1E C9 E5 2A 2D 1E 06
|
||||
!8960 00 4F 09 22 2D 1E E1 C9 7E FE 41 D8 FE 5B 3F C9
|
||||
!8970 CD 4F 08 CD F6 0C CD 3F 17 FA 16 09 3A C1 1E FE
|
||||
!8980 90 DA D4 17 01 80 90 11 00 00 E5 CD A7 17 E1 51
|
||||
!8990 C8 1E 08 C3 FF 03 2B 11 00 00 CD 4F 08 D0 E5 F5
|
||||
!89A0 21 98 19 7C 92 C2 2F 09 7D 93 DA EB 03 62 6B 19
|
||||
!89B0 29 19 29 F1 D6 30 5F 16 00 19 EB E1 C3 1F 09 CA
|
||||
!89C0 10 05 CD F8 08 2B CD 4F 08 E5 2A 89 1E CA 67 09
|
||||
!89D0 E1 CD BC 06 2C D5 CD F8 08 2B CD 4F 08 C2 EB 03
|
||||
!89E0 E3 EB 7D 93 5F 7C 9A 57 DA E0 03 E5 2A B0 1E 01
|
||||
!89F0 28 00 09 7C 92 20 02 7D 93 D2 E0 03 EB 22 34 1E
|
||||
!8A00 E1 22 89 1E E1 C3 10 05 CA 0C 05 CD 10 05 01 10
|
||||
!8A10 08 C3 A9 09 0E 03 CD C8 03 C1 E5 E5 2A 36 1E E3
|
||||
!8A20 3E 8C F5 33 C5 CD 1B 09 CD F2 09 E5 2A 36 1E 7C
|
||||
!8A30 92 20 02 7D 93 E1 23 DC E0 04 D4 DD 04 60 69 2B
|
||||
!8A40 D8 1E 0E C3 FF 03 C0 16 FF CD 8E 03 F9 FE 8C 1E
|
||||
!8A50 04 C2 FF 03 E1 22 36 1E 23 7C B5 C2 EA 09 3A A6
|
||||
!8A60 1E B7 C2 38 04 21 10 08 E3 3E E1 01 3A 0E 00 06
|
||||
!8A70 00 79 48 47 7E B7 C8 B8 C8 23 FE 22 CA F6 09 C3
|
||||
!8A80 F9 09 CD F5 0E CD BC 06 B1 D5 3A 87 1E F5 CD 08
|
||||
!8A90 0D F1 E3 22 A8 1E 1F CD FB 0C CA 69 0A E5 2A BE
|
||||
!8AA0 1E E5 23 23 5E 23 56 2A 38 1E 7C 92 20 02 7D 93
|
||||
!8AB0 D2 52 0A 2A 34 1E 7C 92 20 02 7D 93 D1 D2 5A 0A
|
||||
!8AC0 21 99 1E 7C 92 20 02 7D 93 D2 5A 0A 3E D1 CD 77
|
||||
!8AD0 13 EB CD 92 11 CD 77 13 E1 EB ED A0 ED A0 ED A0
|
||||
!8AE0 ED A0 E1 C9 E5 11 BE 1E EB ED A0 ED A0 ED A0 ED
|
||||
!8AF0 A0 D1 E1 C9 CD A1 14 7E 47 FE 8C CA 88 0A CD BC
|
||||
!8B00 06 88 2B 4B 0D 78 CA 37 08 CD 1C 09 FE 2C C0 C3
|
||||
!8B10 89 0A CD 08 0D 7E FE 88 CA A5 0A CD BC 06 A6 2B
|
||||
!8B20 CD F9 0C CD 3F 17 CA F2 09 CD 4F 08 DA AA 09 C3
|
||||
!8B30 36 08 2B CD 4F 08 CA 19 0B C8 FE A2 CA 4C 0B FE
|
||||
!8B40 A5 CA 4C 0B E5 FE 2C CA 35 0B FE 3B CA 6F 0B C1
|
||||
!8B50 CD 08 0D E5 3A 87 1E B7 C2 05 0B CD DA 18 CD B6
|
||||
!8B60 11 36 20 2A BE 1E 34 2A BE 1E 3A 25 1E 47 04 CA
|
||||
!8B70 01 0B 04 3A 85 1E 86 3D B8 D4 19 0B CD 05 12 AF
|
||||
!8B80 C4 05 12 E1 C3 B7 0A 3A 85 1E B7 C8 C3 19 0B 36
|
||||
!8B90 00 21 3A 1E 3E 0D CD C7 06 3E 0A CD C7 06 AF 32
|
||||
!8BA0 85 1E 3A 24 1E 3D C8 F5 AF CD C7 06 F1 C3 2A 0B
|
||||
!8BB0 3A 26 1E 47 3A 85 1E B8 D4 19 0B D2 6F 0B D6 0E
|
||||
!8BC0 D2 43 0B 2F C3 64 0B F5 CD 9E 14 CD BC 06 29 2B
|
||||
!8BD0 F1 D6 A5 E5 CA 5F 0B 3A 85 1E 2F 83 D2 6F 0B 3C
|
||||
!8BE0 47 3E 20 CD C7 06 05 C2 68 0B E1 CD 4F 08 C3 BE
|
||||
!8BF0 0A 3F 52 65 64 6F 20 66 72 6F 6D 20 73 74 61 72
|
||||
!8C00 74 0D 0A 00 3A A7 1E B7 C2 E5 03 C1 21 76 0B CD
|
||||
!8C10 02 12 C3 3F 05 CD 63 11 7E FE 22 3E 00 32 28 1E
|
||||
!8C20 C2 B4 0B CD B7 11 CD BC 06 3B E5 CD 05 12 3E E5
|
||||
!8C30 CD 43 05 C1 DA 9E 08 23 7E B7 2B C5 CA EF 09 36
|
||||
!8C40 2C C3 CE 0B E5 2A B6 1E F6 AF 32 A7 1E E3 C3 DA
|
||||
!8C50 0B CD BC 06 2C CD F5 0E E3 D5 7E FE 2C CA 02 0C
|
||||
!8C60 3A A7 1E B7 C2 78 0C 3E 3F CD C7 06 CD 43 05 D1
|
||||
!8C70 C1 DA 9E 08 23 7E B7 2B C5 CA EF 09 D5 3A 87 1E
|
||||
!8C80 B7 CA 2C 0C CD 4F 08 57 47 FE 22 CA 20 0C 3A A7
|
||||
!8C90 1E B7 57 CA 1D 0C 16 3A 06 2C 2B CD BA 11 EB 21
|
||||
!8CA0 40 0C E3 D5 C3 22 0A CD 4F 08 CD 37 18 E3 11 BE
|
||||
!8CB0 1E EB ED A0 ED A0 ED A0 ED A0 E1 2B CD 4F 08 CA
|
||||
!8CC0 4C 0C FE 2C C2 89 0B E3 2B CD 4F 08 C2 D6 0B D1
|
||||
!8CD0 3A A7 1E B7 EB C2 74 08 D5 B6 21 67 0C C4 02 12
|
||||
!8CE0 E1 C9 3F 45 78 74 72 61 20 69 67 6E 6F 72 65 64
|
||||
!8CF0 0D 0A 00 CD F0 09 B7 C2 90 0C 23 7E 23 B6 1E 06
|
||||
!8D00 CA FF 03 23 5E 23 56 ED 53 A3 1E CD 4F 08 FE 83
|
||||
!8D10 C2 78 0C C3 02 0C 11 00 00 C4 F5 0E 22 A8 1E CD
|
||||
!8D20 8E 03 C2 F1 03 F9 D5 7E 23 F5 D5 11 BE 1E ED A0
|
||||
!8D30 ED A0 ED A0 ED A0 E3 E5 CD CD 14 D1 21 BE 1E ED
|
||||
!8D40 A0 ED A0 ED A0 ED A0 E1 CD 89 17 E5 CD A7 17 E1
|
||||
!8D50 C1 90 CD 89 17 CA E6 0C EB 22 36 1E 69 60 C3 0C
|
||||
!8D60 08 F9 2A A8 1E 7E FE 2C C2 10 08 CD 4F 08 CD 9E
|
||||
!8D70 0C CD 08 0D F6 37 3A 87 1E 8F B7 E8 C3 FD 03 CD
|
||||
!8D80 BC 06 28 2B 16 00 D5 0E 01 CD C8 03 CD 82 0D 22
|
||||
!8D90 AA 1E 2A AA 1E C1 78 FE 78 D4 F9 0C 7E 16 00 D6
|
||||
!8DA0 B0 DA 40 0D FE 03 D2 40 0D FE 01 17 AA BA 57 DA
|
||||
!8DB0 EB 03 22 9F 1E CD 4F 08 C3 24 0D 7A B7 C2 70 0E
|
||||
!8DC0 7E 22 9F 1E D6 A9 D8 FE 07 D0 5F 3A 87 1E 3D B3
|
||||
!8DD0 7B CA 09 13 07 83 5F 21 DF 02 19 78 56 BA D0 23
|
||||
!8DE0 CD F9 0C C5 01 17 0D C5 ED 4B BE 1E C5 ED 4B C0
|
||||
!8DF0 1E C5 4E 23 46 23 C5 2A 9F 1E C3 0B 0D AF 32 87
|
||||
!8E00 1E CD 4F 08 1E 24 CA FF 03 DA 37 18 CD ED 08 D2
|
||||
!8E10 EA 0D FE A9 CA 82 0D FE 2E CA 37 18 FE AA CA D9
|
||||
!8E20 0D FE 22 CA B7 11 FE A7 CA D0 0E FE A4 CA 13 11
|
||||
!8E30 FE 26 C2 CC 0D CD 4F 08 FE 48 CA 43 1D FE 42 CA
|
||||
!8E40 B3 1D 1E 02 CA FF 03 D6 B3 D2 FB 0D CD 04 0D CD
|
||||
!8E50 BC 06 29 C9 16 7D CD 0B 0D 2A AA 1E E5 CD 68 17
|
||||
!8E60 CD F9 0C E1 C9 CD F5 0E E5 EB 22 BE 1E 3A 87 1E
|
||||
!8E70 B7 CC 7D 17 E1 C9 06 00 07 4F C5 CD 4F 08 79 FE
|
||||
!8E80 2F DA 22 0E CD 04 0D CD BC 06 2C CD FA 0C EB 2A
|
||||
!8E90 BE 1E E3 E5 EB CD A1 14 EB E3 C3 2A 0E CD D1 0D
|
||||
!8EA0 E3 11 E5 0D D5 01 59 01 09 4E 23 66 69 E9 15 FE
|
||||
!8EB0 AA C8 FE 2D C8 14 FE 2B C8 FE A9 C8 2B C9 F6 AF
|
||||
!8EC0 F5 CD F9 0C CD 01 09 F1 EB C1 E3 EB ED 53 BE 1E
|
||||
!8ED0 ED 43 C0 1E F5 CD 01 09 F1 C1 79 21 D1 10 C2 6B
|
||||
!8EE0 0E A3 4F 78 A2 E9 B3 4F 78 B2 E9 21 82 0E 3A 87
|
||||
!8EF0 1E 1F 7A 17 5F 16 64 78 BA D0 C3 68 0D 84 0E 79
|
||||
!8F00 B7 1F C1 D1 F5 CD FB 0C 21 C6 0E E5 CA A7 17 AF
|
||||
!8F10 32 87 1E D5 CD 56 13 7E 23 23 4E 23 46 D1 C5 F5
|
||||
!8F20 CD 5A 13 CD 89 17 F1 57 E1 7B B2 C8 7A D6 01 D8
|
||||
!8F30 AF BB 3C D0 15 1D 0A BE 23 03 CA AE 0E 3F C3 4A
|
||||
!8F40 17 3C 8F C1 A0 C6 FF 9F C3 51 17 16 5A CD 0B 0D
|
||||
!8F50 CD F9 0C CD 01 09 7B 2F 4F 7A 2F CD D1 10 C1 C3
|
||||
!8F60 17 0D 2B CD 4F 08 C8 CD BC 06 2C 01 E7 0E C5 F6
|
||||
!8F70 AF 32 86 1E 46 CD ED 08 DA EB 03 AF 4F 32 87 1E
|
||||
!8F80 CD 4F 08 DA 11 0F CD ED 08 DA 1E 0F 4F CD 4F 08
|
||||
!8F90 DA 12 0F CD ED 08 D2 12 0F D6 24 C2 2D 0F 3C 32
|
||||
!8FA0 87 1E 0F 81 4F CD 4F 08 3A A5 1E 3D CA E8 0F F2
|
||||
!8FB0 3D 0F 7E D6 28 CA C0 0F AF 32 A5 1E E5 50 59 2A
|
||||
!8FC0 B8 1E 7C 92 C2 4E 0F 7D 93 11 BA 1E CA 75 13 2A
|
||||
!8FD0 B2 1E EB 2A B0 1E 7C 92 C2 62 0F 7D 93 CA 78 0F
|
||||
!8FE0 79 96 23 C2 6D 0F 78 96 23 CA B2 0F 23 23 23 23
|
||||
!8FF0 C3 5B 0F E1 E3 D5 11 ED 0D 7C 92 20 02 7D 93 D1
|
||||
!9000 CA B5 0F E3 E5 C5 01 06 00 2A B4 1E E5 09 C1 E5
|
||||
!9010 CD B4 03 E1 22 B4 1E 60 69 22 B2 1E 2B 36 00 7C
|
||||
!9020 92 20 02 7D 93 C2 A1 0F D1 73 23 72 23 EB E1 C9
|
||||
!9030 32 C1 1E 21 81 03 22 BE 1E E1 C9 E5 2A 86 1E E3
|
||||
!9040 57 D5 C5 CD F5 08 C1 F1 EB E3 E5 EB 3C 57 7E FE
|
||||
!9050 2C CA C6 0F CD BC 06 29 22 AA 1E E1 22 86 1E 1E
|
||||
!9060 00 D5 11 E5 F5 2A B2 1E 3E 19 ED 5B B4 1E 7C 92
|
||||
!9070 C2 FA 0F 7D 93 CA 23 10 7E B9 23 C2 05 10 7E B8
|
||||
!9080 23 5E 23 56 23 C2 EE 0F 3A 86 1E B7 C2 F4 03 F1
|
||||
!9090 44 4D CA 75 13 96 CA 84 10 1E 10 C3 FF 03 11 04
|
||||
!90A0 00 F1 CA 16 09 71 23 70 23 4F CD C8 03 23 23 22
|
||||
!90B0 9F 1E 71 23 3A 86 1E 17 79 01 0B 00 D2 46 10 C1
|
||||
!90C0 03 71 23 70 23 F5 E5 CD 1D 18 EB E1 F1 3D C2 3E
|
||||
!90D0 10 F5 42 4B EB 19 DA E0 03 CD D1 03 22 B4 1E 2B
|
||||
!90E0 36 00 7C 92 20 02 7D 93 C2 64 10 03 57 2A 9F 1E
|
||||
!90F0 5E EB 29 09 EB 2B 2B 73 23 72 23 F1 DA AC 10 47
|
||||
!9100 4F 7E 23 16 E1 5E 23 56 23 E3 F5 7C 92 C2 97 10
|
||||
!9110 7D 93 D2 1E 10 E5 CD 1D 18 D1 19 F1 3D 44 4D C2
|
||||
!9120 89 10 29 29 C1 09 EB 2A AA 1E C9 2A B4 1E EB 21
|
||||
!9130 00 00 39 3A 87 1E B7 CA CC 10 CD 56 13 CD 48 12
|
||||
!9140 2A 34 1E EB 2A 9D 1E 7D 93 4F 7C 9A 41 50 1E 00
|
||||
!9150 21 87 1E 73 06 90 C3 56 17 3A 85 1E 47 AF C3 D2
|
||||
!9160 10 CD 71 11 CD 63 11 01 F0 09 C5 D5 CD BC 06 28
|
||||
!9170 CD F5 0E E5 EB 2B 56 2B 5E E1 CD F9 0C CD BC 06
|
||||
!9180 29 CD BC 06 B1 44 4D E3 71 23 70 C3 B0 11 CD 71
|
||||
!9190 11 D5 CD D1 0D CD F9 0C E3 5E 23 56 23 7A B3 CA
|
||||
!91A0 F7 03 7E 23 66 6F E5 2A B8 1E E3 22 B8 1E 2A BC
|
||||
!91B0 1E E5 2A BA 1E E5 D5 11 BA 1E 21 BE 1E ED A0 ED
|
||||
!91C0 A0 ED A0 ED A0 E1 CD F6 0C 2B CD 4F 08 C2 EB 03
|
||||
!91D0 E1 22 BA 1E E1 22 BC 1E E1 22 B8 1E E1 C9 E5 2A
|
||||
!91E0 36 1E 23 7C B5 E1 C0 1E 16 C3 FF 03 CD BC 06 A4
|
||||
!91F0 3E 80 32 A5 1E B6 47 CD FA 0E C3 F9 0C CD F9 0C
|
||||
!9200 CD DA 18 CD B6 11 CD 56 13 01 B7 13 C5 7E 23 23
|
||||
!9210 E5 CD 1B 12 E1 4E 23 46 CD AA 11 E5 6F CD 49 13
|
||||
!9220 D1 C9 CD 1B 12 21 99 1E E5 77 23 23 73 23 72 E1
|
||||
!9230 C9 2B 06 22 50 E5 0E FF 23 7E 0C B7 CA CC 11 BA
|
||||
!9240 CA CC 11 B8 C2 BD 11 FE 22 CC 4F 08 E3 23 EB 79
|
||||
!9250 CD AA 11 11 99 1E 2A 8B 1E 22 BE 1E 3E 01 32 87
|
||||
!9260 1E EB ED A0 ED A0 ED A0 ED A0 EB 7C 92 20 02 7D
|
||||
!9270 93 22 8B 1E E1 7E C0 1E 1E C3 FF 03 23 CD B6 11
|
||||
!9280 CD 56 13 CD 89 17 1C 1D C8 0A CD C7 06 FE 0D CC
|
||||
!9290 23 0B 03 C3 0C 12 B7 0E F1 F5 2A 34 1E EB 2A 9D
|
||||
!92A0 1E 2F 4F 06 FF 09 23 7C 92 20 02 7D 93 DA 3C 12
|
||||
!92B0 22 9D 1E 23 EB F1 C9 F1 1E 1A CA FF 03 BF F5 01
|
||||
!92C0 1D 12 C5 2A 89 1E 22 9D 1E 21 00 00 E5 2A 34 1E
|
||||
!92D0 E5 21 8D 1E ED 5B 8B 1E 7C 92 20 02 7D 93 01 59
|
||||
!92E0 12 C2 B5 12 2A B0 1E ED 5B B2 1E 7C 92 20 02 7D
|
||||
!92F0 93 CA 84 12 7E 23 23 B7 CD B8 12 C3 6C 12 C1 ED
|
||||
!9300 5B B4 1E 7C 92 20 02 7D 93 CA E4 12 CD 89 17 7B
|
||||
!9310 E5 09 B7 F2 83 12 22 9F 1E E1 4E 06 00 09 09 23
|
||||
!9320 ED 5B 9F 1E 7C 92 20 02 7D 93 CA 84 12 01 A5 12
|
||||
!9330 C5 F6 80 7E 23 23 5E 23 56 23 F0 B7 C8 44 4D 2A
|
||||
!9340 9D 1E 7C 92 20 02 7D 93 60 69 D8 E1 E3 7C 92 20
|
||||
!9350 02 7D 93 E3 E5 60 69 D0 C1 F1 F1 E5 D5 C5 C9 D1
|
||||
!9360 E1 7D B4 C8 2B 46 2B 4E E5 2B 2B 6E 26 00 09 50
|
||||
!9370 59 2B 44 4D 2A 9D 1E CD B7 03 E1 71 23 70 69 60
|
||||
!9380 2B C3 4B 12 C5 E5 2A BE 1E E3 CD 82 0D E3 CD FA
|
||||
!9390 0C 7E E5 2A BE 1E E5 86 1E 1C DA FF 03 CD A7 11
|
||||
!93A0 D1 CD 5A 13 E3 CD 59 13 E5 2A 9B 1E EB CD 40 13
|
||||
!93B0 CD 40 13 21 14 0D E3 E5 C3 D8 11 E1 E3 7E 23 23
|
||||
!93C0 4E 23 46 6F 2C 2D C8 0A 12 03 13 C3 4A 13 CD FA
|
||||
!93D0 0C 2A BE 1E EB CD 77 13 EB C0 D5 50 59 1B 4E 2A
|
||||
!93E0 9D 1E 7C 92 20 02 7D 93 C2 75 13 47 09 22 9D 1E
|
||||
!93F0 E1 C9 2A 8B 1E 2B 46 2B 4E 2B 2B 7C 92 20 02 7D
|
||||
!9400 93 C0 22 8B 1E C9 01 E1 10 C5 CD 53 13 AF 57 32
|
||||
!9410 87 1E 7E B7 C9 01 E1 10 C5 CD 8F 13 CA 16 09 23
|
||||
!9420 23 5E 23 56 1A C9 3E 01 CD A7 11 CD A4 14 2A 9B
|
||||
!9430 1E 73 C1 C3 D8 11 CD 54 14 AF E3 4F E5 7E B8 DA
|
||||
!9440 C9 13 78 11 0E 00 C5 CD 1B 12 C1 E1 E5 23 23 46
|
||||
!9450 23 66 68 06 00 09 44 4D CD AA 11 6F CD 49 13 D1
|
||||
!9460 CD 5A 13 C3 D8 11 CD 54 14 D1 D5 1A 90 C3 BF 13
|
||||
!9470 EB 7E CD 59 14 04 05 CA 16 09 C5 1E FF FE 29 CA
|
||||
!9480 0E 14 CD BC 06 2C CD A1 14 CD BC 06 29 F1 E3 01
|
||||
!9490 C1 13 C5 3D BE 06 00 D0 4F 7E 91 BB 47 D8 43 C9
|
||||
!94A0 CD 8F 13 CA 4A 15 5F 23 23 7E 23 66 6F E5 19 46
|
||||
!94B0 72 E3 C5 7E FE 24 C2 43 14 CD 43 1D 18 0D FE 25
|
||||
!94C0 C2 4D 14 CD B3 1D 18 03 CD 37 18 C1 E1 70 C9 EB
|
||||
!94D0 CD BC 06 29 C1 D1 C5 43 C9 CD A4 14 32 22 1E CD
|
||||
!94E0 21 1E C3 E1 10 CD 8E 14 C3 E9 1D CD 8E 14 F5 1E
|
||||
!94F0 00 2B CD 4F 08 CA 84 14 CD BC 06 2C CD A1 14 C1
|
||||
!9500 CD 21 1E AB A0 CA 85 14 C9 CD A1 14 32 22 1E 32
|
||||
!9510 EA 1D CD BC 06 2C C3 A1 14 CD 4F 08 CD F6 0C CD
|
||||
!9520 FB 08 7A B7 C2 16 09 2B CD 4F 08 7B C9 CD 01 09
|
||||
!9530 1A C3 E1 10 CD F6 0C CD 01 09 D5 CD BC 06 2C CD
|
||||
!9540 A1 14 D1 12 C9 21 C1 19 CD 89 17 C3 DC 14 CD 89
|
||||
!9550 17 21 C1 D1 CD 68 17 78 B7 C8 3A C1 1E B7 CA 79
|
||||
!9560 15 90 D2 FE 14 2F 3C 2A BE 1E E5 2A C0 1E E5 ED
|
||||
!9570 53 BE 1E ED 43 C0 1E C1 D1 FE 19 D0 F5 CD 92 17
|
||||
!9580 67 F1 CD AF 15 B4 21 BE 1E F2 24 15 CD 8F 15 D2
|
||||
!9590 6A 15 23 34 CA FA 03 2E 01 CD C5 15 C3 6A 15 AF
|
||||
!95A0 90 47 7E 9B 5F 23 7E 9A 57 23 7E 99 4F DC 9B 15
|
||||
!95B0 68 63 AF 47 79 B7 C2 57 15 4A 54 65 6F 78 D6 08
|
||||
!95C0 FE E0 C2 38 15 AF 32 C1 1E C9 05 29 7A 17 57 79
|
||||
!95D0 8F 4F F2 4F 15 78 5C 45 B7 CA 6A 15 21 C1 1E 86
|
||||
!95E0 77 D2 4A 15 C8 78 21 C1 1E B7 FC 82 15 46 23 7E
|
||||
!95F0 E6 80 A9 4F ED 53 BE 1E ED 43 C0 1E C9 1C C0 14
|
||||
!9600 C0 0C C0 0E 80 34 C0 C3 FA 03 7E 83 5F 23 7E 8A
|
||||
!9610 57 23 7E 89 4F C9 21 C2 1E 7E 2F 77 AF 6F 90 47
|
||||
!9620 7D 9B 5F 7D 9A 57 7D 99 4F C9 06 00 D6 08 DA BE
|
||||
!9630 15 43 5A 51 0E 00 C3 B1 15 C6 09 6F AF 2D C8 79
|
||||
!9640 1F 4F 7A 1F 57 7B 1F 5F 78 1F 47 C3 C1 15 00 00
|
||||
!9650 00 81 03 AA 56 19 80 F1 22 76 80 45 AA 38 82 CD
|
||||
!9660 3F 17 B7 EA 16 09 21 C1 1E 7E 01 35 80 11 F3 04
|
||||
!9670 90 F5 70 D5 C5 CD DC 14 C1 D1 04 CD 90 16 21 D3
|
||||
!9680 15 CD D3 14 21 D7 15 CD 98 1A 01 80 80 11 00 00
|
||||
!9690 CD DC 14 F1 CD AB 18 01 31 80 11 18 72 21 C1 D1
|
||||
!96A0 CD 3F 17 C8 2E 00 CD F8 16 79 32 D0 1E EB 22 D1
|
||||
!96B0 1E 01 00 00 50 58 21 35 15 E5 21 47 16 E5 E5 21
|
||||
!96C0 BE 1E 7E 23 B7 CA 73 16 E5 2E 08 1F 67 79 D2 61
|
||||
!96D0 16 E5 2A D1 1E 19 EB E1 3A D0 1E 89 1F 4F 7A 1F
|
||||
!96E0 57 7B 1F 5F 78 1F 47 2D 7C C2 50 16 E1 C9 43 5A
|
||||
!96F0 51 4F C9 2A BE 1E E5 2A C0 1E E5 01 20 84 11 00
|
||||
!9700 00 ED 53 BE 1E ED 43 C0 1E C1 D1 CD 3F 17 CA EE
|
||||
!9710 03 2E FF CD F8 16 34 34 2B 7E 32 F5 1D 2B 7E 32
|
||||
!9720 F1 1D 2B 7E 32 ED 1D 41 EB AF 4F 57 5F 32 F8 1D
|
||||
!9730 E5 C5 7D CD EC 1D DE 00 3F D2 C8 16 32 F8 1D F1
|
||||
!9740 F1 37 D2 C1 E1 79 3C 3D 1F FA 6B 15 17 7B 17 5F
|
||||
!9750 7A 17 57 79 17 4F 29 78 17 47 3A F8 1D 17 32 F8
|
||||
!9760 1D 79 B2 B3 C2 B5 16 E5 21 C1 1E 35 E1 C2 B5 16
|
||||
!9770 C3 FA 03 78 B7 CA 1C 17 7D 21 C1 1E AE 80 47 1F
|
||||
!9780 A8 78 F2 1B 17 C6 80 77 CA 75 13 CD 92 17 77 2B
|
||||
!9790 C9 CD 3F 17 2F E1 B7 E1 F2 4A 15 C3 FA 03 ED 5B
|
||||
!97A0 BE 1E ED 4B C0 1E 78 B7 C8 C6 02 DA FA 03 47 CD
|
||||
!97B0 DC 14 21 C1 1E 34 C0 C3 FA 03 3A C1 1E B7 C8 3A
|
||||
!97C0 C0 1E FE 2F 17 9F C0 3C C9 CD 3F 17 06 88 11 00
|
||||
!97D0 00 21 C1 1E 4F 70 06 00 23 36 80 17 C3 32 15 CD
|
||||
!97E0 3F 17 F0 21 C0 1E 7E EE 80 77 C9 EB 2A BE 1E E3
|
||||
!97F0 E5 2A C0 1E E3 E5 EB C9 11 BE 1E ED A0 ED A0 ED
|
||||
!9800 A0 ED A0 C9 5E 23 56 23 4E 23 46 23 C9 21 C0 1E
|
||||
!9810 7E 07 37 1F 77 3F 1F 23 23 77 79 07 37 1F 4F 1F
|
||||
!9820 AE C9 78 B7 CA 3F 17 21 48 17 E5 CD 3F 17 79 C8
|
||||
!9830 21 C0 1E AE 79 F8 CD C1 17 1F A9 C9 23 78 BE C0
|
||||
!9840 2B 79 BE C0 2B 7A BE C0 2B 7B 96 C0 E1 E1 C9 47
|
||||
!9850 4F 57 5F B7 C8 E5 ED 5B BE 1E ED 4B C0 1E CD 92
|
||||
!9860 17 AE 67 FC FD 17 3E 98 90 CD AF 15 7C 17 DC 82
|
||||
!9870 15 06 00 DC 9B 15 E1 C9 1B 7A A3 3C C0 0B C9 21
|
||||
!9880 C1 1E 7E FE 98 3A BE 1E D0 7E CD D4 17 36 98 7B
|
||||
!9890 F5 79 17 CD 32 15 F1 C9 21 00 00 78 B1 C8 78 06
|
||||
!98A0 10 29 DA 1E 10 CB 11 17 D2 34 18 19 DA 1E 10 10
|
||||
!98B0 F0 C9 FE 2D F5 CA 43 18 FE 2B CA 43 18 2B CD 4A
|
||||
!98C0 15 47 57 5F 2F 4F CD 4F 08 DA 94 18 FE 2E CA 6F
|
||||
!98D0 18 FE 45 C2 73 18 CD 4F 08 CD 33 0E CD 4F 08 DA
|
||||
!98E0 BB 18 14 C2 73 18 AF 93 5F 0C 0C CA 4B 18 E5 7B
|
||||
!98F0 90 F4 8C 18 F2 82 18 F5 CD 78 16 F1 3C C2 76 18
|
||||
!9900 D1 F1 CC 68 17 EB C9 C8 F5 CD 23 17 F1 3D C9 D5
|
||||
!9910 57 78 89 47 C5 E5 D5 CD 23 17 F1 D6 30 CD AB 18
|
||||
!9920 E1 C1 D1 C3 4B 18 2A BE 1E E5 2A C0 1E E5 CD 51
|
||||
!9930 17 C1 D1 C3 DC 14 7B 07 07 83 07 86 D6 30 5F C3
|
||||
!9940 61 18 E5 21 7D 03 CD 02 12 E1 EB AF 06 98 CD 56
|
||||
!9950 17 21 01 12 E5 21 C3 1E E5 CD 3F 17 36 20 F2 E8
|
||||
!9960 18 36 2D 23 36 30 CA AC 19 E5 FC 68 17 AF F5 CD
|
||||
!9970 B2 19 01 43 91 11 F8 4F CD A7 17 B7 E2 15 19 F1
|
||||
!9980 CD 8D 18 F5 C3 F7 18 CD 78 16 F1 3C F5 CD B2 19
|
||||
!9990 CD CA 14 3C CD D4 17 ED 53 BE 1E ED 43 C0 1E 01
|
||||
!99A0 06 03 F1 81 3C FA 36 19 FE 08 D2 36 19 3C 47 3E
|
||||
!99B0 02 3D 3D E1 F5 11 C5 19 05 C2 47 19 36 2E 23 36
|
||||
!99C0 30 23 05 36 2E CC 90 17 C5 E5 EB ED 5B BE 1E ED
|
||||
!99D0 4B C0 1E 06 2F 04 7B 96 5F 23 7A 9E 57 23 79 9E
|
||||
!99E0 4F 2B 2B D2 5A 19 CD 8F 15 23 ED 53 BE 1E ED 43
|
||||
!99F0 C0 1E EB E1 70 23 C1 0D C2 47 19 05 CA 90 19 2B
|
||||
!9A00 7E FE 30 CA 84 19 FE 2E C4 90 17 F1 CA AF 19 36
|
||||
!9A10 45 23 36 2B F2 A0 19 36 2D 2F 3C 06 2F 04 D6 0A
|
||||
!9A20 D2 A2 19 C6 3A 23 70 23 77 23 71 E1 C9 01 74 94
|
||||
!9A30 11 F7 23 CD A7 17 B7 E1 E2 0C 19 E9 00 00 00 80
|
||||
!9A40 A0 86 01 10 27 00 E8 03 00 64 00 00 0A 00 00 01
|
||||
!9A50 00 00 21 68 17 E3 E9 CD 70 17 21 C1 19 11 BE 1E
|
||||
!9A60 ED A0 ED A0 ED A0 ED A0 C1 D1 CD 3F 17 78 CA 37
|
||||
!9A70 1A F2 FD 19 B7 CA EE 03 B7 CA 4B 15 D5 C5 79 F6
|
||||
!9A80 7F ED 5B BE 1E ED 4B C0 1E F2 1F 1A D5 C5 CD 04
|
||||
!9A90 18 C1 D1 F5 CD A7 17 E1 7C 1F E1 22 C0 1E E1 22
|
||||
!9AA0 BE 1E DC D7 19 CC 68 17 D5 C5 CD E4 15 C1 D1 CD
|
||||
!9AB0 25 16 CD 70 17 01 38 81 11 3B AA CD 25 16 3A C1
|
||||
!9AC0 1E FE 88 D2 16 17 CD 04 18 C6 80 C6 02 DA 16 17
|
||||
!9AD0 F5 21 D3 15 CD CD 14 CD 1C 16 F1 C1 D1 F5 CD D9
|
||||
!9AE0 14 CD 68 17 21 77 1A CD AC 1A 11 00 00 C1 4A C3
|
||||
!9AF0 25 16 08 40 2E 94 74 70 4F 2E 77 6E 02 88 7A E6
|
||||
!9B00 A0 2A 7C 50 AA AA 7E FF FF 7F 7F 00 00 80 81 00
|
||||
!9B10 00 00 81 CD 70 17 11 23 16 D5 E5 ED 5B BE 1E ED
|
||||
!9B20 4B C0 1E CD 25 16 E1 CD 70 17 7E 23 11 BE 1E ED
|
||||
!9B30 A0 ED A0 ED A0 ED A0 06 F1 C1 D1 3D C8 D5 C5 F5
|
||||
!9B40 E5 CD 25 16 E1 CD 89 17 E5 CD DC 14 E1 C3 BD 1A
|
||||
!9B50 CD 3F 17 21 FC 1D FA 4F 1B 21 1D 1E 11 BE 1E ED
|
||||
!9B60 A0 ED A0 ED A0 ED A0 21 FC 1D C8 86 E6 07 06 00
|
||||
!9B70 77 23 87 87 4F 09 CD 89 17 CD 25 16 3A FB 1D 3C
|
||||
!9B80 E6 03 06 00 FE 01 88 32 FB 1D 21 53 1B 87 87 4F
|
||||
!9B90 09 CD CD 14 ED 5B BE 1E ED 4B C0 1E 7B 59 EE 4F
|
||||
!9BA0 4F 21 C2 1E 36 80 2B 46 36 80 21 FA 1D 34 7E D6
|
||||
!9BB0 AB C2 3D 1B 77 0C 15 1C CD 35 15 11 1D 1E 21 BE
|
||||
!9BC0 1E ED A0 ED A0 ED A0 ED A0 C9 77 2B 77 2B 77 C3
|
||||
!9BD0 19 1B 68 B1 46 68 99 E9 92 69 10 D1 75 68 21 B2
|
||||
!9BE0 1B CD CD 14 CD 70 17 01 49 83 11 DB 0F ED 53 BE
|
||||
!9BF0 1E ED 43 C0 1E C1 D1 CD 90 16 CD 70 17 CD 04 18
|
||||
!9C00 C1 D1 CD D9 14 21 B6 1B CD D3 14 CD 3F 17 37 F2
|
||||
!9C10 9E 1B CD CA 14 CD 3F 17 B7 F5 F4 68 17 21 B6 1B
|
||||
!9C20 CD CD 14 F1 D4 68 17 21 BA 1B C3 98 1A DB 0F 49
|
||||
!9C30 81 00 00 00 7F 05 BA D7 1E 86 64 26 99 87 58 34
|
||||
!9C40 23 87 E0 5D A5 86 DA 0F 49 83 CD 70 17 CD 69 1B
|
||||
!9C50 C1 E1 CD 70 17 EB ED 53 BE 1E ED 43 C0 1E CD 63
|
||||
!9C60 1B C3 8E 16 CD 3F 17 FC D7 19 FC 68 17 3A C1 1E
|
||||
!9C70 FE 81 DA 06 1C 01 00 81 51 59 CD 90 16 21 D3 14
|
||||
!9C80 E5 21 10 1C CD 98 1A 21 B2 1B C9 09 4A D7 3B 78
|
||||
!9C90 02 6E 84 7B FE C1 2F 7C 74 31 9A 7D 84 3D 5A 7D
|
||||
!9CA0 C8 7F 91 7E E4 BB 4C 7E 6C AA AA 7F 00 00 00 81
|
||||
!9CB0 C3 00 00 3E 0C CF C9 ED 45 CD A1 14 7B 32 25 1E
|
||||
!9CC0 C9 CD F6 0C CD 01 09 ED 53 29 1E ED 53 2B 1E C9
|
||||
!9CD0 CD 01 09 D5 E1 46 23 7E C3 D2 10 CD F6 0C CD 01
|
||||
!9CE0 09 D5 CD BC 06 2C CD F6 0C CD 01 09 E3 73 23 72
|
||||
!9CF0 E1 C9 C0 CD 96 1C 1B 2A 89 1E AF ED 52 38 0B ED
|
||||
!9D00 53 89 1E 21 CE FF 19 22 34 1E 13 ED 53 E7 1D 18
|
||||
!9D10 21 D7 FE 3A 20 FB 0E 00 CD D4 1C 47 CD D4 1C 57
|
||||
!9D20 CD D4 1C 5F CD D4 1C 3D 28 1A 3C C2 FD 03 C9 CD
|
||||
!9D30 96 1C CD D4 1C 12 13 10 F9 CD D4 1C 79 B7 C2 7C
|
||||
!9D40 1D C3 B4 1C CD D4 1C 79 B7 C2 7C 1D C3 E0 00 CD
|
||||
!9D50 E5 1C 07 07 07 07 6F CD E5 1C B5 6F 81 4F 7D C9
|
||||
!9D60 D7 D6 30 FE 0A D8 D6 07 C9 CD F9 0C CD 01 09 C5
|
||||
!9D70 21 C3 1E 7A FE 00 28 0C CD 26 1D 78 FE 30 28 02
|
||||
!9D80 70 23 71 23 7B CD 26 1D 7A FE 00 20 05 78 FE 30
|
||||
!9D90 28 02 70 23 71 23 AF 77 23 77 C1 21 C3 1E C3 88
|
||||
!9DA0 11 47 E6 0F FE 0A 38 02 C6 07 C6 30 4F 78 0F 0F
|
||||
!9DB0 0F 0F E6 0F FE 0A 38 02 C6 07 C6 30 47 C9 EB 21
|
||||
!9DC0 00 00 CD 5C 1D DA 7C 1D 18 05 CD 5C 1D 38 1F 29
|
||||
!9DD0 29 29 29 B5 6F 18 F3 13 1A FE 20 CA 5C 1D D6 30
|
||||
!9DE0 D8 FE 0A 38 05 D6 07 FE 0A D8 FE 10 3F C9 EB 7A
|
||||
!9DF0 4B E5 CD D1 10 E1 C9 1E 26 C3 FF 03 CD F9 0C CD
|
||||
!9E00 01 09 C5 21 C3 1E 06 11 05 78 FE 01 28 08 CB 13
|
||||
!9E10 CB 12 30 F4 18 04 CB 13 CB 12 3E 30 CE 00 77 23
|
||||
!9E20 05 20 F3 AF 77 23 77 C1 21 C3 1E C3 88 11 EB 21
|
||||
!9E30 00 00 CD D0 1D DA DE 1D D6 30 29 B5 6F CD D0 1D
|
||||
!9E40 30 F6 EB 7A 4B E5 CD D1 10 E1 C9 13 1A FE 20 CA
|
||||
!9E50 D0 1D FE 30 D8 FE 32 3F C9 1E 28 C3 FF 03
|
||||
93
OperatingSystem/cpm/cpmldr.asm
Normal file
93
OperatingSystem/cpm/cpmldr.asm
Normal file
@@ -0,0 +1,93 @@
|
||||
.include "extern_symbols.s" ;include monitor symbols.
|
||||
START_ADDR .EQU 0x8000
|
||||
|
||||
|
||||
org START_ADDR
|
||||
com_header:
|
||||
jp com_prg
|
||||
db 0x00
|
||||
dw 0x00, 0x00, 0x00 ;always 0
|
||||
dw [START_ADDR] ;start addr
|
||||
dw [_eof] ;end of file
|
||||
dw [_eof - START_ADDR] ;length
|
||||
dc 48,0x00
|
||||
|
||||
com_prg:
|
||||
;shadow rom
|
||||
call PRINTINLINE
|
||||
db 10,13,"Shadowing ROM @ 0x0000-0x3FFF ...",10,13,0
|
||||
ld a,0x01 ;set bit1 to switch to ram
|
||||
out (0x00),a ;store to bank select register
|
||||
ld hl,[prg_start]
|
||||
ld de,0
|
||||
ld bc,[prg_end-prg_start]
|
||||
ldir
|
||||
jp 0x0000
|
||||
|
||||
|
||||
prg_start:
|
||||
phase 0x0000
|
||||
|
||||
BASRST_00: ;Hardware Restart
|
||||
jp CSTART
|
||||
defs 5
|
||||
;org 0x0008
|
||||
BASRST_08 ;Print Char
|
||||
jp _BASRST_08
|
||||
defs 5
|
||||
;org 0x0010
|
||||
BASRST_10 ;receive char
|
||||
jp _BASRST_10
|
||||
defs 5
|
||||
;org 0x0018
|
||||
BASRST_18 ;Buffer length
|
||||
jp _BASRST_18
|
||||
defs 5
|
||||
;org 0x0044
|
||||
|
||||
_BASRST_08:
|
||||
out (CS_SIO_A_D),a
|
||||
_wait:
|
||||
ld a,1
|
||||
out (CS_SIO_A_C),A
|
||||
in A,(CS_SIO_A_C) ;read RRx
|
||||
bit 0,A
|
||||
jr z,_wait
|
||||
ret
|
||||
|
||||
_BASRST_10:
|
||||
;RTS ON
|
||||
ld a,005h ;write into WR0: select WR5
|
||||
out (CS_SIO_A_C),A
|
||||
ld a,0EAh ;DTR active, TX 8bit, BREAK off, TX on, RTS active
|
||||
out (CS_SIO_A_C),A
|
||||
nop
|
||||
;read if avail
|
||||
xor a ; a = 0
|
||||
out (CS_SIO_A_C), a ; select reg 0
|
||||
in a, (CS_SIO_A_C) ; read reg 0
|
||||
and 1 ; mask D0 (recieve char available)
|
||||
;RTS OFF
|
||||
push af
|
||||
ld a,005h ;write into WR0: select WR5
|
||||
out (CS_SIO_A_C),A
|
||||
ld a,068h ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive
|
||||
out (CS_SIO_A_C),A
|
||||
pop af
|
||||
ret Z ; return 0 if no char
|
||||
;read data
|
||||
in a, (CS_SIO_A_D) ; read char if avail
|
||||
ret ; return
|
||||
|
||||
_BASRST_18:
|
||||
ld a,0
|
||||
ret
|
||||
|
||||
BASSTART:
|
||||
.include "basic.s"
|
||||
_WORKSPACE:
|
||||
|
||||
dephase
|
||||
prg_end:
|
||||
|
||||
_eof:
|
||||
4564
OperatingSystem/cpm/include/basic.s
Normal file
4564
OperatingSystem/cpm/include/basic.s
Normal file
File diff suppressed because it is too large
Load Diff
107
OperatingSystem/cpm/include/bios.s
Normal file
107
OperatingSystem/cpm/include/bios.s
Normal file
@@ -0,0 +1,107 @@
|
||||
; Z8C I/O Drivers for CP/M 2.2
|
||||
; (four drive single density version)
|
||||
;
|
||||
; Version 2.2 February, 1980
|
||||
; Adapted by Dennis Gunia January, 2024
|
||||
vers equ 22 ;version 2.2
|
||||
;
|
||||
; Copyright (c) 1980
|
||||
; Digital Research
|
||||
; Box 579, Pacific Grove
|
||||
; California, 93950
|
||||
;
|
||||
;
|
||||
true equ 0ffffh ;value of "true"
|
||||
false equ not true ;"false"
|
||||
test equ false ;true if test bios
|
||||
;
|
||||
if test
|
||||
bias equ 03400h ;base of CCP in test system
|
||||
endif
|
||||
if not test
|
||||
bias equ 0000h ;generate relocatable cp/m system
|
||||
endif
|
||||
;
|
||||
patch equ 1600h
|
||||
;
|
||||
org patch
|
||||
cpmb equ $-patch ;base of cpm console processor
|
||||
bdos equ 806h+cpmb ;basic dos (resident portion)
|
||||
cpml equ $-cpmb ;length (in bytes) of cpm system
|
||||
nsects equ cpml/128 ;number of sectors to load
|
||||
offset equ 2 ;number of disk tracks used by cp/m
|
||||
cdisk equ 0004h ;address of last logged disk on warm start
|
||||
buff equ 0080h ;default buffer address
|
||||
retry equ 10 ;max retries on disk i/o before error
|
||||
;
|
||||
; perform following functions
|
||||
; boot cold start
|
||||
; wboot warm start (save i/o byte)
|
||||
; (boot and wboot are the same for mds)
|
||||
; const console status
|
||||
; reg-a = 00 if no character ready
|
||||
; reg-a = ff if character ready
|
||||
; conin console character in (result in reg-a)
|
||||
; conout console character out (char in reg-c)
|
||||
; list list out (char in reg-c)
|
||||
; punch punch out (char in reg-c)
|
||||
; reader paper tape reader in (result to reg-a)
|
||||
; home move to track 00
|
||||
;
|
||||
; (the following calls set-up the io parameter block for the
|
||||
; mds, which is used to perform subsequent reads and writes)
|
||||
; seldsk select disk given by reg-c (0,1,2...)
|
||||
; settrk set track address (0,...76) for subsequent read/write
|
||||
; setsec set sector address (1,...,26) for subsequent read/write
|
||||
; setdma set subsequent dma address (initially 80h)
|
||||
;
|
||||
; (read and write assume previous calls to set up the io parameters)
|
||||
; read read track/sector to preset dma address
|
||||
; write write track/sector from preset dma address
|
||||
;
|
||||
; jump vector for indiviual routines
|
||||
jmp boot
|
||||
wboote: jmp wboot
|
||||
jmp const
|
||||
jmp conin
|
||||
jmp conout
|
||||
jmp list
|
||||
jmp punch
|
||||
jmp reader
|
||||
jmp home
|
||||
jmp seldsk
|
||||
jmp settrk
|
||||
jmp setsec
|
||||
jmp setdma
|
||||
jmp read
|
||||
jmp write
|
||||
jmp listst ;list status
|
||||
jmp sectran
|
||||
|
||||
readf equ 4h ;read function
|
||||
writf equ 6h ;write function
|
||||
recal equ 3h ;recalibrate drive
|
||||
iordy equ 4h ;i/o finished mask
|
||||
cr equ 0dh ;carriage return
|
||||
lf equ 0ah ;line feed
|
||||
;
|
||||
signon: ;signon message: xxk cp/m vers y.y
|
||||
db cr,lf,lf
|
||||
if test
|
||||
db '32' ;32k example bios
|
||||
endif
|
||||
if not test
|
||||
db '00' ;memory size filled by relocator
|
||||
endif
|
||||
db 'k CP/M vers '
|
||||
db vers/10+'0','.',vers mod 10+'0'
|
||||
db cr,lf,0
|
||||
;
|
||||
boot: ;print signon message and go to ccp
|
||||
; (note: mds boot initialized iobyte at 0003h)
|
||||
lxi sp,buff+80h
|
||||
lxi h,signon
|
||||
call prmsg ;print message
|
||||
xra a ;clear accumulator
|
||||
sta cdisk ;set initially to disk a
|
||||
jmp gocpm ;go to cp/m
|
||||
1
OperatingSystem/cpm/include/extern_symbols.s
Symbolic link
1
OperatingSystem/cpm/include/extern_symbols.s
Symbolic link
@@ -0,0 +1 @@
|
||||
../../monitor_v2/zout/symbols.s
|
||||
5
OperatingSystem/cpm/properties.env
Normal file
5
OperatingSystem/cpm/properties.env
Normal file
@@ -0,0 +1,5 @@
|
||||
export OPT_GEN_SYMBOLTABLE=0
|
||||
export OPT_GEN_MONFILE=1
|
||||
export OPT_GEN_OBJFILE=1
|
||||
export OPT_WRITEROM=0
|
||||
export FILENAME=test
|
||||
BIN
OperatingSystem/cpm/zout/HELLORD.COM
Normal file
BIN
OperatingSystem/cpm/zout/HELLORD.COM
Normal file
Binary file not shown.
BIN
OperatingSystem/cpm/zout/test.bin
Normal file
BIN
OperatingSystem/cpm/zout/test.bin
Normal file
Binary file not shown.
487
OperatingSystem/cpm/zout/test.hex
Normal file
487
OperatingSystem/cpm/zout/test.hex
Normal file
@@ -0,0 +1,487 @@
|
||||
:10800000C340800000000000000000805E9E5E1EF5
|
||||
:108010000000000000000000000000000000000060
|
||||
:108020000000000000000000000000000000000050
|
||||
:108030000000000000000000000000000000000040
|
||||
:10804000CD91010A0D536861646F77696E672052A4
|
||||
:108050004F4D2040203078303030302D307833464E
|
||||
:108060004646202E2E2E0A0D003E01D300217B8095
|
||||
:1080700011000001E31DEDB0C30000C35A00000071
|
||||
:10808000000000C320000000000000C32D0000001D
|
||||
:10809000000000C34B000000000000D3083E01D3E5
|
||||
:1080A00009DB09CB4728F6C93E05D3093EEAD309C7
|
||||
:1080B00000AFD309DB09E601F53E05D3093E68D3DD
|
||||
:1080C00009F1C8DB08C93E00C9C35A00C3DD000579
|
||||
:1080D0000109D210C021E31DF9AF32301E211E0369
|
||||
:1080E000015A0011E31DEDB0EBF9CD2605CD190BBA
|
||||
:1080F00032841E32D31E21371F237CB5CAA2007ED4
|
||||
:10810000472F77BE70CA7E00C3A200CD1B09B7C23D
|
||||
:10811000EB03EB2B3ED94677BE70C27B002B1136AA
|
||||
:108120001F7C9220027D93DA7B0011CEFF22891EF4
|
||||
:108130001922341ECD01052A341E11EFFF1911D367
|
||||
:108140001E7D936F7C9A67E521F500CD0212E1CD8B
|
||||
:10815000CF1821E600CD021231401ECD2605C339CD
|
||||
:108160000420427974657320667265650D0A00000B
|
||||
:108170005A38302042415349432056657220342EEC
|
||||
:1081800037630D0A436F70797269676874202843FA
|
||||
:10819000292031393738206279204D6963726F7335
|
||||
:1081A0006F66740D0A4D6F64696669656420666F59
|
||||
:1081B00072205A38432062792044656E6E697320BC
|
||||
:1081C00047756E69610D0A00004D656D6F7279200B
|
||||
:1081D000746F70004E1704186417E61DB0105E141B
|
||||
:1081E000DE10DC19D51AE415371A631B691BCF1B87
|
||||
:1081F000E91BB214551C8B13821125149A13AB136F
|
||||
:10820000EE1C811DBB13EB13F513C54E44C64F5234
|
||||
:10821000CE455854C4415441C94E505554C4494D9B
|
||||
:10822000D2454144CC4554C74F544FD2554EC94610
|
||||
:10823000D24553544F5245C74F535542D2455455DA
|
||||
:10824000524ED2454DD3544F50CF5554CF4ECE55AC
|
||||
:108250004C4CD7414954C44546D04F4B45C44F4B75
|
||||
:1082600045CC494E4553C34C53D749445448CD4F50
|
||||
:108270004E49544F52D245534554D052494E54C39F
|
||||
:108280004F4E54CC495354C34C454152C84C4F41B6
|
||||
:1082900044CE4557D4414228D44FC64ED3504328EC
|
||||
:1082A000D448454ECE4F54D3544550ABADAAAFDE63
|
||||
:1082B000C14E44CF52BEBDBCD3474EC94E54C1423D
|
||||
:1082C00053D55352C65245C94E50D04F53D3515235
|
||||
:1082D000D24E44CC4F47C55850C34F53D3494ED4C8
|
||||
:1082E000414EC1544ED045454BC445454BCC454EFF
|
||||
:1082F000D3545224D6414CC15343C3485224C84599
|
||||
:108300005824C2494E24CC45465424D249474854A7
|
||||
:1083100024CD4944248099088D079B0CF0099A0BC1
|
||||
:10832000F00EC90B070AAA098D09970A5E08990978
|
||||
:10833000CB09F20997086A14790AD8087014E61074
|
||||
:10834000B914601C461C381C3E1C351C5900BB0A65
|
||||
:10835000C50804074409771C000579B61879D714B5
|
||||
:108360007C23167C8E167FED1950440E46430E4E2C
|
||||
:1083700046534E52474F4446434F564F4D554C423D
|
||||
:108380005344442F304944544D4F534C535354435A
|
||||
:108390004E55464D4F4858424EC3DD00C31609D3D3
|
||||
:1083A00000C9D6006F7CDE006778DE00473E00C95A
|
||||
:1083B000000000354ACA99391C76982295B3980A6C
|
||||
:1083C000DD479853D199990A1A9F9865BCCD98D6E4
|
||||
:1083D000773E9852C74F80DB00C901FF1C00001494
|
||||
:1083E00000140000000000C33906371FFEFFD41E32
|
||||
:1083F00003204572726F720020696E20004F6B0D72
|
||||
:108400000A0000427265616B00210400397E23FE80
|
||||
:1084100081C04E234623E569607AB3EBCAAB03EB18
|
||||
:108420007C9220027D93010D00E1C809C39203CD27
|
||||
:10843000D103C5E3C17C9220027D937E02C80B2B41
|
||||
:10844000C3BA03E52AB41E060009093EE53ED095ED
|
||||
:108450006F3EFF9CDAE0036739E1D81E0CC3FF03CF
|
||||
:108460002AA31E22361E1E02011E14011E00011E1A
|
||||
:1084700012011E22011E0A011E18CD260532281ED9
|
||||
:10848000CD0C0B21F402573E3FCDC706197ECDC758
|
||||
:1084900006CD4F08CDC706217603CD02122A361E1F
|
||||
:1084A00011FEFF7C9220027D93CA5A007CA53CC439
|
||||
:1084B000C7183EC1AF32281ECD0C0B218203CD025E
|
||||
:1084C0001221FFFF22361ECD311EDA4604CD4F08A1
|
||||
:1084D0003C3DCA4604F5CD1B09D5CD500547D1F129
|
||||
:1084E000D22F08D5C5AF32A61ECD4F08B7F5CDDDCA
|
||||
:1084F00004DA7F04F1F5CAC609B7C5D29904EB2A9C
|
||||
:10850000B01E1A0203137C9220027D93C28704607E
|
||||
:108510006922B01ED1F1CAC0042AB01EE3C109E528
|
||||
:10852000CDB403E122B01EEB74D123237323722355
|
||||
:10853000113B1E1A772313B7C2B804CD0C0523EBE9
|
||||
:10854000626B7E23B6CA4604232323AFBE23C2D167
|
||||
:1085500004EB732372C3C5042A381E444D7E23B630
|
||||
:108560002BC823237E23666F7C9220027D93606953
|
||||
:108570007E23666F3FC83FD0C3E004C02A381EAFD9
|
||||
:108580007723772322B01E2A381E2B22A81E2A8981
|
||||
:108590001E229D1EAFCD5E082AB01E22B21E22B43E
|
||||
:1085A0001EC12A341EF9218D1E228B1EAF6F672239
|
||||
:1085B000AE1E32A51E22B81EE5C52AA81EC93E3F22
|
||||
:1085C000CDC7063E20CDC706C3311EAF32881E0E72
|
||||
:1085D00005113B1E7EFE20CAD80547FE22CAF805BB
|
||||
:1085E000B7CAFF053A881EB77EC2D805FE3F3E9C3B
|
||||
:1085F000CAD8057EFE30DA8305FE3CDAD805D511EF
|
||||
:108600008E01C501D405C5067F7EFE61DA9C05FE9C
|
||||
:108610007BD29C05E65F774EEB23B6F29E05047E87
|
||||
:10862000E67FC8B9C29E05EBE5131AB7FAD0054F2D
|
||||
:1086300078FE88C2BF05CD4F082B237EFE61DAC8C5
|
||||
:1086400005E65FB9CAAE05E1C39C0548F1EBC9EB8D
|
||||
:1086500079C1D12312130CD63ACAE605FE49C2E904
|
||||
:108660000532881ED654C25905477EB7CAFF05B8E1
|
||||
:10867000CAD80523120C13C3EF05213A1E12131298
|
||||
:108680001312C93A271EB73E0032271EC21C060528
|
||||
:10869000CA311ECDC7063E052BCA30067ECDC706A1
|
||||
:1086A000C34206052BCDC706C24206CDC706CD196B
|
||||
:1086B0000BC3311E213B1E0601AF32271ECDF5062E
|
||||
:1086C0004FFE7FCA08063A271EB7CA5B063E00CD9A
|
||||
:1086D000C706AF32271E79FE07CA9F06FE03CC19D4
|
||||
:1086E0000B37C8FE0DCA140BFE15CA3306FE40CA6E
|
||||
:1086F0003006FE5FCA2806FE08CA2806FE12C29A85
|
||||
:1087000006C5D5E53600CDEF06213B1ECD0212E1B0
|
||||
:10871000D1C1C34206FE20DA420678FE493E07D2A6
|
||||
:10872000B406797132A61E2304CDC706C34206CD16
|
||||
:10873000C7063E08C3AE067EE3BE23E3CA4F08C3A6
|
||||
:10874000EB03F53A281EB7C23A12F1C5F5FE20DA5E
|
||||
:10875000EB063A251E473A851E04CAE70605B8CC43
|
||||
:10876000190B3C32851EF1C1CFC9CDC706C3190B09
|
||||
:10877000D7E67FFE0FC03A281E2F32281EAFC9CD84
|
||||
:108780001B09C0C1CDDD04C5CD5A07E14E234623E8
|
||||
:1087900078B1CA3904CD6307CD7908C5CD190B5E10
|
||||
:1087A000235623E5EBCDCF183E20E1CDC7067EB79B
|
||||
:1087B00023CA1007F23007D67F4F118F011A13B763
|
||||
:1087C000F242070DC24207E67FCDC7061A13B7F281
|
||||
:1087D0004C07C33307E52A2B1E22291EE1C9E5D524
|
||||
:1087E0002A291E11FFFFED5A22291ED1E1F0E52AA8
|
||||
:1087F0002B1E22291ED7FE03CA8407E1C363072A62
|
||||
:108800002B1E22291EC3E0003E6432A51ECD070A9E
|
||||
:10881000C1E5CDF00922A11E21020039CD9203D17C
|
||||
:10882000C2C10709D52B562B5E2323E52AA11E7C46
|
||||
:1088300092C2BB077D93E1C2A107D1F9EB0E08CD2F
|
||||
:10884000C803E52AA11EE3E52A361EE3CDF90CCDC7
|
||||
:10885000BC06A3CDF60CED5BBE1EED4BC01EC5D510
|
||||
:10886000010081515A7EFEA83E01C20308CD4F0887
|
||||
:10887000CDF60CED5BBE1EED4BC01ECD3F17C5D532
|
||||
:10888000F533E52AA81EE30681C533CD790822A871
|
||||
:108890001E7EFE3ACA2F08B7C2EB03237E23B6CA58
|
||||
:1088A000A108235E2356ED53361ECD4F0811100844
|
||||
:1088B000D5C8D680DA070AFE22D2EB03074F06009E
|
||||
:1088C000EB219B02094E2346C5EB237EFE3AD0FEE8
|
||||
:1088D0002028F7FE303F3C3DC9EB2A381ECA7308FA
|
||||
:1088E000EBCD1B09E5CDDD046069D1D2C6092B2291
|
||||
:1088F000B61EEBC9DFB7C8D7FE1B2811FE03280D33
|
||||
:10890000FE13C0D7FE11C8FE03280718F63EFF323B
|
||||
:10891000301EC0F6C022A81E21F6FFC12A361EF561
|
||||
:108920007DA43CCAB40822AC1E2AA81E22AE1EAFEB
|
||||
:1089300032281ECD0C0BF1218803C21F04C3390459
|
||||
:108940002AAE1E7CB51E20CAFF03EB2AAC1E2236BF
|
||||
:108950001EEBC9CDA114C032241EC9E52A2D1E0666
|
||||
:10896000004F09222D1EE1C97EFE41D8FE5B3FC9A2
|
||||
:10897000CD4F08CDF60CCD3F17FA16093AC11EFEB1
|
||||
:1089800090DAD417018090110000E5CDA717E151CE
|
||||
:10899000C81E08C3FF032B110000CD4F08D0E5F51A
|
||||
:1089A0002198197C92C22F097D93DAEB03626B192F
|
||||
:1089B000291929F1D6305F160019EBE1C31F09CA46
|
||||
:1089C0001005CDF8082BCD4F08E52A891ECA670986
|
||||
:1089D000E1CDBC062CD5CDF8082BCD4F08C2EB035A
|
||||
:1089E000E3EB7D935F7C9A57DAE003E52AB01E0142
|
||||
:1089F0002800097C9220027D93D2E003EB22341EF2
|
||||
:108A0000E122891EE1C31005CA0C05CD1005011035
|
||||
:108A100008C3A9090E03CDC803C1E5E52A361EE344
|
||||
:108A20003E8CF533C5CD1B09CDF209E52A361E7CF7
|
||||
:108A30009220027D93E123DCE004D4DD0460692B05
|
||||
:108A4000D81E0EC3FF03C016FFCD8E03F9FE8C1E89
|
||||
:108A500004C2FF03E122361E237CB5C2EA093AA60E
|
||||
:108A60001EB7C23804211008E33EE1013A0E0006A9
|
||||
:108A7000007948477EB7C8B8C823FE22CAF609C3A2
|
||||
:108A8000F909CDF50ECDBC06B1D53A871EF5CD0856
|
||||
:108A90000DF1E322A81E1FCDFB0CCA690AE52ABE10
|
||||
:108AA0001EE523235E23562A381E7C9220027D93E6
|
||||
:108AB000D2520A2A341E7C9220027D93D1D25A0AC5
|
||||
:108AC00021991E7C9220027D93D25A0A3ED1CD7705
|
||||
:108AD00013EBCD9211CD7713E1EBEDA0EDA0EDA05E
|
||||
:108AE000EDA0E1C9E511BE1EEBEDA0EDA0EDA0EDFE
|
||||
:108AF000A0D1E1C9CDA1147E47FE8CCA880ACDBCA5
|
||||
:108B000006882B4B0D78CA3708CD1C09FE2CC0C334
|
||||
:108B1000890ACD080D7EFE88CAA50ACDBC06A62B03
|
||||
:108B2000CDF90CCD3F17CAF209CD4F08DAAA09C317
|
||||
:108B300036082BCD4F08CA190BC8FEA2CA4C0BFE33
|
||||
:108B4000A5CA4C0BE5FE2CCA350BFE3BCA6F0BC108
|
||||
:108B5000CD080DE53A871EB7C2050BCDDA18CDB6A4
|
||||
:108B60001136202ABE1E342ABE1E3A251E4704CACC
|
||||
:108B7000010B043A851E863DB8D4190BCD0512AF02
|
||||
:108B8000C40512E1C3B70A3A851EB7C8C3190B362C
|
||||
:108B900000213A1E3E0DCDC7063E0ACDC706AF32B4
|
||||
:108BA000851E3A241E3DC8F5AFCDC706F1C32A0B7A
|
||||
:108BB0003A261E473A851EB8D4190BD26F0BD60E33
|
||||
:108BC000D2430B2FC3640BF5CD9E14CDBC06292BCD
|
||||
:108BD000F1D6A5E5CA5F0B3A851E2F83D26F0B3CF9
|
||||
:108BE000473E20CDC70605C2680BE1CD4F08C3BE86
|
||||
:108BF0000A3F5265646F2066726F6D2073746172F4
|
||||
:108C0000740D0A003AA71EB7C2E503C121760BCD49
|
||||
:108C10000212C33F05CD63117EFE223E0032281EA4
|
||||
:108C2000C2B40BCDB711CDBC063BE5CD05123EE578
|
||||
:108C3000CD4305C1DA9E08237EB72BC5CAEF09369E
|
||||
:108C40002CC3CE0BE52AB61EF6AF32A71EE3C3DA5D
|
||||
:108C50000BCDBC062CCDF50EE3D57EFE2CCA020C46
|
||||
:108C60003AA71EB7C2780C3E3FCDC706CD4305D10B
|
||||
:108C7000C1DA9E08237EB72BC5CAEF09D53A871EF5
|
||||
:108C8000B7CA2C0CCD4F085747FE22CA200C3AA772
|
||||
:108C90001EB757CA1D0C163A062C2BCDBA11EB2164
|
||||
:108CA000400CE3D5C3220ACD4F08CD3718E311BEDF
|
||||
:108CB0001EEBEDA0EDA0EDA0EDA0E12BCD4F08CA7D
|
||||
:108CC0004C0CFE2CC2890BE32BCD4F08C2D60BD126
|
||||
:108CD0003AA71EB7EBC27408D5B621670CC40212BE
|
||||
:108CE000E1C93F45787472612069676E6F7265648F
|
||||
:108CF0000D0A00CDF009B7C2900C237E23B61E06E4
|
||||
:108D0000CAFF03235E2356ED53A31ECD4F08FE83F7
|
||||
:108D1000C2780CC3020C110000C4F50E22A81ECDAF
|
||||
:108D20008E03C2F103F9D57E23F5D511BE1EEDA049
|
||||
:108D3000EDA0EDA0EDA0E3E5CDCD14D121BE1EED5B
|
||||
:108D4000A0EDA0EDA0EDA0E1CD8917E5CDA717E13D
|
||||
:108D5000C190CD8917CAE60CEB22361E6960C30CA0
|
||||
:108D600008F92AA81E7EFE2CC21008CD4F08CD9E01
|
||||
:108D70000CCD080DF6373A871E8FB7E8C3FD03CD3B
|
||||
:108D8000BC06282B1600D50E01CDC803CD820D22BE
|
||||
:108D9000AA1E2AAA1EC178FE78D4F90C7E1600D627
|
||||
:108DA000B0DA400DFE03D2400DFE0117AABA57DA21
|
||||
:108DB000EB03229F1ECD4F08C3240D7AB7C2700E5D
|
||||
:108DC0007E229F1ED6A9D8FE07D05F3A871E3DB3EC
|
||||
:108DD0007BCA091307835F21DF02197856BAD023B3
|
||||
:108DE000CDF90CC501170DC5ED4BBE1EC5ED4BC031
|
||||
:108DF0001EC54E234623C52A9F1EC30B0DAF3287C7
|
||||
:108E00001ECD4F081E24CAFF03DA3718CDED08D255
|
||||
:108E1000EA0DFEA9CA820DFE2ECA3718FEAACAD9CB
|
||||
:108E20000DFE22CAB711FEA7CAD00EFEA4CA1311A6
|
||||
:108E3000FE26C2CC0DCD4F08FE48CA431DFE42CAD5
|
||||
:108E4000B31D1E02CAFF03D6B3D2FB0DCD040DCD58
|
||||
:108E5000BC0629C9167DCD0B0D2AAA1EE5CD6817C3
|
||||
:108E6000CDF90CE1C9CDF50EE5EB22BE1E3A871E09
|
||||
:108E7000B7CC7D17E1C90600074FC5CD4F0879FE75
|
||||
:108E80002FDA220ECD040DCDBC062CCDFA0CEB2A28
|
||||
:108E9000BE1EE3E5EBCDA114EBE3C32A0ECDD10D4D
|
||||
:108EA000E311E50DD5015901094E236669E915FE67
|
||||
:108EB000AAC8FE2DC814FE2BC8FEA9C82BC9F6AF40
|
||||
:108EC000F5CDF90CCD0109F1EBC1E3EBED53BE1E7D
|
||||
:108ED000ED43C01EF5CD0109F1C17921D110C26B5E
|
||||
:108EE0000EA34F78A2E9B34F78B2E921820E3A87F8
|
||||
:108EF0001E1F7A175F166478BAD0C3680D840E7986
|
||||
:108F0000B71FC1D1F5CDFB0C21C60EE5CAA717AF1F
|
||||
:108F100032871ED5CD56137E23234E2346D1C5F569
|
||||
:108F2000CD5A13CD8917F157E17BB2C87AD601D853
|
||||
:108F3000AFBB3CD0151D0ABE2303CAAE0E3FC34AC9
|
||||
:108F4000173C8FC1A0C6FF9FC35117165ACD0B0DFA
|
||||
:108F5000CDF90CCD01097B2F4F7A2FCDD110C1C394
|
||||
:108F6000170D2BCD4F08C8CDBC062C01E70EC5F65A
|
||||
:108F7000AF32861E46CDED08DAEB03AF4F32871EC7
|
||||
:108F8000CD4F08DA110FCDED08DA1E0F4FCD4F0887
|
||||
:108F9000DA120FCDED08D2120FD624C22D0F3C32BB
|
||||
:108FA000871E0F814FCD4F083AA51E3DCAE80FF22C
|
||||
:108FB0003D0F7ED628CAC00FAF32A51EE550592AF4
|
||||
:108FC000B81E7C92C24E0F7D9311BA1ECA75132A29
|
||||
:108FD000B21EEB2AB01E7C92C2620F7D93CA780F3C
|
||||
:108FE000799623C26D0F789623CAB20F23232323C9
|
||||
:108FF000C35B0FE1E3D511ED0D7C9220027D93D18F
|
||||
:10900000CAB50FE3E5C50106002AB41EE509C1E5AE
|
||||
:10901000CDB403E122B41E606922B21E2B36007C5F
|
||||
:109020009220027D93C2A10FD173237223EBE1C979
|
||||
:1090300032C11E21810322BE1EE1C9E52A861EE33C
|
||||
:1090400057D5C5CDF508C1F1EBE3E5EB3C577EFE06
|
||||
:109050002CCAC60FCDBC062922AA1EE122861E1EDE
|
||||
:1090600000D511E5F52AB21E3E19ED5BB41E7C92C7
|
||||
:10907000C2FA0F7D93CA23107EB923C205107EB8B1
|
||||
:10908000235E235623C2EE0F3A861EB7C2F403F1C5
|
||||
:10909000444DCA751396CA84101E10C3FF031104F1
|
||||
:1090A00000F1CA1609712370234FCDC80323232270
|
||||
:1090B0009F1E71233A861E1779010B00D24610C1FC
|
||||
:1090C0000371237023F5E5CD1D18EBE1F13DC23EA0
|
||||
:1090D00010F5424BEB19DAE003CDD10322B41E2B7D
|
||||
:1090E00036007C9220027D93C2641003572A9F1E93
|
||||
:1090F0005EEB2909EB2B2B73237223F1DAAC1047BB
|
||||
:109100004F7E2316E15E235623E3F57C92C297102F
|
||||
:109110007D93D21E10E5CD1D18D119F13D444DC2ED
|
||||
:1091200089102929C109EB2AAA1EC92AB41EEB21DC
|
||||
:109130000000393A871EB7CACC10CD5613CD48125D
|
||||
:109140002A341EEB2A9D1E7D934F7C9A41501E00AF
|
||||
:1091500021871E730690C356173A851E47AFC3D2A8
|
||||
:1091600010CD7111CD631101F009C5D5CDBC062814
|
||||
:10917000CDF50EE5EB2B562B5EE1CDF90CCDBC0603
|
||||
:1091800029CDBC06B1444DE3712370C3B011CD713C
|
||||
:1091900011D5CDD10DCDF90CE35E2356237AB3CA98
|
||||
:1091A000F7037E23666FE52AB81EE322B81E2ABCA9
|
||||
:1091B0001EE52ABA1EE5D511BA1E21BE1EEDA0ED90
|
||||
:1091C000A0EDA0EDA0E1CDF60C2BCD4F08C2EB0336
|
||||
:1091D000E122BA1EE122BC1EE122B81EE1C9E52A45
|
||||
:1091E000361E237CB5E1C01E16C3FF03CDBC06A40A
|
||||
:1091F0003E8032A51EB647CDFA0EC3F90CCDF90C50
|
||||
:10920000CDDA18CDB611CD561301B713C57E232381
|
||||
:10921000E5CD1B12E14E2346CDAA11E56FCD4913D2
|
||||
:10922000D1C9CD1B1221991EE5772323732372E147
|
||||
:10923000C92B062250E50EFF237E0CB7CACC11BA0B
|
||||
:10924000CACC11B8C2BD11FE22CC4F08E323EB7982
|
||||
:10925000CDAA1111991E2A8B1E22BE1E3E013287F5
|
||||
:109260001EEBEDA0EDA0EDA0EDA0EB7C9220027D29
|
||||
:1092700093228B1EE17EC01E1EC3FF0323CDB611B9
|
||||
:10928000CD5613CD89171C1DC80ACDC706FE0DCCBF
|
||||
:10929000230B03C30C12B70EF1F52A341EEB2A9DE3
|
||||
:1092A0001E2F4F06FF09237C9220027D93DA3C1289
|
||||
:1092B000229D1E23EBF1C9F11E1ACAFF03BFF5015F
|
||||
:1092C0001D12C52A891E229D1E210000E52A341E7A
|
||||
:1092D000E5218D1EED5B8B1E7C9220027D93015952
|
||||
:1092E00012C2B5122AB01EED5BB21E7C9220027D26
|
||||
:1092F00093CA84127E2323B7CDB812C36C12C1ED7A
|
||||
:109300005BB41E7C9220027D93CAE412CD89177B48
|
||||
:10931000E509B7F28312229F1EE14E0600090923D8
|
||||
:10932000ED5B9F1E7C9220027D93CA841201A512E0
|
||||
:10933000C5F6807E23235E235623F0B7C8444D2A0A
|
||||
:109340009D1E7C9220027D936069D8E1E37C92208F
|
||||
:10935000027D93E3E56069D0C1F1F1E5D5C5C9D1DE
|
||||
:10936000E17DB4C82B462B4EE52B2B6E2600095011
|
||||
:10937000592B444D2A9D1ECDB703E17123706960BE
|
||||
:109380002BC34B12C5E52ABE1EE3CD820DE3CDFAF9
|
||||
:109390000C7EE52ABE1EE5861E1CDAFF03CDA71152
|
||||
:1093A000D1CD5A13E3CD5913E52A9B1EEBCD4013C3
|
||||
:1093B000CD401321140DE3E5C3D811E1E37E23234F
|
||||
:1093C0004E23466F2C2DC80A120313C34A13CDFA3D
|
||||
:1093D0000C2ABE1EEBCD7713EBC0D550591B4E2A7D
|
||||
:1093E0009D1E7C9220027D93C275134709229D1E0B
|
||||
:1093F000E1C92A8B1E2B462B4E2B2B7C9220027D03
|
||||
:1094000093C0228B1EC901E110C5CD5313AF573253
|
||||
:10941000871E7EB7C901E110C5CD8F13CA16092377
|
||||
:10942000235E23561AC93E01CDA711CDA4142A9B51
|
||||
:109430001E73C1C3D811CD5414AFE34FE57EB8DA23
|
||||
:10944000C91378110E00C5CD1B12C1E1E5232346D7
|
||||
:10945000236668060009444DCDAA116FCD4913D18A
|
||||
:10946000CD5A13C3D811CD5414D1D51A90C3BF13FC
|
||||
:10947000EB7ECD59140405CA1609C51EFFFE29CA84
|
||||
:109480000E14CDBC062CCDA114CDBC0629F1E301F0
|
||||
:10949000C113C53DBE0600D04F7E91BB47D843C91E
|
||||
:1094A000CD8F13CA4A155F23237E23666FE51946C5
|
||||
:1094B00072E3C57EFE24C24314CD431D180DFE2564
|
||||
:1094C000C24D14CDB31D1803CD3718C1E170C9EBDF
|
||||
:1094D000CDBC0629C1D1C543C9CDA41432221ECDAD
|
||||
:1094E000211EC3E110CD8E14C3E91DCD8E14F51ECF
|
||||
:1094F000002BCD4F08CA8414CDBC062CCDA114C1BD
|
||||
:10950000CD211EABA0CA8514C9CDA11432221E32B2
|
||||
:10951000EA1DCDBC062CC3A114CD4F08CDF60CCD51
|
||||
:10952000FB087AB7C216092BCD4F087BC9CD0109BC
|
||||
:109530001AC3E110CDF60CCD0109D5CDBC062CCD5A
|
||||
:10954000A114D112C921C119CD8917C3DC14CD8949
|
||||
:109550001721C1D1CD681778B7C83AC11EB7CA79EB
|
||||
:109560001590D2FE142F3C2ABE1EE52AC01EE5ED42
|
||||
:1095700053BE1EED43C01EC1D1FE19D0F5CD9217CA
|
||||
:1095800067F1CDAF15B421BE1EF22415CD8F15D2D3
|
||||
:109590006A152334CAFA032E01CDC515C36A15AF67
|
||||
:1095A00090477E9B5F237E9A57237E994FDC9B15C5
|
||||
:1095B0006863AF4779B7C257154A54656F78D608C4
|
||||
:1095C000FEE0C23815AF32C11EC905297A17577996
|
||||
:1095D0008F4FF24F15785C45B7CA6A1521C11E86B8
|
||||
:1095E00077D24A15C87821C11EB7FC821546237E62
|
||||
:1095F000E680A94FED53BE1EED43C01EC91CC0142A
|
||||
:10960000C00CC00E8034C0C3FA037E835F237E8A01
|
||||
:1096100057237E894FC921C21E7E2F77AF6F904797
|
||||
:109620007D9B5F7D9A577D994FC90600D608DABEAB
|
||||
:1096300015435A510E00C3B115C6096FAF2DC87935
|
||||
:109640001F4F7A1F577B1F5F781F47C3C11500004C
|
||||
:10965000008103AA561980F122768045AA3882CD6E
|
||||
:109660003F17B7EA160921C11E7E01358011F304A8
|
||||
:1096700090F570D5C5CDDC14C1D104CD901621D3A1
|
||||
:1096800015CDD31421D715CD981A01808011000073
|
||||
:10969000CDDC14F1CDAB1801318011187221C1D18C
|
||||
:1096A000CD3F17C82E00CDF8167932D01EEB22D14F
|
||||
:1096B0001E0100005058213515E5214716E5E5212A
|
||||
:1096C000BE1E7E23B7CA7316E52E081F6779D261C6
|
||||
:1096D00016E52AD11E19EBE13AD01E891F4F7A1FD9
|
||||
:1096E000577B1F5F781F472D7CC25016E1C9435A34
|
||||
:1096F000514FC92ABE1EE52AC01EE5012084110073
|
||||
:1097000000ED53BE1EED43C01EC1D1CD3F17CAEEC2
|
||||
:10971000032EFFCDF81634342B7E32F51D2B7E320E
|
||||
:10972000F11D2B7E32ED1D41EBAF4F575F32F81D1F
|
||||
:10973000E5C57DCDEC1DDE003FD2C81632F81DF127
|
||||
:10974000F137D2C1E1793C3D1FFA6B15177B175FEA
|
||||
:109750007A175779174F297817473AF81D1732F8B3
|
||||
:109760001D79B2B3C2B516E521C11E35E1C2B516E9
|
||||
:10977000C3FA0378B7CA1C177D21C11EAE80471FEC
|
||||
:10978000A878F21B17C68077CA7513CD9217772B6E
|
||||
:10979000C9CD3F172FE1B7E1F24A15C3FA03ED5BDC
|
||||
:1097A000BE1EED4BC01E78B7C8C602DAFA0347CD1D
|
||||
:1097B000DC1421C11E34C0C3FA033AC11EB7C83A33
|
||||
:1097C000C01EFE2F179FC03CC9CD3F170688110051
|
||||
:1097D0000021C11E4F70060023368017C33215CDFD
|
||||
:1097E0003F17F021C01E7EEE8077C9EB2ABE1EE334
|
||||
:1097F000E52AC01EE3E5EBC911BE1EEDA0EDA0ED0C
|
||||
:10980000A0EDA0C95E2356234E234623C921C01EC6
|
||||
:109810007E07371F773F1F2323777907371F4F1F97
|
||||
:10982000AEC978B7CA3F17214817E5CD3F1779C8A9
|
||||
:1098300021C01EAE79F8CDC1171FA9C92378BEC0BB
|
||||
:109840002B79BEC02B7ABEC02B7B96C0E1E1C94705
|
||||
:109850004F575FB7C8E5ED5BBE1EED4BC01ECD9206
|
||||
:1098600017AE67FCFD173E9890CDAF157C17DC82D4
|
||||
:10987000150600DC9B15E1C91B7AA33CC00BC9216E
|
||||
:10988000C11E7EFE983ABE1ED07ECDD41736987B80
|
||||
:10989000F57917CD3215F1C921000078B1C87806E5
|
||||
:1098A0001029DA1E10CB1117D2341819DA1E101035
|
||||
:1098B000F0C9FE2DF5CA4318FE2BCA43182BCD4A1A
|
||||
:1098C0001547575F2F4FCD4F08DA9418FE2ECA6FF9
|
||||
:1098D00018FE45C27318CD4F08CD330ECD4F08DAB0
|
||||
:1098E000BB1814C27318AF935F0C0CCA4B18E57BFE
|
||||
:1098F00090F48C18F28218F5CD7816F13CC27618E7
|
||||
:10990000D1F1CC6817EBC9C8F5CD2317F13DC9D506
|
||||
:1099100057788947C5E5D5CD2317F1D630CDAB189B
|
||||
:10992000E1C1D1C34B182ABE1EE52AC01EE5CD51A8
|
||||
:1099300017C1D1C3DC147B0707830786D6305FC30A
|
||||
:109940006118E5217D03CD0212E1EBAF0698CD56FB
|
||||
:1099500017210112E521C31EE5CD3F173620F2E89D
|
||||
:1099600018362D233630CAAC19E5FC6817AFF5CD93
|
||||
:10997000B21901439111F84FCDA717B7E21519F1AC
|
||||
:10998000CD8D18F5C3F718CD7816F13CF5CDB21989
|
||||
:10999000CDCA143CCDD417ED53BE1EED43C01E01FD
|
||||
:1099A0000603F1813CFA3619FE08D236193C473ECF
|
||||
:1099B000023D3DE1F511C51905C24719362E233682
|
||||
:1099C000302305362ECC9017C5E5EBED5BBE1EEDC2
|
||||
:1099D0004BC01E062F047B965F237A9E5723799EE9
|
||||
:1099E0004F2B2BD25A19CD8F1523ED53BE1EED43AD
|
||||
:1099F000C01EEBE17023C10DC2471905CA90192B97
|
||||
:109A00007EFE30CA8419FE2EC49017F1CAAF1936F3
|
||||
:109A10004523362BF2A019362D2F3C062F04D60AEB
|
||||
:109A2000D2A219C63A237023772371E1C901749435
|
||||
:109A300011F723CDA717B7E1E20C19E90000008068
|
||||
:109A4000A08601102700E803006400000A0000015E
|
||||
:109A50000000216817E3E9CD701721C11911BE1E5E
|
||||
:109A6000EDA0EDA0EDA0EDA0C1D1CD3F1778CA3794
|
||||
:109A70001AF2FD19B7CAEE03B7CA4B15D5C579F668
|
||||
:109A80007FED5BBE1EED4BC01EF21F1AD5C5CD0487
|
||||
:109A900018C1D1F5CDA717E17C1FE122C01EE1223C
|
||||
:109AA000BE1EDCD719CC6817D5C5CDE415C1D1CD04
|
||||
:109AB0002516CD7017013881113BAACD25163AC164
|
||||
:109AC0001EFE88D21617CD0418C680C602DA1617F5
|
||||
:109AD000F521D315CDCD14CD1C16F1C1D1F5CDD9BD
|
||||
:109AE00014CD681721771ACDAC1A110000C14AC3F2
|
||||
:109AF000251608402E9474704F2E776E02887AE6F1
|
||||
:109B0000A02A7C50AAAA7EFFFF7F7F0000808100F0
|
||||
:109B1000000081CD7017112316D5E5ED5BBE1EED5B
|
||||
:109B20004BC01ECD2516E1CD70177E2311BE1EED54
|
||||
:109B3000A0EDA0EDA0EDA006F1C1D13DC8D5C5F5C1
|
||||
:109B4000E5CD2516E1CD8917E5CDDC14E1C3BD1ABD
|
||||
:109B5000CD3F1721FC1DFA4F1B211D1E11BE1EED0E
|
||||
:109B6000A0EDA0EDA0EDA021FC1DC886E607060033
|
||||
:109B7000772387874F09CD8917CD25163AFB1D3CE2
|
||||
:109B8000E6030600FE018832FB1D21531B87874F29
|
||||
:109B900009CDCD14ED5BBE1EED4BC01E7B59EE4FC3
|
||||
:109BA0004F21C21E36802B46368021FA1D347ED6C8
|
||||
:109BB000ABC23D1B770C151CCD3515111D1E21BEEA
|
||||
:109BC0001EEDA0EDA0EDA0EDA0C9772B772B77C3FC
|
||||
:109BD000191B68B1466899E9926910D1756821B27C
|
||||
:109BE0001BCDCD14CD701701498311DB0FED53BE92
|
||||
:109BF0001EED43C01EC1D1CD9016CD7017CD0418F7
|
||||
:109C0000C1D1CDD91421B61BCDD314CD3F1737F216
|
||||
:109C10009E1BCDCA14CD3F17B7F5F4681721B61BAC
|
||||
:109C2000CDCD14F1D4681721BA1BC3981ADB0F49A4
|
||||
:109C3000810000007F05BAD71E86642699875834B4
|
||||
:109C40002387E05DA586DA0F4983CD7017CD691BA8
|
||||
:109C5000C1E1CD7017EBED53BE1EED43C01ECD63C9
|
||||
:109C60001BC38E16CD3F17FCD719FC68173AC11ECF
|
||||
:109C7000FE81DA061C0100815159CD901621D314C2
|
||||
:109C8000E521101CCD981A21B21BC9094AD73B788F
|
||||
:109C9000026E847BFEC12F7C74319A7D843D5A7D97
|
||||
:109CA000C87F917EE4BB4C7E6CAAAA7F0000008135
|
||||
:109CB000C300003E0CCFC9ED45CDA1147B32251E5B
|
||||
:109CC000C9CDF60CCD0109ED53291EED532B1EC94C
|
||||
:109CD000CD0109D5E146237EC3D210CDF60CCD01CE
|
||||
:109CE00009D5CDBC062CCDF60CCD0109E37323724A
|
||||
:109CF000E1C9C0CD961C1B2A891EAFED52380BED71
|
||||
:109D000053891E21CEFF1922341E13ED53E71D186F
|
||||
:109D100021D7FE3A20FB0E00CDD41C47CDD41C57D2
|
||||
:109D2000CDD41C5FCDD41C3D281A3CC2FD03C9CD47
|
||||
:109D3000961CCDD41C121310F9CDD41C79B7C27C5B
|
||||
:109D40001DC3B41CCDD41C79B7C27C1DC3E000CDAB
|
||||
:109D5000E51C070707076FCDE51CB56F814F7DC96F
|
||||
:109D6000D7D630FE0AD8D607C9CDF90CCD0109C522
|
||||
:109D700021C31E7AFE00280CCD261D78FE30280255
|
||||
:109D8000702371237BCD261D7AFE00200578FE30DE
|
||||
:109D9000280270237123AF772377C121C31EC388A4
|
||||
:109DA0001147E60FFE0A3802C607C6304F780F0F7C
|
||||
:109DB0000F0FE60FFE0A3802C607C63047C9EB216F
|
||||
:109DC0000000CD5C1DDA7C1D1805CD5C1D381F29F7
|
||||
:109DD000292929B56F18F3131AFE20CA5C1DD63045
|
||||
:109DE000D8FE0A3805D607FE0AD8FE103FC9EB7A1E
|
||||
:109DF0004BE5CDD110E1C91E26C3FF03CDF90CCD33
|
||||
:109E00000109C521C31E06110578FE012808CB13E0
|
||||
:109E1000CB1230F41804CB13CB123E30CE00772394
|
||||
:109E20000520F3AF772377C121C31EC38811EB212F
|
||||
:109E30000000CDD01DDADE1DD63029B56FCDD01D86
|
||||
:109E400030F6EB7A4BE5CDD110E1C9131AFE20CAEA
|
||||
:0E9E5000D01DFE30D8FE323FC91E28C3FF03CE
|
||||
:00000001FF
|
||||
6499
OperatingSystem/cpm/zout/test.lst
Normal file
6499
OperatingSystem/cpm/zout/test.lst
Normal file
File diff suppressed because it is too large
Load Diff
486
OperatingSystem/cpm/zout/test.mon
Normal file
486
OperatingSystem/cpm/zout/test.mon
Normal file
@@ -0,0 +1,486 @@
|
||||
!8000 C3 40 80 00 00 00 00 00 00 00 00 80 5E 9E 5E 1E
|
||||
!8010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8040 CD 91 01 0A 0D 53 68 61 64 6F 77 69 6E 67 20 52
|
||||
!8050 4F 4D 20 40 20 30 78 30 30 30 30 2D 30 78 33 46
|
||||
!8060 46 46 20 2E 2E 2E 0A 0D 00 3E 01 D3 00 21 7B 80
|
||||
!8070 11 00 00 01 E3 1D ED B0 C3 00 00 C3 5A 00 00 00
|
||||
!8080 00 00 00 C3 20 00 00 00 00 00 00 C3 2D 00 00 00
|
||||
!8090 00 00 00 C3 4B 00 00 00 00 00 00 D3 08 3E 01 D3
|
||||
!80A0 09 DB 09 CB 47 28 F6 C9 3E 05 D3 09 3E EA D3 09
|
||||
!80B0 00 AF D3 09 DB 09 E6 01 F5 3E 05 D3 09 3E 68 D3
|
||||
!80C0 09 F1 C8 DB 08 C9 3E 00 C9 C3 5A 00 C3 DD 00 05
|
||||
!80D0 01 09 D2 10 C0 21 E3 1D F9 AF 32 30 1E 21 1E 03
|
||||
!80E0 01 5A 00 11 E3 1D ED B0 EB F9 CD 26 05 CD 19 0B
|
||||
!80F0 32 84 1E 32 D3 1E 21 37 1F 23 7C B5 CA A2 00 7E
|
||||
!8100 47 2F 77 BE 70 CA 7E 00 C3 A2 00 CD 1B 09 B7 C2
|
||||
!8110 EB 03 EB 2B 3E D9 46 77 BE 70 C2 7B 00 2B 11 36
|
||||
!8120 1F 7C 92 20 02 7D 93 DA 7B 00 11 CE FF 22 89 1E
|
||||
!8130 19 22 34 1E CD 01 05 2A 34 1E 11 EF FF 19 11 D3
|
||||
!8140 1E 7D 93 6F 7C 9A 67 E5 21 F5 00 CD 02 12 E1 CD
|
||||
!8150 CF 18 21 E6 00 CD 02 12 31 40 1E CD 26 05 C3 39
|
||||
!8160 04 20 42 79 74 65 73 20 66 72 65 65 0D 0A 00 00
|
||||
!8170 5A 38 30 20 42 41 53 49 43 20 56 65 72 20 34 2E
|
||||
!8180 37 63 0D 0A 43 6F 70 79 72 69 67 68 74 20 28 43
|
||||
!8190 29 20 31 39 37 38 20 62 79 20 4D 69 63 72 6F 73
|
||||
!81A0 6F 66 74 0D 0A 4D 6F 64 69 66 69 65 64 20 66 6F
|
||||
!81B0 72 20 5A 38 43 20 62 79 20 44 65 6E 6E 69 73 20
|
||||
!81C0 47 75 6E 69 61 0D 0A 00 00 4D 65 6D 6F 72 79 20
|
||||
!81D0 74 6F 70 00 4E 17 04 18 64 17 E6 1D B0 10 5E 14
|
||||
!81E0 DE 10 DC 19 D5 1A E4 15 37 1A 63 1B 69 1B CF 1B
|
||||
!81F0 E9 1B B2 14 55 1C 8B 13 82 11 25 14 9A 13 AB 13
|
||||
!8200 EE 1C 81 1D BB 13 EB 13 F5 13 C5 4E 44 C6 4F 52
|
||||
!8210 CE 45 58 54 C4 41 54 41 C9 4E 50 55 54 C4 49 4D
|
||||
!8220 D2 45 41 44 CC 45 54 C7 4F 54 4F D2 55 4E C9 46
|
||||
!8230 D2 45 53 54 4F 52 45 C7 4F 53 55 42 D2 45 54 55
|
||||
!8240 52 4E D2 45 4D D3 54 4F 50 CF 55 54 CF 4E CE 55
|
||||
!8250 4C 4C D7 41 49 54 C4 45 46 D0 4F 4B 45 C4 4F 4B
|
||||
!8260 45 CC 49 4E 45 53 C3 4C 53 D7 49 44 54 48 CD 4F
|
||||
!8270 4E 49 54 4F 52 D2 45 53 45 54 D0 52 49 4E 54 C3
|
||||
!8280 4F 4E 54 CC 49 53 54 C3 4C 45 41 52 C8 4C 4F 41
|
||||
!8290 44 CE 45 57 D4 41 42 28 D4 4F C6 4E D3 50 43 28
|
||||
!82A0 D4 48 45 4E CE 4F 54 D3 54 45 50 AB AD AA AF DE
|
||||
!82B0 C1 4E 44 CF 52 BE BD BC D3 47 4E C9 4E 54 C1 42
|
||||
!82C0 53 D5 53 52 C6 52 45 C9 4E 50 D0 4F 53 D3 51 52
|
||||
!82D0 D2 4E 44 CC 4F 47 C5 58 50 C3 4F 53 D3 49 4E D4
|
||||
!82E0 41 4E C1 54 4E D0 45 45 4B C4 45 45 4B CC 45 4E
|
||||
!82F0 D3 54 52 24 D6 41 4C C1 53 43 C3 48 52 24 C8 45
|
||||
!8300 58 24 C2 49 4E 24 CC 45 46 54 24 D2 49 47 48 54
|
||||
!8310 24 CD 49 44 24 80 99 08 8D 07 9B 0C F0 09 9A 0B
|
||||
!8320 F0 0E C9 0B 07 0A AA 09 8D 09 97 0A 5E 08 99 09
|
||||
!8330 CB 09 F2 09 97 08 6A 14 79 0A D8 08 70 14 E6 10
|
||||
!8340 B9 14 60 1C 46 1C 38 1C 3E 1C 35 1C 59 00 BB 0A
|
||||
!8350 C5 08 04 07 44 09 77 1C 00 05 79 B6 18 79 D7 14
|
||||
!8360 7C 23 16 7C 8E 16 7F ED 19 50 44 0E 46 43 0E 4E
|
||||
!8370 46 53 4E 52 47 4F 44 46 43 4F 56 4F 4D 55 4C 42
|
||||
!8380 53 44 44 2F 30 49 44 54 4D 4F 53 4C 53 53 54 43
|
||||
!8390 4E 55 46 4D 4F 48 58 42 4E C3 DD 00 C3 16 09 D3
|
||||
!83A0 00 C9 D6 00 6F 7C DE 00 67 78 DE 00 47 3E 00 C9
|
||||
!83B0 00 00 00 35 4A CA 99 39 1C 76 98 22 95 B3 98 0A
|
||||
!83C0 DD 47 98 53 D1 99 99 0A 1A 9F 98 65 BC CD 98 D6
|
||||
!83D0 77 3E 98 52 C7 4F 80 DB 00 C9 01 FF 1C 00 00 14
|
||||
!83E0 00 14 00 00 00 00 00 C3 39 06 37 1F FE FF D4 1E
|
||||
!83F0 03 20 45 72 72 6F 72 00 20 69 6E 20 00 4F 6B 0D
|
||||
!8400 0A 00 00 42 72 65 61 6B 00 21 04 00 39 7E 23 FE
|
||||
!8410 81 C0 4E 23 46 23 E5 69 60 7A B3 EB CA AB 03 EB
|
||||
!8420 7C 92 20 02 7D 93 01 0D 00 E1 C8 09 C3 92 03 CD
|
||||
!8430 D1 03 C5 E3 C1 7C 92 20 02 7D 93 7E 02 C8 0B 2B
|
||||
!8440 C3 BA 03 E5 2A B4 1E 06 00 09 09 3E E5 3E D0 95
|
||||
!8450 6F 3E FF 9C DA E0 03 67 39 E1 D8 1E 0C C3 FF 03
|
||||
!8460 2A A3 1E 22 36 1E 1E 02 01 1E 14 01 1E 00 01 1E
|
||||
!8470 12 01 1E 22 01 1E 0A 01 1E 18 CD 26 05 32 28 1E
|
||||
!8480 CD 0C 0B 21 F4 02 57 3E 3F CD C7 06 19 7E CD C7
|
||||
!8490 06 CD 4F 08 CD C7 06 21 76 03 CD 02 12 2A 36 1E
|
||||
!84A0 11 FE FF 7C 92 20 02 7D 93 CA 5A 00 7C A5 3C C4
|
||||
!84B0 C7 18 3E C1 AF 32 28 1E CD 0C 0B 21 82 03 CD 02
|
||||
!84C0 12 21 FF FF 22 36 1E CD 31 1E DA 46 04 CD 4F 08
|
||||
!84D0 3C 3D CA 46 04 F5 CD 1B 09 D5 CD 50 05 47 D1 F1
|
||||
!84E0 D2 2F 08 D5 C5 AF 32 A6 1E CD 4F 08 B7 F5 CD DD
|
||||
!84F0 04 DA 7F 04 F1 F5 CA C6 09 B7 C5 D2 99 04 EB 2A
|
||||
!8500 B0 1E 1A 02 03 13 7C 92 20 02 7D 93 C2 87 04 60
|
||||
!8510 69 22 B0 1E D1 F1 CA C0 04 2A B0 1E E3 C1 09 E5
|
||||
!8520 CD B4 03 E1 22 B0 1E EB 74 D1 23 23 73 23 72 23
|
||||
!8530 11 3B 1E 1A 77 23 13 B7 C2 B8 04 CD 0C 05 23 EB
|
||||
!8540 62 6B 7E 23 B6 CA 46 04 23 23 23 AF BE 23 C2 D1
|
||||
!8550 04 EB 73 23 72 C3 C5 04 2A 38 1E 44 4D 7E 23 B6
|
||||
!8560 2B C8 23 23 7E 23 66 6F 7C 92 20 02 7D 93 60 69
|
||||
!8570 7E 23 66 6F 3F C8 3F D0 C3 E0 04 C0 2A 38 1E AF
|
||||
!8580 77 23 77 23 22 B0 1E 2A 38 1E 2B 22 A8 1E 2A 89
|
||||
!8590 1E 22 9D 1E AF CD 5E 08 2A B0 1E 22 B2 1E 22 B4
|
||||
!85A0 1E C1 2A 34 1E F9 21 8D 1E 22 8B 1E AF 6F 67 22
|
||||
!85B0 AE 1E 32 A5 1E 22 B8 1E E5 C5 2A A8 1E C9 3E 3F
|
||||
!85C0 CD C7 06 3E 20 CD C7 06 C3 31 1E AF 32 88 1E 0E
|
||||
!85D0 05 11 3B 1E 7E FE 20 CA D8 05 47 FE 22 CA F8 05
|
||||
!85E0 B7 CA FF 05 3A 88 1E B7 7E C2 D8 05 FE 3F 3E 9C
|
||||
!85F0 CA D8 05 7E FE 30 DA 83 05 FE 3C DA D8 05 D5 11
|
||||
!8600 8E 01 C5 01 D4 05 C5 06 7F 7E FE 61 DA 9C 05 FE
|
||||
!8610 7B D2 9C 05 E6 5F 77 4E EB 23 B6 F2 9E 05 04 7E
|
||||
!8620 E6 7F C8 B9 C2 9E 05 EB E5 13 1A B7 FA D0 05 4F
|
||||
!8630 78 FE 88 C2 BF 05 CD 4F 08 2B 23 7E FE 61 DA C8
|
||||
!8640 05 E6 5F B9 CA AE 05 E1 C3 9C 05 48 F1 EB C9 EB
|
||||
!8650 79 C1 D1 23 12 13 0C D6 3A CA E6 05 FE 49 C2 E9
|
||||
!8660 05 32 88 1E D6 54 C2 59 05 47 7E B7 CA FF 05 B8
|
||||
!8670 CA D8 05 23 12 0C 13 C3 EF 05 21 3A 1E 12 13 12
|
||||
!8680 13 12 C9 3A 27 1E B7 3E 00 32 27 1E C2 1C 06 05
|
||||
!8690 CA 31 1E CD C7 06 3E 05 2B CA 30 06 7E CD C7 06
|
||||
!86A0 C3 42 06 05 2B CD C7 06 C2 42 06 CD C7 06 CD 19
|
||||
!86B0 0B C3 31 1E 21 3B 1E 06 01 AF 32 27 1E CD F5 06
|
||||
!86C0 4F FE 7F CA 08 06 3A 27 1E B7 CA 5B 06 3E 00 CD
|
||||
!86D0 C7 06 AF 32 27 1E 79 FE 07 CA 9F 06 FE 03 CC 19
|
||||
!86E0 0B 37 C8 FE 0D CA 14 0B FE 15 CA 33 06 FE 40 CA
|
||||
!86F0 30 06 FE 5F CA 28 06 FE 08 CA 28 06 FE 12 C2 9A
|
||||
!8700 06 C5 D5 E5 36 00 CD EF 06 21 3B 1E CD 02 12 E1
|
||||
!8710 D1 C1 C3 42 06 FE 20 DA 42 06 78 FE 49 3E 07 D2
|
||||
!8720 B4 06 79 71 32 A6 1E 23 04 CD C7 06 C3 42 06 CD
|
||||
!8730 C7 06 3E 08 C3 AE 06 7E E3 BE 23 E3 CA 4F 08 C3
|
||||
!8740 EB 03 F5 3A 28 1E B7 C2 3A 12 F1 C5 F5 FE 20 DA
|
||||
!8750 EB 06 3A 25 1E 47 3A 85 1E 04 CA E7 06 05 B8 CC
|
||||
!8760 19 0B 3C 32 85 1E F1 C1 CF C9 CD C7 06 C3 19 0B
|
||||
!8770 D7 E6 7F FE 0F C0 3A 28 1E 2F 32 28 1E AF C9 CD
|
||||
!8780 1B 09 C0 C1 CD DD 04 C5 CD 5A 07 E1 4E 23 46 23
|
||||
!8790 78 B1 CA 39 04 CD 63 07 CD 79 08 C5 CD 19 0B 5E
|
||||
!87A0 23 56 23 E5 EB CD CF 18 3E 20 E1 CD C7 06 7E B7
|
||||
!87B0 23 CA 10 07 F2 30 07 D6 7F 4F 11 8F 01 1A 13 B7
|
||||
!87C0 F2 42 07 0D C2 42 07 E6 7F CD C7 06 1A 13 B7 F2
|
||||
!87D0 4C 07 C3 33 07 E5 2A 2B 1E 22 29 1E E1 C9 E5 D5
|
||||
!87E0 2A 29 1E 11 FF FF ED 5A 22 29 1E D1 E1 F0 E5 2A
|
||||
!87F0 2B 1E 22 29 1E D7 FE 03 CA 84 07 E1 C3 63 07 2A
|
||||
!8800 2B 1E 22 29 1E C3 E0 00 3E 64 32 A5 1E CD 07 0A
|
||||
!8810 C1 E5 CD F0 09 22 A1 1E 21 02 00 39 CD 92 03 D1
|
||||
!8820 C2 C1 07 09 D5 2B 56 2B 5E 23 23 E5 2A A1 1E 7C
|
||||
!8830 92 C2 BB 07 7D 93 E1 C2 A1 07 D1 F9 EB 0E 08 CD
|
||||
!8840 C8 03 E5 2A A1 1E E3 E5 2A 36 1E E3 CD F9 0C CD
|
||||
!8850 BC 06 A3 CD F6 0C ED 5B BE 1E ED 4B C0 1E C5 D5
|
||||
!8860 01 00 81 51 5A 7E FE A8 3E 01 C2 03 08 CD 4F 08
|
||||
!8870 CD F6 0C ED 5B BE 1E ED 4B C0 1E CD 3F 17 C5 D5
|
||||
!8880 F5 33 E5 2A A8 1E E3 06 81 C5 33 CD 79 08 22 A8
|
||||
!8890 1E 7E FE 3A CA 2F 08 B7 C2 EB 03 23 7E 23 B6 CA
|
||||
!88A0 A1 08 23 5E 23 56 ED 53 36 1E CD 4F 08 11 10 08
|
||||
!88B0 D5 C8 D6 80 DA 07 0A FE 22 D2 EB 03 07 4F 06 00
|
||||
!88C0 EB 21 9B 02 09 4E 23 46 C5 EB 23 7E FE 3A D0 FE
|
||||
!88D0 20 28 F7 FE 30 3F 3C 3D C9 EB 2A 38 1E CA 73 08
|
||||
!88E0 EB CD 1B 09 E5 CD DD 04 60 69 D1 D2 C6 09 2B 22
|
||||
!88F0 B6 1E EB C9 DF B7 C8 D7 FE 1B 28 11 FE 03 28 0D
|
||||
!8900 FE 13 C0 D7 FE 11 C8 FE 03 28 07 18 F6 3E FF 32
|
||||
!8910 30 1E C0 F6 C0 22 A8 1E 21 F6 FF C1 2A 36 1E F5
|
||||
!8920 7D A4 3C CA B4 08 22 AC 1E 2A A8 1E 22 AE 1E AF
|
||||
!8930 32 28 1E CD 0C 0B F1 21 88 03 C2 1F 04 C3 39 04
|
||||
!8940 2A AE 1E 7C B5 1E 20 CA FF 03 EB 2A AC 1E 22 36
|
||||
!8950 1E EB C9 CD A1 14 C0 32 24 1E C9 E5 2A 2D 1E 06
|
||||
!8960 00 4F 09 22 2D 1E E1 C9 7E FE 41 D8 FE 5B 3F C9
|
||||
!8970 CD 4F 08 CD F6 0C CD 3F 17 FA 16 09 3A C1 1E FE
|
||||
!8980 90 DA D4 17 01 80 90 11 00 00 E5 CD A7 17 E1 51
|
||||
!8990 C8 1E 08 C3 FF 03 2B 11 00 00 CD 4F 08 D0 E5 F5
|
||||
!89A0 21 98 19 7C 92 C2 2F 09 7D 93 DA EB 03 62 6B 19
|
||||
!89B0 29 19 29 F1 D6 30 5F 16 00 19 EB E1 C3 1F 09 CA
|
||||
!89C0 10 05 CD F8 08 2B CD 4F 08 E5 2A 89 1E CA 67 09
|
||||
!89D0 E1 CD BC 06 2C D5 CD F8 08 2B CD 4F 08 C2 EB 03
|
||||
!89E0 E3 EB 7D 93 5F 7C 9A 57 DA E0 03 E5 2A B0 1E 01
|
||||
!89F0 28 00 09 7C 92 20 02 7D 93 D2 E0 03 EB 22 34 1E
|
||||
!8A00 E1 22 89 1E E1 C3 10 05 CA 0C 05 CD 10 05 01 10
|
||||
!8A10 08 C3 A9 09 0E 03 CD C8 03 C1 E5 E5 2A 36 1E E3
|
||||
!8A20 3E 8C F5 33 C5 CD 1B 09 CD F2 09 E5 2A 36 1E 7C
|
||||
!8A30 92 20 02 7D 93 E1 23 DC E0 04 D4 DD 04 60 69 2B
|
||||
!8A40 D8 1E 0E C3 FF 03 C0 16 FF CD 8E 03 F9 FE 8C 1E
|
||||
!8A50 04 C2 FF 03 E1 22 36 1E 23 7C B5 C2 EA 09 3A A6
|
||||
!8A60 1E B7 C2 38 04 21 10 08 E3 3E E1 01 3A 0E 00 06
|
||||
!8A70 00 79 48 47 7E B7 C8 B8 C8 23 FE 22 CA F6 09 C3
|
||||
!8A80 F9 09 CD F5 0E CD BC 06 B1 D5 3A 87 1E F5 CD 08
|
||||
!8A90 0D F1 E3 22 A8 1E 1F CD FB 0C CA 69 0A E5 2A BE
|
||||
!8AA0 1E E5 23 23 5E 23 56 2A 38 1E 7C 92 20 02 7D 93
|
||||
!8AB0 D2 52 0A 2A 34 1E 7C 92 20 02 7D 93 D1 D2 5A 0A
|
||||
!8AC0 21 99 1E 7C 92 20 02 7D 93 D2 5A 0A 3E D1 CD 77
|
||||
!8AD0 13 EB CD 92 11 CD 77 13 E1 EB ED A0 ED A0 ED A0
|
||||
!8AE0 ED A0 E1 C9 E5 11 BE 1E EB ED A0 ED A0 ED A0 ED
|
||||
!8AF0 A0 D1 E1 C9 CD A1 14 7E 47 FE 8C CA 88 0A CD BC
|
||||
!8B00 06 88 2B 4B 0D 78 CA 37 08 CD 1C 09 FE 2C C0 C3
|
||||
!8B10 89 0A CD 08 0D 7E FE 88 CA A5 0A CD BC 06 A6 2B
|
||||
!8B20 CD F9 0C CD 3F 17 CA F2 09 CD 4F 08 DA AA 09 C3
|
||||
!8B30 36 08 2B CD 4F 08 CA 19 0B C8 FE A2 CA 4C 0B FE
|
||||
!8B40 A5 CA 4C 0B E5 FE 2C CA 35 0B FE 3B CA 6F 0B C1
|
||||
!8B50 CD 08 0D E5 3A 87 1E B7 C2 05 0B CD DA 18 CD B6
|
||||
!8B60 11 36 20 2A BE 1E 34 2A BE 1E 3A 25 1E 47 04 CA
|
||||
!8B70 01 0B 04 3A 85 1E 86 3D B8 D4 19 0B CD 05 12 AF
|
||||
!8B80 C4 05 12 E1 C3 B7 0A 3A 85 1E B7 C8 C3 19 0B 36
|
||||
!8B90 00 21 3A 1E 3E 0D CD C7 06 3E 0A CD C7 06 AF 32
|
||||
!8BA0 85 1E 3A 24 1E 3D C8 F5 AF CD C7 06 F1 C3 2A 0B
|
||||
!8BB0 3A 26 1E 47 3A 85 1E B8 D4 19 0B D2 6F 0B D6 0E
|
||||
!8BC0 D2 43 0B 2F C3 64 0B F5 CD 9E 14 CD BC 06 29 2B
|
||||
!8BD0 F1 D6 A5 E5 CA 5F 0B 3A 85 1E 2F 83 D2 6F 0B 3C
|
||||
!8BE0 47 3E 20 CD C7 06 05 C2 68 0B E1 CD 4F 08 C3 BE
|
||||
!8BF0 0A 3F 52 65 64 6F 20 66 72 6F 6D 20 73 74 61 72
|
||||
!8C00 74 0D 0A 00 3A A7 1E B7 C2 E5 03 C1 21 76 0B CD
|
||||
!8C10 02 12 C3 3F 05 CD 63 11 7E FE 22 3E 00 32 28 1E
|
||||
!8C20 C2 B4 0B CD B7 11 CD BC 06 3B E5 CD 05 12 3E E5
|
||||
!8C30 CD 43 05 C1 DA 9E 08 23 7E B7 2B C5 CA EF 09 36
|
||||
!8C40 2C C3 CE 0B E5 2A B6 1E F6 AF 32 A7 1E E3 C3 DA
|
||||
!8C50 0B CD BC 06 2C CD F5 0E E3 D5 7E FE 2C CA 02 0C
|
||||
!8C60 3A A7 1E B7 C2 78 0C 3E 3F CD C7 06 CD 43 05 D1
|
||||
!8C70 C1 DA 9E 08 23 7E B7 2B C5 CA EF 09 D5 3A 87 1E
|
||||
!8C80 B7 CA 2C 0C CD 4F 08 57 47 FE 22 CA 20 0C 3A A7
|
||||
!8C90 1E B7 57 CA 1D 0C 16 3A 06 2C 2B CD BA 11 EB 21
|
||||
!8CA0 40 0C E3 D5 C3 22 0A CD 4F 08 CD 37 18 E3 11 BE
|
||||
!8CB0 1E EB ED A0 ED A0 ED A0 ED A0 E1 2B CD 4F 08 CA
|
||||
!8CC0 4C 0C FE 2C C2 89 0B E3 2B CD 4F 08 C2 D6 0B D1
|
||||
!8CD0 3A A7 1E B7 EB C2 74 08 D5 B6 21 67 0C C4 02 12
|
||||
!8CE0 E1 C9 3F 45 78 74 72 61 20 69 67 6E 6F 72 65 64
|
||||
!8CF0 0D 0A 00 CD F0 09 B7 C2 90 0C 23 7E 23 B6 1E 06
|
||||
!8D00 CA FF 03 23 5E 23 56 ED 53 A3 1E CD 4F 08 FE 83
|
||||
!8D10 C2 78 0C C3 02 0C 11 00 00 C4 F5 0E 22 A8 1E CD
|
||||
!8D20 8E 03 C2 F1 03 F9 D5 7E 23 F5 D5 11 BE 1E ED A0
|
||||
!8D30 ED A0 ED A0 ED A0 E3 E5 CD CD 14 D1 21 BE 1E ED
|
||||
!8D40 A0 ED A0 ED A0 ED A0 E1 CD 89 17 E5 CD A7 17 E1
|
||||
!8D50 C1 90 CD 89 17 CA E6 0C EB 22 36 1E 69 60 C3 0C
|
||||
!8D60 08 F9 2A A8 1E 7E FE 2C C2 10 08 CD 4F 08 CD 9E
|
||||
!8D70 0C CD 08 0D F6 37 3A 87 1E 8F B7 E8 C3 FD 03 CD
|
||||
!8D80 BC 06 28 2B 16 00 D5 0E 01 CD C8 03 CD 82 0D 22
|
||||
!8D90 AA 1E 2A AA 1E C1 78 FE 78 D4 F9 0C 7E 16 00 D6
|
||||
!8DA0 B0 DA 40 0D FE 03 D2 40 0D FE 01 17 AA BA 57 DA
|
||||
!8DB0 EB 03 22 9F 1E CD 4F 08 C3 24 0D 7A B7 C2 70 0E
|
||||
!8DC0 7E 22 9F 1E D6 A9 D8 FE 07 D0 5F 3A 87 1E 3D B3
|
||||
!8DD0 7B CA 09 13 07 83 5F 21 DF 02 19 78 56 BA D0 23
|
||||
!8DE0 CD F9 0C C5 01 17 0D C5 ED 4B BE 1E C5 ED 4B C0
|
||||
!8DF0 1E C5 4E 23 46 23 C5 2A 9F 1E C3 0B 0D AF 32 87
|
||||
!8E00 1E CD 4F 08 1E 24 CA FF 03 DA 37 18 CD ED 08 D2
|
||||
!8E10 EA 0D FE A9 CA 82 0D FE 2E CA 37 18 FE AA CA D9
|
||||
!8E20 0D FE 22 CA B7 11 FE A7 CA D0 0E FE A4 CA 13 11
|
||||
!8E30 FE 26 C2 CC 0D CD 4F 08 FE 48 CA 43 1D FE 42 CA
|
||||
!8E40 B3 1D 1E 02 CA FF 03 D6 B3 D2 FB 0D CD 04 0D CD
|
||||
!8E50 BC 06 29 C9 16 7D CD 0B 0D 2A AA 1E E5 CD 68 17
|
||||
!8E60 CD F9 0C E1 C9 CD F5 0E E5 EB 22 BE 1E 3A 87 1E
|
||||
!8E70 B7 CC 7D 17 E1 C9 06 00 07 4F C5 CD 4F 08 79 FE
|
||||
!8E80 2F DA 22 0E CD 04 0D CD BC 06 2C CD FA 0C EB 2A
|
||||
!8E90 BE 1E E3 E5 EB CD A1 14 EB E3 C3 2A 0E CD D1 0D
|
||||
!8EA0 E3 11 E5 0D D5 01 59 01 09 4E 23 66 69 E9 15 FE
|
||||
!8EB0 AA C8 FE 2D C8 14 FE 2B C8 FE A9 C8 2B C9 F6 AF
|
||||
!8EC0 F5 CD F9 0C CD 01 09 F1 EB C1 E3 EB ED 53 BE 1E
|
||||
!8ED0 ED 43 C0 1E F5 CD 01 09 F1 C1 79 21 D1 10 C2 6B
|
||||
!8EE0 0E A3 4F 78 A2 E9 B3 4F 78 B2 E9 21 82 0E 3A 87
|
||||
!8EF0 1E 1F 7A 17 5F 16 64 78 BA D0 C3 68 0D 84 0E 79
|
||||
!8F00 B7 1F C1 D1 F5 CD FB 0C 21 C6 0E E5 CA A7 17 AF
|
||||
!8F10 32 87 1E D5 CD 56 13 7E 23 23 4E 23 46 D1 C5 F5
|
||||
!8F20 CD 5A 13 CD 89 17 F1 57 E1 7B B2 C8 7A D6 01 D8
|
||||
!8F30 AF BB 3C D0 15 1D 0A BE 23 03 CA AE 0E 3F C3 4A
|
||||
!8F40 17 3C 8F C1 A0 C6 FF 9F C3 51 17 16 5A CD 0B 0D
|
||||
!8F50 CD F9 0C CD 01 09 7B 2F 4F 7A 2F CD D1 10 C1 C3
|
||||
!8F60 17 0D 2B CD 4F 08 C8 CD BC 06 2C 01 E7 0E C5 F6
|
||||
!8F70 AF 32 86 1E 46 CD ED 08 DA EB 03 AF 4F 32 87 1E
|
||||
!8F80 CD 4F 08 DA 11 0F CD ED 08 DA 1E 0F 4F CD 4F 08
|
||||
!8F90 DA 12 0F CD ED 08 D2 12 0F D6 24 C2 2D 0F 3C 32
|
||||
!8FA0 87 1E 0F 81 4F CD 4F 08 3A A5 1E 3D CA E8 0F F2
|
||||
!8FB0 3D 0F 7E D6 28 CA C0 0F AF 32 A5 1E E5 50 59 2A
|
||||
!8FC0 B8 1E 7C 92 C2 4E 0F 7D 93 11 BA 1E CA 75 13 2A
|
||||
!8FD0 B2 1E EB 2A B0 1E 7C 92 C2 62 0F 7D 93 CA 78 0F
|
||||
!8FE0 79 96 23 C2 6D 0F 78 96 23 CA B2 0F 23 23 23 23
|
||||
!8FF0 C3 5B 0F E1 E3 D5 11 ED 0D 7C 92 20 02 7D 93 D1
|
||||
!9000 CA B5 0F E3 E5 C5 01 06 00 2A B4 1E E5 09 C1 E5
|
||||
!9010 CD B4 03 E1 22 B4 1E 60 69 22 B2 1E 2B 36 00 7C
|
||||
!9020 92 20 02 7D 93 C2 A1 0F D1 73 23 72 23 EB E1 C9
|
||||
!9030 32 C1 1E 21 81 03 22 BE 1E E1 C9 E5 2A 86 1E E3
|
||||
!9040 57 D5 C5 CD F5 08 C1 F1 EB E3 E5 EB 3C 57 7E FE
|
||||
!9050 2C CA C6 0F CD BC 06 29 22 AA 1E E1 22 86 1E 1E
|
||||
!9060 00 D5 11 E5 F5 2A B2 1E 3E 19 ED 5B B4 1E 7C 92
|
||||
!9070 C2 FA 0F 7D 93 CA 23 10 7E B9 23 C2 05 10 7E B8
|
||||
!9080 23 5E 23 56 23 C2 EE 0F 3A 86 1E B7 C2 F4 03 F1
|
||||
!9090 44 4D CA 75 13 96 CA 84 10 1E 10 C3 FF 03 11 04
|
||||
!90A0 00 F1 CA 16 09 71 23 70 23 4F CD C8 03 23 23 22
|
||||
!90B0 9F 1E 71 23 3A 86 1E 17 79 01 0B 00 D2 46 10 C1
|
||||
!90C0 03 71 23 70 23 F5 E5 CD 1D 18 EB E1 F1 3D C2 3E
|
||||
!90D0 10 F5 42 4B EB 19 DA E0 03 CD D1 03 22 B4 1E 2B
|
||||
!90E0 36 00 7C 92 20 02 7D 93 C2 64 10 03 57 2A 9F 1E
|
||||
!90F0 5E EB 29 09 EB 2B 2B 73 23 72 23 F1 DA AC 10 47
|
||||
!9100 4F 7E 23 16 E1 5E 23 56 23 E3 F5 7C 92 C2 97 10
|
||||
!9110 7D 93 D2 1E 10 E5 CD 1D 18 D1 19 F1 3D 44 4D C2
|
||||
!9120 89 10 29 29 C1 09 EB 2A AA 1E C9 2A B4 1E EB 21
|
||||
!9130 00 00 39 3A 87 1E B7 CA CC 10 CD 56 13 CD 48 12
|
||||
!9140 2A 34 1E EB 2A 9D 1E 7D 93 4F 7C 9A 41 50 1E 00
|
||||
!9150 21 87 1E 73 06 90 C3 56 17 3A 85 1E 47 AF C3 D2
|
||||
!9160 10 CD 71 11 CD 63 11 01 F0 09 C5 D5 CD BC 06 28
|
||||
!9170 CD F5 0E E5 EB 2B 56 2B 5E E1 CD F9 0C CD BC 06
|
||||
!9180 29 CD BC 06 B1 44 4D E3 71 23 70 C3 B0 11 CD 71
|
||||
!9190 11 D5 CD D1 0D CD F9 0C E3 5E 23 56 23 7A B3 CA
|
||||
!91A0 F7 03 7E 23 66 6F E5 2A B8 1E E3 22 B8 1E 2A BC
|
||||
!91B0 1E E5 2A BA 1E E5 D5 11 BA 1E 21 BE 1E ED A0 ED
|
||||
!91C0 A0 ED A0 ED A0 E1 CD F6 0C 2B CD 4F 08 C2 EB 03
|
||||
!91D0 E1 22 BA 1E E1 22 BC 1E E1 22 B8 1E E1 C9 E5 2A
|
||||
!91E0 36 1E 23 7C B5 E1 C0 1E 16 C3 FF 03 CD BC 06 A4
|
||||
!91F0 3E 80 32 A5 1E B6 47 CD FA 0E C3 F9 0C CD F9 0C
|
||||
!9200 CD DA 18 CD B6 11 CD 56 13 01 B7 13 C5 7E 23 23
|
||||
!9210 E5 CD 1B 12 E1 4E 23 46 CD AA 11 E5 6F CD 49 13
|
||||
!9220 D1 C9 CD 1B 12 21 99 1E E5 77 23 23 73 23 72 E1
|
||||
!9230 C9 2B 06 22 50 E5 0E FF 23 7E 0C B7 CA CC 11 BA
|
||||
!9240 CA CC 11 B8 C2 BD 11 FE 22 CC 4F 08 E3 23 EB 79
|
||||
!9250 CD AA 11 11 99 1E 2A 8B 1E 22 BE 1E 3E 01 32 87
|
||||
!9260 1E EB ED A0 ED A0 ED A0 ED A0 EB 7C 92 20 02 7D
|
||||
!9270 93 22 8B 1E E1 7E C0 1E 1E C3 FF 03 23 CD B6 11
|
||||
!9280 CD 56 13 CD 89 17 1C 1D C8 0A CD C7 06 FE 0D CC
|
||||
!9290 23 0B 03 C3 0C 12 B7 0E F1 F5 2A 34 1E EB 2A 9D
|
||||
!92A0 1E 2F 4F 06 FF 09 23 7C 92 20 02 7D 93 DA 3C 12
|
||||
!92B0 22 9D 1E 23 EB F1 C9 F1 1E 1A CA FF 03 BF F5 01
|
||||
!92C0 1D 12 C5 2A 89 1E 22 9D 1E 21 00 00 E5 2A 34 1E
|
||||
!92D0 E5 21 8D 1E ED 5B 8B 1E 7C 92 20 02 7D 93 01 59
|
||||
!92E0 12 C2 B5 12 2A B0 1E ED 5B B2 1E 7C 92 20 02 7D
|
||||
!92F0 93 CA 84 12 7E 23 23 B7 CD B8 12 C3 6C 12 C1 ED
|
||||
!9300 5B B4 1E 7C 92 20 02 7D 93 CA E4 12 CD 89 17 7B
|
||||
!9310 E5 09 B7 F2 83 12 22 9F 1E E1 4E 06 00 09 09 23
|
||||
!9320 ED 5B 9F 1E 7C 92 20 02 7D 93 CA 84 12 01 A5 12
|
||||
!9330 C5 F6 80 7E 23 23 5E 23 56 23 F0 B7 C8 44 4D 2A
|
||||
!9340 9D 1E 7C 92 20 02 7D 93 60 69 D8 E1 E3 7C 92 20
|
||||
!9350 02 7D 93 E3 E5 60 69 D0 C1 F1 F1 E5 D5 C5 C9 D1
|
||||
!9360 E1 7D B4 C8 2B 46 2B 4E E5 2B 2B 6E 26 00 09 50
|
||||
!9370 59 2B 44 4D 2A 9D 1E CD B7 03 E1 71 23 70 69 60
|
||||
!9380 2B C3 4B 12 C5 E5 2A BE 1E E3 CD 82 0D E3 CD FA
|
||||
!9390 0C 7E E5 2A BE 1E E5 86 1E 1C DA FF 03 CD A7 11
|
||||
!93A0 D1 CD 5A 13 E3 CD 59 13 E5 2A 9B 1E EB CD 40 13
|
||||
!93B0 CD 40 13 21 14 0D E3 E5 C3 D8 11 E1 E3 7E 23 23
|
||||
!93C0 4E 23 46 6F 2C 2D C8 0A 12 03 13 C3 4A 13 CD FA
|
||||
!93D0 0C 2A BE 1E EB CD 77 13 EB C0 D5 50 59 1B 4E 2A
|
||||
!93E0 9D 1E 7C 92 20 02 7D 93 C2 75 13 47 09 22 9D 1E
|
||||
!93F0 E1 C9 2A 8B 1E 2B 46 2B 4E 2B 2B 7C 92 20 02 7D
|
||||
!9400 93 C0 22 8B 1E C9 01 E1 10 C5 CD 53 13 AF 57 32
|
||||
!9410 87 1E 7E B7 C9 01 E1 10 C5 CD 8F 13 CA 16 09 23
|
||||
!9420 23 5E 23 56 1A C9 3E 01 CD A7 11 CD A4 14 2A 9B
|
||||
!9430 1E 73 C1 C3 D8 11 CD 54 14 AF E3 4F E5 7E B8 DA
|
||||
!9440 C9 13 78 11 0E 00 C5 CD 1B 12 C1 E1 E5 23 23 46
|
||||
!9450 23 66 68 06 00 09 44 4D CD AA 11 6F CD 49 13 D1
|
||||
!9460 CD 5A 13 C3 D8 11 CD 54 14 D1 D5 1A 90 C3 BF 13
|
||||
!9470 EB 7E CD 59 14 04 05 CA 16 09 C5 1E FF FE 29 CA
|
||||
!9480 0E 14 CD BC 06 2C CD A1 14 CD BC 06 29 F1 E3 01
|
||||
!9490 C1 13 C5 3D BE 06 00 D0 4F 7E 91 BB 47 D8 43 C9
|
||||
!94A0 CD 8F 13 CA 4A 15 5F 23 23 7E 23 66 6F E5 19 46
|
||||
!94B0 72 E3 C5 7E FE 24 C2 43 14 CD 43 1D 18 0D FE 25
|
||||
!94C0 C2 4D 14 CD B3 1D 18 03 CD 37 18 C1 E1 70 C9 EB
|
||||
!94D0 CD BC 06 29 C1 D1 C5 43 C9 CD A4 14 32 22 1E CD
|
||||
!94E0 21 1E C3 E1 10 CD 8E 14 C3 E9 1D CD 8E 14 F5 1E
|
||||
!94F0 00 2B CD 4F 08 CA 84 14 CD BC 06 2C CD A1 14 C1
|
||||
!9500 CD 21 1E AB A0 CA 85 14 C9 CD A1 14 32 22 1E 32
|
||||
!9510 EA 1D CD BC 06 2C C3 A1 14 CD 4F 08 CD F6 0C CD
|
||||
!9520 FB 08 7A B7 C2 16 09 2B CD 4F 08 7B C9 CD 01 09
|
||||
!9530 1A C3 E1 10 CD F6 0C CD 01 09 D5 CD BC 06 2C CD
|
||||
!9540 A1 14 D1 12 C9 21 C1 19 CD 89 17 C3 DC 14 CD 89
|
||||
!9550 17 21 C1 D1 CD 68 17 78 B7 C8 3A C1 1E B7 CA 79
|
||||
!9560 15 90 D2 FE 14 2F 3C 2A BE 1E E5 2A C0 1E E5 ED
|
||||
!9570 53 BE 1E ED 43 C0 1E C1 D1 FE 19 D0 F5 CD 92 17
|
||||
!9580 67 F1 CD AF 15 B4 21 BE 1E F2 24 15 CD 8F 15 D2
|
||||
!9590 6A 15 23 34 CA FA 03 2E 01 CD C5 15 C3 6A 15 AF
|
||||
!95A0 90 47 7E 9B 5F 23 7E 9A 57 23 7E 99 4F DC 9B 15
|
||||
!95B0 68 63 AF 47 79 B7 C2 57 15 4A 54 65 6F 78 D6 08
|
||||
!95C0 FE E0 C2 38 15 AF 32 C1 1E C9 05 29 7A 17 57 79
|
||||
!95D0 8F 4F F2 4F 15 78 5C 45 B7 CA 6A 15 21 C1 1E 86
|
||||
!95E0 77 D2 4A 15 C8 78 21 C1 1E B7 FC 82 15 46 23 7E
|
||||
!95F0 E6 80 A9 4F ED 53 BE 1E ED 43 C0 1E C9 1C C0 14
|
||||
!9600 C0 0C C0 0E 80 34 C0 C3 FA 03 7E 83 5F 23 7E 8A
|
||||
!9610 57 23 7E 89 4F C9 21 C2 1E 7E 2F 77 AF 6F 90 47
|
||||
!9620 7D 9B 5F 7D 9A 57 7D 99 4F C9 06 00 D6 08 DA BE
|
||||
!9630 15 43 5A 51 0E 00 C3 B1 15 C6 09 6F AF 2D C8 79
|
||||
!9640 1F 4F 7A 1F 57 7B 1F 5F 78 1F 47 C3 C1 15 00 00
|
||||
!9650 00 81 03 AA 56 19 80 F1 22 76 80 45 AA 38 82 CD
|
||||
!9660 3F 17 B7 EA 16 09 21 C1 1E 7E 01 35 80 11 F3 04
|
||||
!9670 90 F5 70 D5 C5 CD DC 14 C1 D1 04 CD 90 16 21 D3
|
||||
!9680 15 CD D3 14 21 D7 15 CD 98 1A 01 80 80 11 00 00
|
||||
!9690 CD DC 14 F1 CD AB 18 01 31 80 11 18 72 21 C1 D1
|
||||
!96A0 CD 3F 17 C8 2E 00 CD F8 16 79 32 D0 1E EB 22 D1
|
||||
!96B0 1E 01 00 00 50 58 21 35 15 E5 21 47 16 E5 E5 21
|
||||
!96C0 BE 1E 7E 23 B7 CA 73 16 E5 2E 08 1F 67 79 D2 61
|
||||
!96D0 16 E5 2A D1 1E 19 EB E1 3A D0 1E 89 1F 4F 7A 1F
|
||||
!96E0 57 7B 1F 5F 78 1F 47 2D 7C C2 50 16 E1 C9 43 5A
|
||||
!96F0 51 4F C9 2A BE 1E E5 2A C0 1E E5 01 20 84 11 00
|
||||
!9700 00 ED 53 BE 1E ED 43 C0 1E C1 D1 CD 3F 17 CA EE
|
||||
!9710 03 2E FF CD F8 16 34 34 2B 7E 32 F5 1D 2B 7E 32
|
||||
!9720 F1 1D 2B 7E 32 ED 1D 41 EB AF 4F 57 5F 32 F8 1D
|
||||
!9730 E5 C5 7D CD EC 1D DE 00 3F D2 C8 16 32 F8 1D F1
|
||||
!9740 F1 37 D2 C1 E1 79 3C 3D 1F FA 6B 15 17 7B 17 5F
|
||||
!9750 7A 17 57 79 17 4F 29 78 17 47 3A F8 1D 17 32 F8
|
||||
!9760 1D 79 B2 B3 C2 B5 16 E5 21 C1 1E 35 E1 C2 B5 16
|
||||
!9770 C3 FA 03 78 B7 CA 1C 17 7D 21 C1 1E AE 80 47 1F
|
||||
!9780 A8 78 F2 1B 17 C6 80 77 CA 75 13 CD 92 17 77 2B
|
||||
!9790 C9 CD 3F 17 2F E1 B7 E1 F2 4A 15 C3 FA 03 ED 5B
|
||||
!97A0 BE 1E ED 4B C0 1E 78 B7 C8 C6 02 DA FA 03 47 CD
|
||||
!97B0 DC 14 21 C1 1E 34 C0 C3 FA 03 3A C1 1E B7 C8 3A
|
||||
!97C0 C0 1E FE 2F 17 9F C0 3C C9 CD 3F 17 06 88 11 00
|
||||
!97D0 00 21 C1 1E 4F 70 06 00 23 36 80 17 C3 32 15 CD
|
||||
!97E0 3F 17 F0 21 C0 1E 7E EE 80 77 C9 EB 2A BE 1E E3
|
||||
!97F0 E5 2A C0 1E E3 E5 EB C9 11 BE 1E ED A0 ED A0 ED
|
||||
!9800 A0 ED A0 C9 5E 23 56 23 4E 23 46 23 C9 21 C0 1E
|
||||
!9810 7E 07 37 1F 77 3F 1F 23 23 77 79 07 37 1F 4F 1F
|
||||
!9820 AE C9 78 B7 CA 3F 17 21 48 17 E5 CD 3F 17 79 C8
|
||||
!9830 21 C0 1E AE 79 F8 CD C1 17 1F A9 C9 23 78 BE C0
|
||||
!9840 2B 79 BE C0 2B 7A BE C0 2B 7B 96 C0 E1 E1 C9 47
|
||||
!9850 4F 57 5F B7 C8 E5 ED 5B BE 1E ED 4B C0 1E CD 92
|
||||
!9860 17 AE 67 FC FD 17 3E 98 90 CD AF 15 7C 17 DC 82
|
||||
!9870 15 06 00 DC 9B 15 E1 C9 1B 7A A3 3C C0 0B C9 21
|
||||
!9880 C1 1E 7E FE 98 3A BE 1E D0 7E CD D4 17 36 98 7B
|
||||
!9890 F5 79 17 CD 32 15 F1 C9 21 00 00 78 B1 C8 78 06
|
||||
!98A0 10 29 DA 1E 10 CB 11 17 D2 34 18 19 DA 1E 10 10
|
||||
!98B0 F0 C9 FE 2D F5 CA 43 18 FE 2B CA 43 18 2B CD 4A
|
||||
!98C0 15 47 57 5F 2F 4F CD 4F 08 DA 94 18 FE 2E CA 6F
|
||||
!98D0 18 FE 45 C2 73 18 CD 4F 08 CD 33 0E CD 4F 08 DA
|
||||
!98E0 BB 18 14 C2 73 18 AF 93 5F 0C 0C CA 4B 18 E5 7B
|
||||
!98F0 90 F4 8C 18 F2 82 18 F5 CD 78 16 F1 3C C2 76 18
|
||||
!9900 D1 F1 CC 68 17 EB C9 C8 F5 CD 23 17 F1 3D C9 D5
|
||||
!9910 57 78 89 47 C5 E5 D5 CD 23 17 F1 D6 30 CD AB 18
|
||||
!9920 E1 C1 D1 C3 4B 18 2A BE 1E E5 2A C0 1E E5 CD 51
|
||||
!9930 17 C1 D1 C3 DC 14 7B 07 07 83 07 86 D6 30 5F C3
|
||||
!9940 61 18 E5 21 7D 03 CD 02 12 E1 EB AF 06 98 CD 56
|
||||
!9950 17 21 01 12 E5 21 C3 1E E5 CD 3F 17 36 20 F2 E8
|
||||
!9960 18 36 2D 23 36 30 CA AC 19 E5 FC 68 17 AF F5 CD
|
||||
!9970 B2 19 01 43 91 11 F8 4F CD A7 17 B7 E2 15 19 F1
|
||||
!9980 CD 8D 18 F5 C3 F7 18 CD 78 16 F1 3C F5 CD B2 19
|
||||
!9990 CD CA 14 3C CD D4 17 ED 53 BE 1E ED 43 C0 1E 01
|
||||
!99A0 06 03 F1 81 3C FA 36 19 FE 08 D2 36 19 3C 47 3E
|
||||
!99B0 02 3D 3D E1 F5 11 C5 19 05 C2 47 19 36 2E 23 36
|
||||
!99C0 30 23 05 36 2E CC 90 17 C5 E5 EB ED 5B BE 1E ED
|
||||
!99D0 4B C0 1E 06 2F 04 7B 96 5F 23 7A 9E 57 23 79 9E
|
||||
!99E0 4F 2B 2B D2 5A 19 CD 8F 15 23 ED 53 BE 1E ED 43
|
||||
!99F0 C0 1E EB E1 70 23 C1 0D C2 47 19 05 CA 90 19 2B
|
||||
!9A00 7E FE 30 CA 84 19 FE 2E C4 90 17 F1 CA AF 19 36
|
||||
!9A10 45 23 36 2B F2 A0 19 36 2D 2F 3C 06 2F 04 D6 0A
|
||||
!9A20 D2 A2 19 C6 3A 23 70 23 77 23 71 E1 C9 01 74 94
|
||||
!9A30 11 F7 23 CD A7 17 B7 E1 E2 0C 19 E9 00 00 00 80
|
||||
!9A40 A0 86 01 10 27 00 E8 03 00 64 00 00 0A 00 00 01
|
||||
!9A50 00 00 21 68 17 E3 E9 CD 70 17 21 C1 19 11 BE 1E
|
||||
!9A60 ED A0 ED A0 ED A0 ED A0 C1 D1 CD 3F 17 78 CA 37
|
||||
!9A70 1A F2 FD 19 B7 CA EE 03 B7 CA 4B 15 D5 C5 79 F6
|
||||
!9A80 7F ED 5B BE 1E ED 4B C0 1E F2 1F 1A D5 C5 CD 04
|
||||
!9A90 18 C1 D1 F5 CD A7 17 E1 7C 1F E1 22 C0 1E E1 22
|
||||
!9AA0 BE 1E DC D7 19 CC 68 17 D5 C5 CD E4 15 C1 D1 CD
|
||||
!9AB0 25 16 CD 70 17 01 38 81 11 3B AA CD 25 16 3A C1
|
||||
!9AC0 1E FE 88 D2 16 17 CD 04 18 C6 80 C6 02 DA 16 17
|
||||
!9AD0 F5 21 D3 15 CD CD 14 CD 1C 16 F1 C1 D1 F5 CD D9
|
||||
!9AE0 14 CD 68 17 21 77 1A CD AC 1A 11 00 00 C1 4A C3
|
||||
!9AF0 25 16 08 40 2E 94 74 70 4F 2E 77 6E 02 88 7A E6
|
||||
!9B00 A0 2A 7C 50 AA AA 7E FF FF 7F 7F 00 00 80 81 00
|
||||
!9B10 00 00 81 CD 70 17 11 23 16 D5 E5 ED 5B BE 1E ED
|
||||
!9B20 4B C0 1E CD 25 16 E1 CD 70 17 7E 23 11 BE 1E ED
|
||||
!9B30 A0 ED A0 ED A0 ED A0 06 F1 C1 D1 3D C8 D5 C5 F5
|
||||
!9B40 E5 CD 25 16 E1 CD 89 17 E5 CD DC 14 E1 C3 BD 1A
|
||||
!9B50 CD 3F 17 21 FC 1D FA 4F 1B 21 1D 1E 11 BE 1E ED
|
||||
!9B60 A0 ED A0 ED A0 ED A0 21 FC 1D C8 86 E6 07 06 00
|
||||
!9B70 77 23 87 87 4F 09 CD 89 17 CD 25 16 3A FB 1D 3C
|
||||
!9B80 E6 03 06 00 FE 01 88 32 FB 1D 21 53 1B 87 87 4F
|
||||
!9B90 09 CD CD 14 ED 5B BE 1E ED 4B C0 1E 7B 59 EE 4F
|
||||
!9BA0 4F 21 C2 1E 36 80 2B 46 36 80 21 FA 1D 34 7E D6
|
||||
!9BB0 AB C2 3D 1B 77 0C 15 1C CD 35 15 11 1D 1E 21 BE
|
||||
!9BC0 1E ED A0 ED A0 ED A0 ED A0 C9 77 2B 77 2B 77 C3
|
||||
!9BD0 19 1B 68 B1 46 68 99 E9 92 69 10 D1 75 68 21 B2
|
||||
!9BE0 1B CD CD 14 CD 70 17 01 49 83 11 DB 0F ED 53 BE
|
||||
!9BF0 1E ED 43 C0 1E C1 D1 CD 90 16 CD 70 17 CD 04 18
|
||||
!9C00 C1 D1 CD D9 14 21 B6 1B CD D3 14 CD 3F 17 37 F2
|
||||
!9C10 9E 1B CD CA 14 CD 3F 17 B7 F5 F4 68 17 21 B6 1B
|
||||
!9C20 CD CD 14 F1 D4 68 17 21 BA 1B C3 98 1A DB 0F 49
|
||||
!9C30 81 00 00 00 7F 05 BA D7 1E 86 64 26 99 87 58 34
|
||||
!9C40 23 87 E0 5D A5 86 DA 0F 49 83 CD 70 17 CD 69 1B
|
||||
!9C50 C1 E1 CD 70 17 EB ED 53 BE 1E ED 43 C0 1E CD 63
|
||||
!9C60 1B C3 8E 16 CD 3F 17 FC D7 19 FC 68 17 3A C1 1E
|
||||
!9C70 FE 81 DA 06 1C 01 00 81 51 59 CD 90 16 21 D3 14
|
||||
!9C80 E5 21 10 1C CD 98 1A 21 B2 1B C9 09 4A D7 3B 78
|
||||
!9C90 02 6E 84 7B FE C1 2F 7C 74 31 9A 7D 84 3D 5A 7D
|
||||
!9CA0 C8 7F 91 7E E4 BB 4C 7E 6C AA AA 7F 00 00 00 81
|
||||
!9CB0 C3 00 00 3E 0C CF C9 ED 45 CD A1 14 7B 32 25 1E
|
||||
!9CC0 C9 CD F6 0C CD 01 09 ED 53 29 1E ED 53 2B 1E C9
|
||||
!9CD0 CD 01 09 D5 E1 46 23 7E C3 D2 10 CD F6 0C CD 01
|
||||
!9CE0 09 D5 CD BC 06 2C CD F6 0C CD 01 09 E3 73 23 72
|
||||
!9CF0 E1 C9 C0 CD 96 1C 1B 2A 89 1E AF ED 52 38 0B ED
|
||||
!9D00 53 89 1E 21 CE FF 19 22 34 1E 13 ED 53 E7 1D 18
|
||||
!9D10 21 D7 FE 3A 20 FB 0E 00 CD D4 1C 47 CD D4 1C 57
|
||||
!9D20 CD D4 1C 5F CD D4 1C 3D 28 1A 3C C2 FD 03 C9 CD
|
||||
!9D30 96 1C CD D4 1C 12 13 10 F9 CD D4 1C 79 B7 C2 7C
|
||||
!9D40 1D C3 B4 1C CD D4 1C 79 B7 C2 7C 1D C3 E0 00 CD
|
||||
!9D50 E5 1C 07 07 07 07 6F CD E5 1C B5 6F 81 4F 7D C9
|
||||
!9D60 D7 D6 30 FE 0A D8 D6 07 C9 CD F9 0C CD 01 09 C5
|
||||
!9D70 21 C3 1E 7A FE 00 28 0C CD 26 1D 78 FE 30 28 02
|
||||
!9D80 70 23 71 23 7B CD 26 1D 7A FE 00 20 05 78 FE 30
|
||||
!9D90 28 02 70 23 71 23 AF 77 23 77 C1 21 C3 1E C3 88
|
||||
!9DA0 11 47 E6 0F FE 0A 38 02 C6 07 C6 30 4F 78 0F 0F
|
||||
!9DB0 0F 0F E6 0F FE 0A 38 02 C6 07 C6 30 47 C9 EB 21
|
||||
!9DC0 00 00 CD 5C 1D DA 7C 1D 18 05 CD 5C 1D 38 1F 29
|
||||
!9DD0 29 29 29 B5 6F 18 F3 13 1A FE 20 CA 5C 1D D6 30
|
||||
!9DE0 D8 FE 0A 38 05 D6 07 FE 0A D8 FE 10 3F C9 EB 7A
|
||||
!9DF0 4B E5 CD D1 10 E1 C9 1E 26 C3 FF 03 CD F9 0C CD
|
||||
!9E00 01 09 C5 21 C3 1E 06 11 05 78 FE 01 28 08 CB 13
|
||||
!9E10 CB 12 30 F4 18 04 CB 13 CB 12 3E 30 CE 00 77 23
|
||||
!9E20 05 20 F3 AF 77 23 77 C1 21 C3 1E C3 88 11 EB 21
|
||||
!9E30 00 00 CD D0 1D DA DE 1D D6 30 29 B5 6F CD D0 1D
|
||||
!9E40 30 F6 EB 7A 4B E5 CD D1 10 E1 C9 13 1A FE 20 CA
|
||||
!9E50 D0 1D FE 30 D8 FE 32 3F C9 1E 28 C3 FF 03
|
||||
89
OperatingSystem/monitor_v2/include/bios_calls.s
Normal file
89
OperatingSystem/monitor_v2/include/bios_calls.s
Normal file
@@ -0,0 +1,89 @@
|
||||
;----------------------------------------------------------------
|
||||
; Terminal IN/OUT functions
|
||||
;----------------------------------------------------------------
|
||||
; prints out byte
|
||||
; input:
|
||||
; - a: byte to send
|
||||
; modify:
|
||||
; - af: destroy
|
||||
bios_termout:
|
||||
jp print_char
|
||||
|
||||
; reads in byte
|
||||
; input:
|
||||
; modify:
|
||||
; - a: read byte
|
||||
; - f: destroy
|
||||
bios_termin:
|
||||
jp read_char
|
||||
|
||||
; reads input status
|
||||
; input:
|
||||
; modify:
|
||||
; - a: 0x00 if empty, 0xFF if byte is ready
|
||||
; - f: destroy
|
||||
bios_termsts:
|
||||
jp read_in_sts
|
||||
|
||||
;----------------------------------------------------------------
|
||||
; I2C IN/OUT functions
|
||||
;----------------------------------------------------------------
|
||||
; sends I2C buffer to device
|
||||
; input:
|
||||
; - HL contains buffer location
|
||||
; - B defines amount of bytes to send
|
||||
; - C contains device address
|
||||
; modify:
|
||||
; - af: destroy
|
||||
bios_iic_send:
|
||||
jp iic_send_buffer
|
||||
|
||||
; sends I2C buffer to device
|
||||
; input:
|
||||
; - HL contains buffer location
|
||||
; - B defines amount of bytes to receive
|
||||
; - C contains device address
|
||||
; modify:
|
||||
; - af: destroy
|
||||
bios_iic_receive:
|
||||
jp iic_receive_buffer
|
||||
|
||||
;----------------------------------------------------------------
|
||||
; disk functions
|
||||
;----------------------------------------------------------------
|
||||
; selects drive 0-3
|
||||
; input:
|
||||
; - a contains drive number
|
||||
; modify:
|
||||
; - af: destroy
|
||||
; - de: destroy
|
||||
; - bc: destroy
|
||||
; - hl: destroy
|
||||
bios_disk_sel:
|
||||
jp ideif_drv_sel
|
||||
|
||||
; gets pointer to selcetd drive information
|
||||
; input:
|
||||
; modify:
|
||||
; - af: destroy
|
||||
; - ix: pointer to start of entry
|
||||
bios_disk_get:
|
||||
jp ideif_get_drv_pointer
|
||||
|
||||
|
||||
; reads from LBA address
|
||||
; input:
|
||||
; - a : sectro count
|
||||
; - de: destination in memory
|
||||
; - hl: pointer to sector value in memory (32 bit (lw))
|
||||
; modify:
|
||||
; - af: destroy
|
||||
; - bc: destroy
|
||||
; - de: destroy
|
||||
; - hl: destroy
|
||||
bios_disk_readlba:
|
||||
jp read_lba_sector
|
||||
|
||||
;----------------------------------------------------------------
|
||||
; filesystem functions
|
||||
;----------------------------------------------------------------
|
||||
@@ -58,12 +58,11 @@ print_char:
|
||||
print_str:
|
||||
ld a, (hl)
|
||||
or a
|
||||
jr z,print_str_end
|
||||
ret z
|
||||
call print_char
|
||||
inc hl
|
||||
jr print_str
|
||||
print_str_end:
|
||||
ret
|
||||
|
||||
|
||||
print_clear:
|
||||
ld hl, [MSG_CLEAR]
|
||||
@@ -118,6 +117,15 @@ read_char:
|
||||
in a, (CS_SIO_A_D) ; read char if avail
|
||||
ret ; return
|
||||
|
||||
|
||||
read_in_sts:
|
||||
out (CS_SIO_A_C), a ; select reg 0
|
||||
in a, (CS_SIO_A_C) ; read reg 0
|
||||
and 1 ; mask D0 (recieve char available)
|
||||
ret z
|
||||
ld a, 0xFF
|
||||
ret
|
||||
|
||||
read_bcd;
|
||||
call read_char
|
||||
jp z, read_bcd
|
||||
|
||||
@@ -46,6 +46,8 @@ MEM_FAT_EXEC_START:
|
||||
|
||||
dephase
|
||||
|
||||
|
||||
|
||||
;-------------------------------------
|
||||
; Get FAT Root-Table position
|
||||
;-------------------------------------
|
||||
@@ -226,6 +228,7 @@ _fat_getfatsec_notroot:
|
||||
;read FAT sector
|
||||
ld hl,MEM_FAT_OF0_FATSEC ;read next sector
|
||||
ld b,1
|
||||
ld a,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
@@ -287,6 +290,7 @@ fat_readfilesec:
|
||||
;call fat_print_dbg
|
||||
ld hl,[MEM_FAT_OF0_DATSEC]
|
||||
ld b,1
|
||||
ld a,1
|
||||
;LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector ;read sectore
|
||||
ld hl,[MEM_FAT_OF0_DATSEC] ;increment pointer to next sector
|
||||
@@ -342,6 +346,7 @@ fat_openfile_noprepare:
|
||||
|
||||
LD HL,MEM_IDE_POINTER ;read first sector
|
||||
LD B,1
|
||||
ld a,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
@@ -372,6 +377,7 @@ _fat_lfs_loop_compare_next_sector:
|
||||
|
||||
LD HL,MEM_IDE_POINTER ;read next sector
|
||||
LD B,1
|
||||
ld a,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ fat_print_directory:
|
||||
LD (MEM_FAT_COUNT1),DE
|
||||
LD HL,MEM_IDE_POINTER ;read first sector
|
||||
LD B,1
|
||||
ld a,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
@@ -112,7 +113,7 @@ _fat_print_directory_loop_next_sector: ; end fo sector. read next sector from d
|
||||
|
||||
LD HL,MEM_IDE_POINTER ;read next sector
|
||||
LD B,1
|
||||
|
||||
ld a,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
@@ -303,7 +304,8 @@ fat_exec:
|
||||
|
||||
call PRINTINLINE
|
||||
db 10,13,"Loading ",0
|
||||
ld hl,[var_input+6]
|
||||
pop hl ;get and re-store pointer ot filename from and to stack
|
||||
push hl
|
||||
call print_str
|
||||
call PRINTINLINE
|
||||
db " to 0x",0
|
||||
|
||||
@@ -37,6 +37,26 @@
|
||||
IDE_REG_LBA2 .EQU 01101b ;High two bits of the cylinder number
|
||||
IDE_REG_LBA3 .EQU 01110b ;Head and device select register
|
||||
|
||||
ide_wait_rdy macro
|
||||
local wait
|
||||
wait:
|
||||
ld b, IDE_REG_CMDSTS
|
||||
call ide_regread_8
|
||||
rla
|
||||
jr c, wait
|
||||
endm
|
||||
|
||||
ide_wait_drq macro
|
||||
local wait
|
||||
wait:
|
||||
ld b, IDE_REG_CMDSTS
|
||||
call ide_regread_8
|
||||
bit 0,a ;Error Bit set.
|
||||
jp nz, ide_printerror
|
||||
bit 3,a
|
||||
jr z,wait
|
||||
endm
|
||||
|
||||
|
||||
;================================================================
|
||||
; I/O access functions
|
||||
@@ -53,7 +73,6 @@ ide_reset:
|
||||
OUT (CS_PIA_CR), A ;Set Data direction to out
|
||||
LD A, IDE_RST
|
||||
OUT (CS_PIA_PC), A ;Reset IDE Device
|
||||
NOP
|
||||
XOR A
|
||||
OUT (CS_PIA_PC), A ;end device reset
|
||||
RET
|
||||
@@ -80,11 +99,11 @@ ide_regwrite_8:
|
||||
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
|
||||
OR IDE_WR ;Set Write bit
|
||||
OUT (CS_PIA_PC), A ;Set write signal
|
||||
NOP ;delay to wait for processing
|
||||
;NOP ;delay to wait for processing
|
||||
LD A, B ;Load register address
|
||||
AND 00011111b ;Mask unused bits
|
||||
OUT (CS_PIA_PC), A ;disable write signal
|
||||
NOP
|
||||
;NOP
|
||||
XOR A ;clear register A
|
||||
OUT (CS_PIA_PC), A ;clear controll lines
|
||||
RET
|
||||
@@ -106,15 +125,7 @@ ide_regread_8:
|
||||
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
|
||||
OR IDE_RD ;Set Write bit
|
||||
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
|
||||
NOP ;delay to wait for processing
|
||||
PUSH AF
|
||||
POP AF
|
||||
PUSH AF
|
||||
POP AF
|
||||
PUSH AF
|
||||
POP AF
|
||||
PUSH AF
|
||||
POP AF
|
||||
NOP
|
||||
IN A,(CS_PIA_PA) ;read data from ide device to b (because a is used later)
|
||||
PUSH AF
|
||||
XOR A ;clear register A
|
||||
@@ -122,80 +133,42 @@ ide_regread_8:
|
||||
POP AF ;put data in accumulator
|
||||
RET
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ide_readsector_256
|
||||
; ide_readsector_512_fast
|
||||
;
|
||||
; Reads IDE Data
|
||||
; Reads IDE Data until no more data is available (multiple sectors)
|
||||
; HL contains destination address
|
||||
; A returns 0 on success, 1 on error
|
||||
;------------------------------------------------------------------------------
|
||||
ide_readsector_256:
|
||||
LD C,0 ;Setup counter for 256 words
|
||||
|
||||
ide_readsector_256_waitloop:
|
||||
LD B, IDE_REG_CMDSTS
|
||||
CALL ide_regread_8
|
||||
BIT 0,a ;Error Bit set.
|
||||
JP NZ, ide_printerror
|
||||
BIT 3,a ;DRQ Bit set. If set, disk has data
|
||||
JR Z, ide_readsector_256_waitloop ;If not set, wait
|
||||
|
||||
LD A, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
|
||||
OUT (CS_PIA_CR), A ;Set Data direction to IN
|
||||
LD A, IDE_REG_DATA ;CS0 and A=0 -> I/O register
|
||||
OUT (CS_PIA_PC), A ;set register
|
||||
OR IDE_RD ;Set Read bit
|
||||
OUT (CS_PIA_PC), A ;Write Read to bit controll lines
|
||||
NOP
|
||||
;NOP
|
||||
;NOP
|
||||
IN A,(CS_PIA_PB) ;Load 16-Bit data to buffer
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A,(CS_PIA_PA)
|
||||
LD (HL), A
|
||||
INC HL
|
||||
DEC C
|
||||
RET Z
|
||||
JR ide_readsector_256_waitloop
|
||||
|
||||
ide_readsector_512_inv:
|
||||
LD C,0 ;Setup counter for 256 words
|
||||
LD DE, 4096 ;Timeout counter
|
||||
ide_readsector_512_inv_waitloop:
|
||||
DEC DE
|
||||
LD A,D
|
||||
OR E
|
||||
JP Z, ide_readsector_timeout
|
||||
;timeout checked. continue
|
||||
LD B, IDE_REG_CMDSTS
|
||||
CALL ide_regread_8
|
||||
BIT 0,a ;Error Bit set.
|
||||
JP NZ, ide_printerror
|
||||
BIT 3,a ;DRQ Bit set. If set, disk has data
|
||||
JR Z, ide_readsector_512_inv_waitloop ;If not set, wait
|
||||
LD DE, 2048 ;Timeout counter
|
||||
|
||||
LD A, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
|
||||
OUT (CS_PIA_CR), A ;Set Data direction to IN
|
||||
LD A, IDE_REG_DATA ;CS0 and A=0 -> I/O register
|
||||
OUT (CS_PIA_PC), A ;set register
|
||||
OR IDE_RD ;Set Read bit
|
||||
OUT (CS_PIA_PC), A ;Write Read to bit controll lines
|
||||
;NOP
|
||||
;NOP
|
||||
NOP
|
||||
|
||||
IN A,(CS_PIA_PA) ;Load 16-Bit data to buffer
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A,(CS_PIA_PB)
|
||||
LD (HL), A
|
||||
INC HL
|
||||
|
||||
DEC C
|
||||
RET Z
|
||||
JR ide_readsector_512_inv_waitloop
|
||||
ide_readsector_512_fast:
|
||||
ld b, IDE_REG_CMDSTS ;check status
|
||||
call ide_regread_8
|
||||
bit 0,a ;Error Bit set
|
||||
jp nz, ide_printerror ;then abort
|
||||
bit 3,a ;wait for drq
|
||||
jr z,ide_readsector_512_fast
|
||||
ld b,0 ;256x
|
||||
ld a, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
|
||||
out (CS_PIA_CR), a ;Set Data direction to IN
|
||||
_ide_readsector_512_floop:
|
||||
ld a, IDE_REG_DATA ;CS0 and A=0 -> I/O register
|
||||
out (CS_PIA_PC), a ;set register
|
||||
or IDE_RD ;Set Read bit
|
||||
out (CS_PIA_PC), a ;Write Read to bit controll lines
|
||||
in a,(CS_PIA_PA) ;load first byte
|
||||
ld (hl), a
|
||||
inc hl
|
||||
in a,(CS_PIA_PB) ;load second byte
|
||||
ld (hl), a
|
||||
inc hl
|
||||
djnz _ide_readsector_512_floop ;loop 256 times (256words = 512 bytes)
|
||||
ld b, IDE_REG_CMDSTS;check drive status
|
||||
call ide_regread_8 ;
|
||||
and 10001001b ;busy, DRQ, or error?
|
||||
ret z ;no more data or errors -> exit
|
||||
bit 3,a ;test if more data available
|
||||
jr nz,ide_readsector_512_fast ;if true, repeat read function
|
||||
jp ide_printerror ;else exit function
|
||||
|
||||
ide_readsector_timeout:
|
||||
LD HL, [str_error_time]
|
||||
@@ -208,9 +181,6 @@ ide_readsector_timeout:
|
||||
CALL print_char
|
||||
RET
|
||||
|
||||
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ide_writesector_256
|
||||
;
|
||||
@@ -249,7 +219,7 @@ ide_printerror:
|
||||
CALL print_char
|
||||
LD A,13
|
||||
CALL print_char
|
||||
|
||||
LD A,1
|
||||
RET
|
||||
|
||||
str_error_start:
|
||||
|
||||
@@ -240,7 +240,7 @@ ideif_init_drive:
|
||||
;ld e,a
|
||||
call ide_reset
|
||||
|
||||
ld bc, 0x5FFF ;preload timeout counter
|
||||
ld de, 0xAFFF ;preload timeout counter
|
||||
_ideif_init_drive_loop:
|
||||
ld b, IDE_REG_CMDSTS
|
||||
call ide_regread_8 ;read drive status register
|
||||
@@ -265,36 +265,50 @@ _ideif_init_drive_found:
|
||||
ld a, IDE_CMD_IDENT
|
||||
call ide_regwrite_8 ;Write command to drive
|
||||
ld hl, MEM_IDE_BUFFER ;set read/write buffer start address
|
||||
call ide_readsector_256 ;read 256 words from device
|
||||
call ide_readsector_512_fast ;read 256 words from device
|
||||
ld hl,MEM_IDE_BUFFER + 54 ;print device serial
|
||||
ld a,(ix+12) ;load str pointer into de
|
||||
ld e,a
|
||||
ld a,(ix+13)
|
||||
ld d,a
|
||||
ld bc,40 ;copy 40 char
|
||||
ldir
|
||||
ld b,20
|
||||
_ideif_init_drive_charloop:
|
||||
ld a,(hl) ;load data from HL (buffer)
|
||||
inc hl
|
||||
ex af,af'
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
ld (de),a
|
||||
inc de
|
||||
ex af,af'
|
||||
ld (de),a
|
||||
inc de
|
||||
djnz _ideif_init_drive_charloop
|
||||
;get partition table
|
||||
;read bootsector
|
||||
ide_wait_rdy
|
||||
ld a,1 ;read 1 sector
|
||||
ld B,IDE_REG_SECTOR
|
||||
call ide_regwrite_8
|
||||
ld a,1 ;read sector 0
|
||||
ld b,IDE_REG_SSECTOR
|
||||
ld a,0 ;read sector 0
|
||||
ld b,IDE_REG_LBA0
|
||||
call ide_regwrite_8
|
||||
ld a,0 ;read cylinder 0
|
||||
ld b,IDE_REG_LCYL
|
||||
ld b,IDE_REG_LBA1
|
||||
call ide_regwrite_8
|
||||
ld a,0
|
||||
ld b,IDE_REG_HCYL
|
||||
ld b,IDE_REG_LBA2
|
||||
call ide_regwrite_8
|
||||
ld a,10100000b ;read head 0
|
||||
ld b,IDE_REG_HEAD
|
||||
ld a,11100000b ;read head 0
|
||||
ld b,IDE_REG_LBA3
|
||||
call ide_regwrite_8
|
||||
|
||||
ld a,IDE_CMD_READSEC ;send read command
|
||||
ld b,IDE_REG_CMDSTS
|
||||
call ide_regwrite_8
|
||||
|
||||
ld hl, MEM_IDE_BUFFER ;set read/write buffer start address
|
||||
call ide_readsector_512_inv ;read 256 words from device
|
||||
call ide_readsector_512_fast ;read 256 words from device
|
||||
;prepare partitions
|
||||
ld b,4 ;Partition table length
|
||||
ld c,0 ;Partition ID counter
|
||||
@@ -393,6 +407,9 @@ ideif_init_all:
|
||||
; A contains sector count
|
||||
;------------------------------------------------------------------------------
|
||||
read_lba_sector:
|
||||
push af
|
||||
ide_wait_rdy
|
||||
pop af
|
||||
LD B,IDE_REG_SECTOR ;amount of sectores
|
||||
CALL ide_regwrite_8
|
||||
|
||||
@@ -417,10 +434,10 @@ read_lba_sector:
|
||||
LD A,IDE_CMD_READSEC ;send read command
|
||||
LD B,IDE_REG_CMDSTS
|
||||
CALL ide_regwrite_8
|
||||
|
||||
;LD HL,MEM_IDE_BUFFER ;set read/write buffer start address
|
||||
EX DE,HL ;transfer destination in DE to HL
|
||||
call ide_readsector_512_inv ;read 256 words from device
|
||||
ret
|
||||
jp ide_readsector_512_fast ;read 256 words from device
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ideif_drv_sel
|
||||
|
||||
@@ -90,6 +90,9 @@ iic_receive_buffer_err:
|
||||
|
||||
;Reset PIO configuration
|
||||
iic_init:
|
||||
;SCL HIGH, SDA HIGH
|
||||
LD A,0x03
|
||||
OUT (CS_PIO_AD), A
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
@@ -100,6 +103,9 @@ iic_init:
|
||||
|
||||
; send start bit
|
||||
iic_send_sbit:
|
||||
;SCL HIGH, SDA HIGH
|
||||
LD A,0x03
|
||||
OUT (CS_PIO_AD), A
|
||||
;Set port to controll mode (MODE3)
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
|
||||
63
OperatingSystem/monitor_v2/include/ref.s
Normal file
63
OperatingSystem/monitor_v2/include/ref.s
Normal file
@@ -0,0 +1,63 @@
|
||||
;-------------------------------------
|
||||
; BIOS Routines entry points
|
||||
; Do not move in memory!!!!
|
||||
;-------------------------------------
|
||||
.org 0x0050
|
||||
B_BEEP:
|
||||
jp beep
|
||||
|
||||
B_IICSEND:
|
||||
jp iic_send_buffer
|
||||
|
||||
B_IICRECV:
|
||||
jp iic_receive_buffer
|
||||
|
||||
B_PRINTCHAR:
|
||||
jp print_char
|
||||
|
||||
B_PRINTSTR:
|
||||
jp print_str
|
||||
|
||||
B_PRINTINLINE:
|
||||
jp PRINTINLINE
|
||||
|
||||
B_PRINTAHEX:
|
||||
jp print_a_hex
|
||||
|
||||
B_PRINTLN:
|
||||
jp print_newLine
|
||||
|
||||
B_READCHAR:
|
||||
jp read_char
|
||||
|
||||
B_KEYREAD:
|
||||
ret ;placeholder -> not implemented
|
||||
db 0x00, 0x00
|
||||
|
||||
B_KEYREADASCII:
|
||||
ret ;placeholder -> not implemented
|
||||
db 0x00, 0x00
|
||||
|
||||
B_KEYSEND:
|
||||
ret ;placeholder -> not implemented
|
||||
db 0x00, 0x00
|
||||
|
||||
B_DSKSEL:
|
||||
jp ideif_drv_sel
|
||||
|
||||
B_FATOPEN:
|
||||
jp fat_openfile
|
||||
|
||||
B_FATREAD:
|
||||
jp fat_readfilesec
|
||||
|
||||
B_FATCD:
|
||||
jp fat_cd_single
|
||||
|
||||
B_FATCREATE:
|
||||
ret ;placeholder -> not implemented
|
||||
db 0x00, 0x00
|
||||
|
||||
B_FATWRITE:
|
||||
ret ;placeholder -> not implemented
|
||||
db 0x00, 0x00
|
||||
@@ -60,7 +60,8 @@ INT_VEC:
|
||||
;================================================================
|
||||
mon_var_template:
|
||||
phase SYS_RAM_START
|
||||
|
||||
interrupt_vectors:
|
||||
defs 256
|
||||
var_buffer_len:
|
||||
defb 0
|
||||
var_last_char:
|
||||
@@ -100,6 +101,8 @@ mon_var_template_end:
|
||||
; Start of monitor
|
||||
;================================================================
|
||||
org 0x0050
|
||||
.include "ref.s" ;static bios calls for programs
|
||||
|
||||
BOOT_PHASE0: ;Setup Hardware
|
||||
;Setup Stack-Pointer
|
||||
ld sp, STACK_RAM_TOP
|
||||
@@ -118,6 +121,11 @@ BOOT_PHASE0: ;Setup Hardware
|
||||
ld (var_curseron),a
|
||||
ld a, " "
|
||||
ld (var_curserchar),a
|
||||
|
||||
;setup interrupt table
|
||||
ld a,[interrupt_vectors]>>8
|
||||
ld i,a
|
||||
|
||||
;Initialize Console (Serial-Port)
|
||||
call CONSOLE_INIT
|
||||
|
||||
@@ -135,9 +143,7 @@ BOOT_PHASE1_LOOP:
|
||||
pop hl
|
||||
jp nz, BOOT_PHASE1_LOOP
|
||||
;template copy done
|
||||
xor a ;set dir to empty
|
||||
ld (var_dir),a
|
||||
ld (var_dir+1),a
|
||||
|
||||
|
||||
BOOT_PHASE2: ;Hardware initialized.
|
||||
; Print banner
|
||||
@@ -156,6 +162,9 @@ BOOT_PHASE2: ;Hardware initialized.
|
||||
LD BC,0x48
|
||||
CALL beep
|
||||
|
||||
xor a ;set dir to empty
|
||||
ld (var_dir),a
|
||||
ld (var_dir+1),a
|
||||
; Start commandline
|
||||
jp COMMAND
|
||||
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,28 +1,47 @@
|
||||
;This file is generated by the build script.
|
||||
;Do not make any changes here!
|
||||
|
||||
?a0000 equ 0x14A5
|
||||
?a0001 equ 0x1562
|
||||
ADDR_RTC equ 0xD0
|
||||
A_RTS_OFF equ 0x17F
|
||||
A_RTS_ON equ 0x188
|
||||
BOOT_PHASE0 equ 0x50
|
||||
BOOT_PHASE1 equ 0x6E
|
||||
BOOT_PHASE1_LOOP equ 0x77
|
||||
BOOT_PHASE2 equ 0x89
|
||||
COMMAND equ 0x1915
|
||||
COMMAND_BACKSPACE equ 0x1956
|
||||
COMMAND_LUT equ 0x1883
|
||||
COMMAND_PROCESS equ 0x197C
|
||||
COMMAND_PROCESS_FOUND equ 0x19B7
|
||||
COMMAND_PROCESS_LOOP equ 0x197F
|
||||
COMMAND_PROCESS_LOOP_STR1 equ 0x1988
|
||||
COMMAND_PROCESS_LOOP_STR2 equ 0x199E
|
||||
COMMAND_PROCESS_NEXT_ENTRY equ 0x19A3
|
||||
COMMAND_PROCESS_NEXT_ENTRYI equ 0x19A2
|
||||
COMMAND_PROCESS_NOT_FOUND equ 0x19AE
|
||||
COMMAND_READ equ 0x1927
|
||||
CONSOLE_INIT equ 0xA5
|
||||
CONSOLE_INIT_CTC equ 0xA5
|
||||
CONSOLE_INIT_SIO equ 0xAD
|
||||
A_RTS_OFF equ 0x1BE
|
||||
A_RTS_ON equ 0x1C7
|
||||
BOOT_PHASE0 equ 0x83
|
||||
BOOT_PHASE1 equ 0xA5
|
||||
BOOT_PHASE1_LOOP equ 0xAE
|
||||
BOOT_PHASE2 equ 0xB9
|
||||
B_BEEP equ 0x50
|
||||
B_DSKSEL equ 0x71
|
||||
B_FATCD equ 0x7A
|
||||
B_FATCREATE equ 0x7D
|
||||
B_FATOPEN equ 0x74
|
||||
B_FATREAD equ 0x77
|
||||
B_FATWRITE equ 0x80
|
||||
B_IICRECV equ 0x56
|
||||
B_IICSEND equ 0x53
|
||||
B_KEYREAD equ 0x6B
|
||||
B_KEYSEND equ 0x6E
|
||||
B_PRINTAHEX equ 0x62
|
||||
B_PRINTCHAR equ 0x59
|
||||
B_PRINTINLINE equ 0x5F
|
||||
B_PRINTLN equ 0x65
|
||||
B_PRINTSTR equ 0x5C
|
||||
B_READCHAR equ 0x68
|
||||
COMMAND equ 0x1944
|
||||
COMMAND_BACKSPACE equ 0x1985
|
||||
COMMAND_LUT equ 0x18B2
|
||||
COMMAND_PROCESS equ 0x19AB
|
||||
COMMAND_PROCESS_FOUND equ 0x19E6
|
||||
COMMAND_PROCESS_LOOP equ 0x19AE
|
||||
COMMAND_PROCESS_LOOP_STR1 equ 0x19B7
|
||||
COMMAND_PROCESS_LOOP_STR2 equ 0x19CD
|
||||
COMMAND_PROCESS_NEXT_ENTRY equ 0x19D2
|
||||
COMMAND_PROCESS_NEXT_ENTRYI equ 0x19D1
|
||||
COMMAND_PROCESS_NOT_FOUND equ 0x19DD
|
||||
COMMAND_READ equ 0x1956
|
||||
CONSOLE_INIT equ 0xDC
|
||||
CONSOLE_INIT_CTC equ 0xDC
|
||||
CONSOLE_INIT_SIO equ 0xE4
|
||||
CS_APU_CTRL equ 0xF9
|
||||
CS_APU_DATA equ 0xF8
|
||||
CS_BANK equ 0x00
|
||||
@@ -43,18 +62,18 @@ CS_SIO_A_C equ 0x09
|
||||
CS_SIO_A_D equ 0x08
|
||||
CS_SIO_B_C equ 0x0B
|
||||
CS_SIO_B_D equ 0x0A
|
||||
DHEX_TO_BYTE equ 0x1F6
|
||||
DHEX_TO_BYTE_FAILED equ 0x212
|
||||
ERR_SYNTAX equ 0x19CD
|
||||
EXEC_RST_08 equ 0xD96
|
||||
EXEC_RST_10 equ 0xD9A
|
||||
EXEC_RST_18 equ 0xDA6
|
||||
HEX_TO_BIN equ 0x216
|
||||
HEX_TO_BIN_2 equ 0x224
|
||||
HEX_TO_INVALID_2 equ 0x22B
|
||||
DHEX_TO_BYTE equ 0x235
|
||||
DHEX_TO_BYTE_FAILED equ 0x251
|
||||
ERR_SYNTAX equ 0x19FC
|
||||
EXEC_RST_08 equ 0xDD5
|
||||
EXEC_RST_10 equ 0xDD9
|
||||
EXEC_RST_18 equ 0xDE5
|
||||
HEX_TO_BIN equ 0x255
|
||||
HEX_TO_BIN_2 equ 0x263
|
||||
HEX_TO_INVALID_2 equ 0x26A
|
||||
IDE_CMD_IDENT equ 0xEC
|
||||
IDE_CMD_READSEC equ 0x20
|
||||
IDE_DEV_TABLE equ 0x12FA
|
||||
IDE_DEV_TABLE equ 0x1307
|
||||
IDE_RD equ 0x40
|
||||
IDE_REG_ALTSTS equ 0x16
|
||||
IDE_REG_CMDSTS equ 0x0F
|
||||
@@ -96,67 +115,67 @@ IO_RTC_SEC1 equ 0x21
|
||||
IO_RTC_WEEK equ 0x2C
|
||||
IO_RTC_YEAR1 equ 0x2B
|
||||
IO_RTC_YERR0 equ 0x2A
|
||||
MEM_FAT_AMOUNT equ 0x43B8
|
||||
MEM_FAT_CLUSTERLEN equ 0x43BB
|
||||
MEM_FAT_COUNT1 equ 0x43BC
|
||||
MEM_FAT_CURDIR equ 0x43DF
|
||||
MEM_FAT_CURRDIR equ 0x443F
|
||||
MEM_FAT_DATASTART equ 0x43C1
|
||||
MEM_FAT_DIRSEC equ 0x43CD
|
||||
MEM_FAT_EXEC_COUNT equ 0x4445
|
||||
MEM_FAT_EXEC_CURR equ 0x4443
|
||||
MEM_FAT_EXEC_START equ 0x4447
|
||||
MEM_FAT_FILEREMAIN equ 0x43C9
|
||||
MEM_FAT_OF0_ATTRIBUTE equ 0x442F
|
||||
MEM_FAT_OF0_CCLUST equ 0x4431
|
||||
MEM_FAT_OF0_DATREM equ 0x443B
|
||||
MEM_FAT_OF0_DATSEC equ 0x4437
|
||||
MEM_FAT_OF0_FATSEC equ 0x4433
|
||||
MEM_FAT_RESERVED equ 0x43B6
|
||||
MEM_FAT_ROOTSTART equ 0x43C5
|
||||
MEM_FAT_SECTORS equ 0x43B9
|
||||
MEM_FAT_TMPFNAME equ 0x43CF
|
||||
MEM_FAT_TMPPOINTER equ 0x43BD
|
||||
MEM_IDE_BUFFER equ 0x41B6
|
||||
MEM_IDE_DEVICE equ 0x40CB
|
||||
MEM_IDE_DEV_TABLE equ 0x40D5
|
||||
MEM_IDE_FSBUFFER equ 0x43B6
|
||||
MEM_IDE_PARTITION equ 0x40CD
|
||||
MEM_IDE_POINTER equ 0x40D1
|
||||
MEM_IDE_SELECTED equ 0x4115
|
||||
MEM_IDE_STATUS equ 0x40CC
|
||||
MEM_IDE_STRING_0 equ 0x4116
|
||||
MEM_IDE_STRING_1 equ 0x413E
|
||||
MEM_IDE_STRING_2 equ 0x4166
|
||||
MEM_IDE_STRING_3 equ 0x418E
|
||||
MSG_CLEAR equ 0x177
|
||||
NOT_IMPLEMENTED equ 0x19C6
|
||||
OP_CALL equ 0x1A28
|
||||
OP_CD equ 0x1DF8
|
||||
OP_CLR equ 0x1BBC
|
||||
OP_DASM equ 0x1AA9
|
||||
OP_DIR equ 0x1DF4
|
||||
OP_DUMP equ 0x1A48
|
||||
OP_EXEC equ 0x1A0F
|
||||
OP_FSEXEC equ 0x1E15
|
||||
OP_IIC_IN equ 0x1B70
|
||||
OP_IIC_OUT equ 0x1B10
|
||||
OP_IO_IN equ 0x1AD9
|
||||
OP_IO_OUT equ 0x1AEF
|
||||
OP_LSDSK equ 0x1DD1
|
||||
OP_RTIME equ 0x1BC0
|
||||
OP_SELDSK equ 0x1DD5
|
||||
OP_SET equ 0x1A78
|
||||
OP_STIME equ 0x1D58
|
||||
POST_CHECK_APU equ 0x1E4E
|
||||
POST_CHECK_IDE_30 equ 0x1E79
|
||||
POST_CHECK_IDE_40 equ 0x1E8C
|
||||
POST_CHECK_PIO equ 0x1E29
|
||||
POST_START equ 0x1E19
|
||||
POST_TEST_RTC equ 0x1EA6
|
||||
MEM_FAT_AMOUNT equ 0x44B8
|
||||
MEM_FAT_CLUSTERLEN equ 0x44BB
|
||||
MEM_FAT_COUNT1 equ 0x44BC
|
||||
MEM_FAT_CURDIR equ 0x44DF
|
||||
MEM_FAT_CURRDIR equ 0x453F
|
||||
MEM_FAT_DATASTART equ 0x44C1
|
||||
MEM_FAT_DIRSEC equ 0x44CD
|
||||
MEM_FAT_EXEC_COUNT equ 0x4545
|
||||
MEM_FAT_EXEC_CURR equ 0x4543
|
||||
MEM_FAT_EXEC_START equ 0x4547
|
||||
MEM_FAT_FILEREMAIN equ 0x44C9
|
||||
MEM_FAT_OF0_ATTRIBUTE equ 0x452F
|
||||
MEM_FAT_OF0_CCLUST equ 0x4531
|
||||
MEM_FAT_OF0_DATREM equ 0x453B
|
||||
MEM_FAT_OF0_DATSEC equ 0x4537
|
||||
MEM_FAT_OF0_FATSEC equ 0x4533
|
||||
MEM_FAT_RESERVED equ 0x44B6
|
||||
MEM_FAT_ROOTSTART equ 0x44C5
|
||||
MEM_FAT_SECTORS equ 0x44B9
|
||||
MEM_FAT_TMPFNAME equ 0x44CF
|
||||
MEM_FAT_TMPPOINTER equ 0x44BD
|
||||
MEM_IDE_BUFFER equ 0x42B6
|
||||
MEM_IDE_DEVICE equ 0x41CB
|
||||
MEM_IDE_DEV_TABLE equ 0x41D5
|
||||
MEM_IDE_FSBUFFER equ 0x44B6
|
||||
MEM_IDE_PARTITION equ 0x41CD
|
||||
MEM_IDE_POINTER equ 0x41D1
|
||||
MEM_IDE_SELECTED equ 0x4215
|
||||
MEM_IDE_STATUS equ 0x41CC
|
||||
MEM_IDE_STRING_0 equ 0x4216
|
||||
MEM_IDE_STRING_1 equ 0x423E
|
||||
MEM_IDE_STRING_2 equ 0x4266
|
||||
MEM_IDE_STRING_3 equ 0x428E
|
||||
MSG_CLEAR equ 0x1B6
|
||||
NOT_IMPLEMENTED equ 0x19F5
|
||||
OP_CALL equ 0x1A57
|
||||
OP_CD equ 0x1E27
|
||||
OP_CLR equ 0x1BEB
|
||||
OP_DASM equ 0x1AD8
|
||||
OP_DIR equ 0x1E23
|
||||
OP_DUMP equ 0x1A77
|
||||
OP_EXEC equ 0x1A3E
|
||||
OP_FSEXEC equ 0x1E44
|
||||
OP_IIC_IN equ 0x1B9F
|
||||
OP_IIC_OUT equ 0x1B3F
|
||||
OP_IO_IN equ 0x1B08
|
||||
OP_IO_OUT equ 0x1B1E
|
||||
OP_LSDSK equ 0x1E00
|
||||
OP_RTIME equ 0x1BEF
|
||||
OP_SELDSK equ 0x1E04
|
||||
OP_SET equ 0x1AA7
|
||||
OP_STIME equ 0x1D87
|
||||
POST_CHECK_APU equ 0x1E7D
|
||||
POST_CHECK_IDE_30 equ 0x1EA8
|
||||
POST_CHECK_IDE_40 equ 0x1EBB
|
||||
POST_CHECK_PIO equ 0x1E58
|
||||
POST_START equ 0x1E48
|
||||
POST_TEST_RTC equ 0x1ED5
|
||||
PRG_RAM_START equ 0x4110
|
||||
PRG_RAM_TOP equ 0xFF00
|
||||
PRINTINLINE equ 0x191
|
||||
PRINTINLINE equ 0x1D0
|
||||
PROG_MEM_START equ 0x4000
|
||||
PROG_ROM_START equ 0x100
|
||||
RST_00 equ 0x00
|
||||
@@ -165,391 +184,391 @@ RST_10 equ 0x10
|
||||
RST_18 equ 0x18
|
||||
STACK_RAM_TOP equ 0xFFFF
|
||||
START_ROM equ 0x00
|
||||
STRCONV_BYTES_TO_HEX equ 0x22D
|
||||
STRCONV_BYTES_TO_HEX_1 equ 0x23C
|
||||
STRCONV_BYTES_TO_HEX_2 equ 0x246
|
||||
STR_Banner_Start equ 0x264F
|
||||
STR_PD_HEADER equ 0x183C
|
||||
STRCONV_BYTES_TO_HEX equ 0x26C
|
||||
STRCONV_BYTES_TO_HEX_1 equ 0x27B
|
||||
STRCONV_BYTES_TO_HEX_2 equ 0x285
|
||||
STR_Banner_Start equ 0x2689
|
||||
STR_PD_HEADER equ 0x186B
|
||||
SYS_BUF_START equ 0x4010
|
||||
SYS_RAM_START equ 0x4000
|
||||
VAR_CONSOLE_BAUD equ 0x18
|
||||
VAR_CONSOLE_CONF equ 0x0F
|
||||
VDP_MEM equ 0x80
|
||||
VDP_REG equ 0x81
|
||||
_COMMAND_PROCESS_FOUND equ 0x19C5
|
||||
_OP_CALL equ 0x1A47
|
||||
_OP_IIC_ACK_ERR equ 0x1B55
|
||||
_OP_IIC_ACK_ERR_str equ 0x1B5C
|
||||
_OP_IIC_IN_LOOP equ 0x1BA2
|
||||
_OP_IIC_IN_LOOP_TEXT equ 0x1BAF
|
||||
_OP_IIC_OUT_LOOP equ 0x1B26
|
||||
_OP_IIC_OUT_SEND equ 0x1B42
|
||||
_OP_RTIME_NN equ 0x1BC3
|
||||
_OP_RTIME_RD_CMD equ 0x1C7B
|
||||
_OP_SELDSK_INVALID equ 0x1DE4
|
||||
_OP_SELDSK_INVALID_STR equ 0x1DFC
|
||||
_OP_SET_LOOP equ 0x1A90
|
||||
_OP_STIME_INVALID equ 0x1D1E
|
||||
_OP_STIME_PROMPT equ 0x1D35
|
||||
_OP_STIME_PROMPT_ERR equ 0x1D4D
|
||||
_OP_STIME_STR_DAY equ 0x1C7C
|
||||
_OP_STIME_STR_HOUR equ 0x1CCD
|
||||
_OP_STIME_STR_MIN equ 0x1CE8
|
||||
_OP_STIME_STR_MON equ 0x1C97
|
||||
_OP_STIME_STR_SEC equ 0x1D03
|
||||
_OP_STIME_STR_YEAR equ 0x1CB2
|
||||
_POST_CHECK_APU_FAILED equ 0x1E6D
|
||||
_POST_CHECK_IDE_FAILED equ 0x1E9F
|
||||
_POST_CHECK_PIO_FAILED equ 0x1E42
|
||||
_POST_TEST_RTC_INVALID equ 0x1EE0
|
||||
_POST_TEST_RTC_NOTFOUND equ 0x1ED9
|
||||
_STR_NOT_FOUND equ 0x19E8
|
||||
_STR_NOT_IMPLEMENTED equ 0x19D4
|
||||
_STR_SYNTAX equ 0x19FC
|
||||
_beep_pause_l1 equ 0xDC2
|
||||
_compare_filename_loop equ 0x2313
|
||||
_compare_filename_nomatch equ 0x2321
|
||||
_fat_cd_navigate equ 0x24C4
|
||||
_fat_cd_navigate_end equ 0x250A
|
||||
_fat_cd_navigate_errfile equ 0x2532
|
||||
_fat_cd_navigate_errfile_str equ 0x2564
|
||||
_fat_cd_navigate_error equ 0x251C
|
||||
_fat_cd_navigate_error_str equ 0x253A
|
||||
_fat_cd_navigate_findsec equ 0x24C9
|
||||
_fat_cd_navigate_findsec_skipslash equ 0x24F5
|
||||
_fat_cd_navigate_goback_fl equ 0x2480
|
||||
_fat_cd_navigate_inerror equ 0x252A
|
||||
_fat_cd_navigate_inerrorS equ 0x2524
|
||||
_fat_cd_navigate_inerrore equ 0x252B
|
||||
_fat_cd_navigate_inputerr_str equ 0x2551
|
||||
_fat_cd_navigate_l2 equ 0x24FB
|
||||
_fat_exec_notexec equ 0x262B
|
||||
_fat_exec_notfound equ 0x2612
|
||||
_fat_exec_read_done equ 0x25FA
|
||||
_fat_exec_readloop1 equ 0x25DC
|
||||
_fat_get_root_table_invalid equ 0x210B
|
||||
_fat_getfatsec_notroot equ 0x214A
|
||||
_fat_increment_32 equ 0x2299
|
||||
_fat_lfs_loop equ 0x2211
|
||||
_fat_lfs_loop_compare_end equ 0x224B
|
||||
_fat_lfs_loop_compare_match equ 0x224F
|
||||
_fat_lfs_loop_compare_next_sector equ 0x2223
|
||||
_fat_math_add32 equ 0x22AD
|
||||
_fat_math_mul32 equ 0x22DE
|
||||
_fat_math_mul32_l equ 0x22E5
|
||||
_fat_math_mul32_noadd equ 0x22F2
|
||||
_fat_math_sector_add_16 equ 0x2285
|
||||
_fat_print_directory_dir equ 0x2401
|
||||
_fat_print_directory_loop equ 0x2394
|
||||
_fat_print_directory_loop_break equ 0x245E
|
||||
_fat_print_directory_loop_file equ 0x23B0
|
||||
_fat_print_directory_loop_next equ 0x242C
|
||||
_fat_print_directory_loop_next_sector equ 0x2437
|
||||
_format_filename_fat16_clean equ 0x232A
|
||||
_format_filename_fat16_loop equ 0x2331
|
||||
_format_filename_fat16_loop_copy equ 0x2344
|
||||
_format_filename_fat16_loop_skip_8 equ 0x233B
|
||||
_ideif_drv_sel_fail equ 0x15AB
|
||||
_ideif_drv_sel_fstr0 equ 0x1668
|
||||
_ideif_drv_sel_pstr equ 0x165F
|
||||
_ideif_drv_sel_sstr0 equ 0x1676
|
||||
_ideif_drv_sel_syn equ 0x1683
|
||||
_ideif_init_drive_found equ 0x146E
|
||||
_ideif_init_drive_loop equ 0x1456
|
||||
_ideif_init_drive_nodrv equ 0x1469
|
||||
_ideif_init_drive_prt_fnd equ 0x14D9
|
||||
_ideif_init_drive_prt_l1 equ 0x14C7
|
||||
_ideif_init_drive_prt_ln equ 0x14D1
|
||||
_ideif_prnt_devtable_hdr equ 0x15EB
|
||||
_ideif_prnt_devtable_l1 equ 0x1366
|
||||
_ideif_prnt_devtable_l1_e2 equ 0x142C
|
||||
_ideif_prnt_devtable_l1_es equ 0x13AB
|
||||
_ideif_prnt_devtable_l1_ms equ 0x1429
|
||||
_ideif_prnt_devtable_l1_nxt equ 0x1373
|
||||
_ideif_prnt_devtable_l1_s00 equ 0x1399
|
||||
_ideif_prnt_devtable_l1_s01 equ 0x139E
|
||||
_ideif_prnt_devtable_l1_s02 equ 0x13A3
|
||||
_ideif_prnt_devtable_l1_sFF equ 0x13A8
|
||||
_ideif_prnt_devtable_l1_sel equ 0x1371
|
||||
_ideif_prnt_devtable_master equ 0x164F
|
||||
_ideif_prnt_devtable_s00 equ 0x1623
|
||||
_ideif_prnt_devtable_s01 equ 0x162E
|
||||
_ideif_prnt_devtable_s02 equ 0x1639
|
||||
_ideif_prnt_devtable_sFF equ 0x1644
|
||||
_ideif_prnt_devtable_slave equ 0x1657
|
||||
_read_bcd_invalid equ 0x14E
|
||||
_shift4 equ 0x1DCC
|
||||
beep equ 0xDA9
|
||||
beep_loop equ 0xDAB
|
||||
beep_pause equ 0xDC1
|
||||
compare_filename equ 0x230F
|
||||
dasm_00 equ 0x9AE
|
||||
dasm_01 equ 0xC9A
|
||||
dasm_02 equ 0xA34
|
||||
dasm_03 equ 0xC6C
|
||||
dasm_08 equ 0xAB1
|
||||
dasm_09 equ 0xC3F
|
||||
dasm_0A equ 0xA16
|
||||
dasm_0B equ 0xC83
|
||||
dasm_10 equ 0x9F6
|
||||
dasm_12 equ 0xA3F
|
||||
dasm_18 equ 0x9B9
|
||||
dasm_1A equ 0xA20
|
||||
dasm_20 equ 0x9D3
|
||||
dasm_22 equ 0xCE0
|
||||
dasm_27 equ 0xA79
|
||||
dasm_28 equ 0x9CC
|
||||
dasm_2A equ 0xCB1
|
||||
dasm_2F equ 0xA7D
|
||||
dasm_30 equ 0x9C4
|
||||
dasm_32 equ 0xA4A
|
||||
dasm_37 equ 0xA89
|
||||
dasm_38 equ 0x9BD
|
||||
dasm_3A equ 0xA2A
|
||||
dasm_3F equ 0xA85
|
||||
dasm_76 equ 0xA8D
|
||||
dasm_80C6 equ 0xB0A
|
||||
dasm_BE equ 0xAA7
|
||||
dasm_C3 equ 0x9B2
|
||||
dasm_C88E equ 0xB30
|
||||
dasm_C9 equ 0xA02
|
||||
dasm_CD equ 0x9FC
|
||||
dasm_D9 equ 0xABE
|
||||
dasm_DD equ 0x9E4
|
||||
dasm_DD_01 equ 0xCA1
|
||||
dasm_DD_09 equ 0xC5A
|
||||
dasm_DD_22 equ 0xCF6
|
||||
dasm_DD_23 equ 0xC71
|
||||
dasm_DD_2A equ 0xCC8
|
||||
dasm_DD_2B equ 0xC88
|
||||
dasm_DD_34 equ 0xC0A
|
||||
dasm_DD_35 equ 0xC27
|
||||
dasm_DD_86 equ 0xB12
|
||||
dasm_DD_8E equ 0xB38
|
||||
dasm_DD_96 equ 0xB5B
|
||||
dasm_DD_9E equ 0xB7B
|
||||
dasm_DD_A6 equ 0xB9C
|
||||
dasm_DD_AE equ 0xBD3
|
||||
dasm_DD_B6 equ 0xBB8
|
||||
dasm_DD_BE equ 0xBEF
|
||||
dasm_DD_E1 equ 0xD48
|
||||
dasm_DD_E3 equ 0xACE
|
||||
dasm_DD_E5 equ 0xD32
|
||||
dasm_DD_F9 equ 0xD18
|
||||
dasm_E1 equ 0xD42
|
||||
dasm_E3 equ 0xAC2
|
||||
dasm_E5 equ 0xD2C
|
||||
dasm_E9 equ 0x9DB
|
||||
dasm_ED_42 equ 0xC51
|
||||
dasm_ED_43 equ 0xCEC
|
||||
dasm_ED_44 equ 0xA81
|
||||
dasm_ED_45 equ 0xA0C
|
||||
dasm_ED_46 equ 0xA98
|
||||
dasm_ED_4A equ 0xC48
|
||||
dasm_ED_4B equ 0xCBD
|
||||
dasm_ED_4D equ 0xA07
|
||||
dasm_ED_56 equ 0xA9D
|
||||
dasm_ED_5E equ 0xAA2
|
||||
dasm_ED_A0 equ 0xAE6
|
||||
dasm_ED_A1 equ 0xAF8
|
||||
dasm_ED_A8 equ 0xAEF
|
||||
dasm_ED_A9 equ 0xB01
|
||||
dasm_ED_B0 equ 0xAEA
|
||||
dasm_ED_B1 equ 0xAFC
|
||||
dasm_ED_B8 equ 0xAF3
|
||||
dasm_ED_B9 equ 0xB05
|
||||
dasm_F3 equ 0xA92
|
||||
dasm_F9 equ 0xD0E
|
||||
dasm_FB equ 0xA95
|
||||
dasm_FD equ 0x9ED
|
||||
dasm_FD_01 equ 0xCA9
|
||||
dasm_FD_09 equ 0xC63
|
||||
dasm_FD_22 equ 0xD02
|
||||
dasm_FD_23 equ 0xC7A
|
||||
dasm_FD_2A equ 0xCD4
|
||||
dasm_FD_2B equ 0xC91
|
||||
dasm_FD_34 equ 0xC16
|
||||
dasm_FD_35 equ 0xC33
|
||||
dasm_FD_86 equ 0xB21
|
||||
dasm_FD_8E equ 0xB47
|
||||
dasm_FD_96 equ 0xB67
|
||||
dasm_FD_9E equ 0xB89
|
||||
dasm_FD_A6 equ 0xBA8
|
||||
dasm_FD_AE equ 0xBDF
|
||||
dasm_FD_B6 equ 0xBC3
|
||||
dasm_FD_BE equ 0xBFA
|
||||
dasm_FD_E1 equ 0xD50
|
||||
dasm_FD_E3 equ 0xADA
|
||||
dasm_FD_E5 equ 0xD3A
|
||||
dasm_FD_F9 equ 0xD22
|
||||
dasm_FF equ 0xA11
|
||||
dasm_UU equ 0xD58
|
||||
dasm_UW equ 0xD5C
|
||||
dasm__AND equ 0xB97
|
||||
dasm__CP equ 0xBEB
|
||||
dasm__DEC equ 0xC22
|
||||
dasm__ED_47 equ 0xA69
|
||||
dasm__ED_4F equ 0xA71
|
||||
dasm__ED_57 equ 0xA59
|
||||
dasm__ED_5F equ 0xA61
|
||||
dasm__INC equ 0xC05
|
||||
dasm__LD equ 0xA55
|
||||
dasm__OR equ 0xBB4
|
||||
dasm__SBC equ 0xB73
|
||||
dasm__SUB equ 0xB56
|
||||
dasm__XOR equ 0xBCE
|
||||
dasm_opcode_table equ 0x556
|
||||
dasm_print16hex_addr equ 0x383
|
||||
dasm_print8hex equ 0x39B
|
||||
dasm_printFlags_table equ 0xD61
|
||||
dasm_printRegister8_table equ 0xD71
|
||||
dasm_printRegister8_table_HL equ 0xD91
|
||||
dasm_printRegisterIX_table equ 0xD79
|
||||
dasm_printRegisterIY_table equ 0xD81
|
||||
dasm_printRegisterSP_table equ 0xD89
|
||||
disassemble equ 0x247
|
||||
disassemble_continue equ 0x32D
|
||||
disassemble_err equ 0x31D
|
||||
disassemble_next equ 0x24B
|
||||
disassemble_print_opcode_params_end equ 0x31A
|
||||
disassemble_print_opcode_params_loop equ 0x2C6
|
||||
disassemble_print_opcode_raw equ 0x288
|
||||
disassemble_print_opcode_raw_fill equ 0x29C
|
||||
disassemble_table_first_match equ 0x35F
|
||||
disassemble_table_found equ 0x379
|
||||
disassemble_table_notfound equ 0x37D
|
||||
disassemble_table_seek equ 0x33B
|
||||
disassemble_table_seek_loop equ 0x33F
|
||||
dump_pretty equ 0x17E1
|
||||
dump_pretty_ascii equ 0x180B
|
||||
dump_pretty_ascii_cont equ 0x1829
|
||||
dump_pretty_ascii_loop equ 0x1813
|
||||
dump_pretty_ascii_none equ 0x1824
|
||||
dump_pretty_col equ 0x17FE
|
||||
dump_pretty_end equ 0x183B
|
||||
dump_pretty_nextrow equ 0x182F
|
||||
dump_pretty_row equ 0x17E9
|
||||
endPrint equ 0x19F
|
||||
fat_cd_single equ 0x2460
|
||||
fat_copy_lba_pointer equ 0x2306
|
||||
fat_exec equ 0x257B
|
||||
fat_get_root_table equ 0x203E
|
||||
fat_getfatsec equ 0x2133
|
||||
fat_openfile equ 0x21E4
|
||||
fat_openfile_noprepare equ 0x21EC
|
||||
fat_print_directory equ 0x234B
|
||||
fat_readfilesec equ 0x21B9
|
||||
fat_reset_pointer equ 0x22F7
|
||||
format_filename_fat16 equ 0x2325
|
||||
ide_printerror equ 0xE89
|
||||
ide_readsector_256 equ 0xE15
|
||||
ide_readsector_256_waitloop equ 0xE17
|
||||
ide_readsector_512_inv equ 0xE3E
|
||||
ide_readsector_512_inv_waitloop equ 0xE43
|
||||
ide_readsector_timeout equ 0xE73
|
||||
ide_regread_8 equ 0xDF7
|
||||
ide_regwrite_8 equ 0xDDB
|
||||
ide_reset equ 0xDCE
|
||||
ide_writesector_256 equ 0xE88
|
||||
ideif_drv_sel equ 0x1573
|
||||
ideif_get_drv_pointer equ 0x151C
|
||||
ideif_init_all equ 0x1530
|
||||
ideif_init_devtable equ 0x133A
|
||||
ideif_init_drive equ 0x144D
|
||||
ideif_prnt_devtable equ 0x1358
|
||||
iic_init equ 0x16F5
|
||||
iic_read_ack equ 0x1734
|
||||
iic_receive_buffer equ 0x16C6
|
||||
iic_receive_buffer_done equ 0x16E9
|
||||
iic_receive_buffer_err equ 0x16EF
|
||||
iic_receive_buffer_loop equ 0x16D7
|
||||
iic_receive_byte equ 0x17BA
|
||||
iic_receive_byte_loop equ 0x17C7
|
||||
iic_send_ack equ 0x175A
|
||||
iic_send_buffer equ 0x169C
|
||||
iic_send_buffer_done equ 0x16BA
|
||||
iic_send_buffer_err equ 0x16C0
|
||||
iic_send_buffer_loop equ 0x16AC
|
||||
iic_send_byte equ 0x1794
|
||||
iic_send_byte_loop equ 0x17A0
|
||||
iic_send_ebit equ 0x1713
|
||||
iic_send_nack equ 0x1777
|
||||
iic_send_sbit equ 0x16FE
|
||||
_COMMAND_PROCESS_FOUND equ 0x19F4
|
||||
_OP_CALL equ 0x1A76
|
||||
_OP_IIC_ACK_ERR equ 0x1B84
|
||||
_OP_IIC_ACK_ERR_str equ 0x1B8B
|
||||
_OP_IIC_IN_LOOP equ 0x1BD1
|
||||
_OP_IIC_IN_LOOP_TEXT equ 0x1BDE
|
||||
_OP_IIC_OUT_LOOP equ 0x1B55
|
||||
_OP_IIC_OUT_SEND equ 0x1B71
|
||||
_OP_RTIME_NN equ 0x1BF2
|
||||
_OP_RTIME_RD_CMD equ 0x1CAA
|
||||
_OP_SELDSK_INVALID equ 0x1E13
|
||||
_OP_SELDSK_INVALID_STR equ 0x1E2B
|
||||
_OP_SET_LOOP equ 0x1ABF
|
||||
_OP_STIME_INVALID equ 0x1D4D
|
||||
_OP_STIME_PROMPT equ 0x1D64
|
||||
_OP_STIME_PROMPT_ERR equ 0x1D7C
|
||||
_OP_STIME_STR_DAY equ 0x1CAB
|
||||
_OP_STIME_STR_HOUR equ 0x1CFC
|
||||
_OP_STIME_STR_MIN equ 0x1D17
|
||||
_OP_STIME_STR_MON equ 0x1CC6
|
||||
_OP_STIME_STR_SEC equ 0x1D32
|
||||
_OP_STIME_STR_YEAR equ 0x1CE1
|
||||
_POST_CHECK_APU_FAILED equ 0x1E9C
|
||||
_POST_CHECK_IDE_FAILED equ 0x1ECE
|
||||
_POST_CHECK_PIO_FAILED equ 0x1E71
|
||||
_POST_TEST_RTC_INVALID equ 0x1F0F
|
||||
_POST_TEST_RTC_NOTFOUND equ 0x1F08
|
||||
_STR_NOT_FOUND equ 0x1A17
|
||||
_STR_NOT_IMPLEMENTED equ 0x1A03
|
||||
_STR_SYNTAX equ 0x1A2B
|
||||
_beep_pause_l1 equ 0xE01
|
||||
_compare_filename_loop equ 0x234A
|
||||
_compare_filename_nomatch equ 0x2358
|
||||
_fat_cd_navigate equ 0x24FF
|
||||
_fat_cd_navigate_end equ 0x2545
|
||||
_fat_cd_navigate_errfile equ 0x256D
|
||||
_fat_cd_navigate_errfile_str equ 0x259F
|
||||
_fat_cd_navigate_error equ 0x2557
|
||||
_fat_cd_navigate_error_str equ 0x2575
|
||||
_fat_cd_navigate_findsec equ 0x2504
|
||||
_fat_cd_navigate_findsec_skipslash equ 0x2530
|
||||
_fat_cd_navigate_goback_fl equ 0x24BB
|
||||
_fat_cd_navigate_inerror equ 0x2565
|
||||
_fat_cd_navigate_inerrorS equ 0x255F
|
||||
_fat_cd_navigate_inerrore equ 0x2566
|
||||
_fat_cd_navigate_inputerr_str equ 0x258C
|
||||
_fat_cd_navigate_l2 equ 0x2536
|
||||
_fat_exec_notexec equ 0x2665
|
||||
_fat_exec_notfound equ 0x264C
|
||||
_fat_exec_read_done equ 0x2634
|
||||
_fat_exec_readloop1 equ 0x2616
|
||||
_fat_get_root_table_invalid equ 0x213A
|
||||
_fat_getfatsec_notroot equ 0x2179
|
||||
_fat_increment_32 equ 0x22D0
|
||||
_fat_lfs_loop equ 0x2246
|
||||
_fat_lfs_loop_compare_end equ 0x2282
|
||||
_fat_lfs_loop_compare_match equ 0x2286
|
||||
_fat_lfs_loop_compare_next_sector equ 0x2258
|
||||
_fat_math_add32 equ 0x22E4
|
||||
_fat_math_mul32 equ 0x2315
|
||||
_fat_math_mul32_l equ 0x231C
|
||||
_fat_math_mul32_noadd equ 0x2329
|
||||
_fat_math_sector_add_16 equ 0x22BC
|
||||
_fat_print_directory_dir equ 0x243A
|
||||
_fat_print_directory_loop equ 0x23CD
|
||||
_fat_print_directory_loop_break equ 0x2499
|
||||
_fat_print_directory_loop_file equ 0x23E9
|
||||
_fat_print_directory_loop_next equ 0x2465
|
||||
_fat_print_directory_loop_next_sector equ 0x2470
|
||||
_format_filename_fat16_clean equ 0x2361
|
||||
_format_filename_fat16_loop equ 0x2368
|
||||
_format_filename_fat16_loop_copy equ 0x237B
|
||||
_format_filename_fat16_loop_skip_8 equ 0x2372
|
||||
_ide_readsector_512_floop equ 0xE5D
|
||||
_ideif_drv_sel_fail equ 0x15D2
|
||||
_ideif_drv_sel_fstr0 equ 0x168F
|
||||
_ideif_drv_sel_pstr equ 0x1686
|
||||
_ideif_drv_sel_sstr0 equ 0x169D
|
||||
_ideif_drv_sel_syn equ 0x16AA
|
||||
_ideif_init_drive_charloop equ 0x1499
|
||||
_ideif_init_drive_found equ 0x147B
|
||||
_ideif_init_drive_loop equ 0x1463
|
||||
_ideif_init_drive_nodrv equ 0x1476
|
||||
_ideif_init_drive_prt_fnd equ 0x14F7
|
||||
_ideif_init_drive_prt_l1 equ 0x14E5
|
||||
_ideif_init_drive_prt_ln equ 0x14EF
|
||||
_ideif_prnt_devtable_hdr equ 0x1612
|
||||
_ideif_prnt_devtable_l1 equ 0x1373
|
||||
_ideif_prnt_devtable_l1_e2 equ 0x1439
|
||||
_ideif_prnt_devtable_l1_es equ 0x13B8
|
||||
_ideif_prnt_devtable_l1_ms equ 0x1436
|
||||
_ideif_prnt_devtable_l1_nxt equ 0x1380
|
||||
_ideif_prnt_devtable_l1_s00 equ 0x13A6
|
||||
_ideif_prnt_devtable_l1_s01 equ 0x13AB
|
||||
_ideif_prnt_devtable_l1_s02 equ 0x13B0
|
||||
_ideif_prnt_devtable_l1_sFF equ 0x13B5
|
||||
_ideif_prnt_devtable_l1_sel equ 0x137E
|
||||
_ideif_prnt_devtable_master equ 0x1676
|
||||
_ideif_prnt_devtable_s00 equ 0x164A
|
||||
_ideif_prnt_devtable_s01 equ 0x1655
|
||||
_ideif_prnt_devtable_s02 equ 0x1660
|
||||
_ideif_prnt_devtable_sFF equ 0x166B
|
||||
_ideif_prnt_devtable_slave equ 0x167E
|
||||
_read_bcd_invalid equ 0x18D
|
||||
_shift4 equ 0x1DFB
|
||||
beep equ 0xDE8
|
||||
beep_loop equ 0xDEA
|
||||
beep_pause equ 0xE00
|
||||
compare_filename equ 0x2346
|
||||
dasm_00 equ 0x9ED
|
||||
dasm_01 equ 0xCD9
|
||||
dasm_02 equ 0xA73
|
||||
dasm_03 equ 0xCAB
|
||||
dasm_08 equ 0xAF0
|
||||
dasm_09 equ 0xC7E
|
||||
dasm_0A equ 0xA55
|
||||
dasm_0B equ 0xCC2
|
||||
dasm_10 equ 0xA35
|
||||
dasm_12 equ 0xA7E
|
||||
dasm_18 equ 0x9F8
|
||||
dasm_1A equ 0xA5F
|
||||
dasm_20 equ 0xA12
|
||||
dasm_22 equ 0xD1F
|
||||
dasm_27 equ 0xAB8
|
||||
dasm_28 equ 0xA0B
|
||||
dasm_2A equ 0xCF0
|
||||
dasm_2F equ 0xABC
|
||||
dasm_30 equ 0xA03
|
||||
dasm_32 equ 0xA89
|
||||
dasm_37 equ 0xAC8
|
||||
dasm_38 equ 0x9FC
|
||||
dasm_3A equ 0xA69
|
||||
dasm_3F equ 0xAC4
|
||||
dasm_76 equ 0xACC
|
||||
dasm_80C6 equ 0xB49
|
||||
dasm_BE equ 0xAE6
|
||||
dasm_C3 equ 0x9F1
|
||||
dasm_C88E equ 0xB6F
|
||||
dasm_C9 equ 0xA41
|
||||
dasm_CD equ 0xA3B
|
||||
dasm_D9 equ 0xAFD
|
||||
dasm_DD equ 0xA23
|
||||
dasm_DD_01 equ 0xCE0
|
||||
dasm_DD_09 equ 0xC99
|
||||
dasm_DD_22 equ 0xD35
|
||||
dasm_DD_23 equ 0xCB0
|
||||
dasm_DD_2A equ 0xD07
|
||||
dasm_DD_2B equ 0xCC7
|
||||
dasm_DD_34 equ 0xC49
|
||||
dasm_DD_35 equ 0xC66
|
||||
dasm_DD_86 equ 0xB51
|
||||
dasm_DD_8E equ 0xB77
|
||||
dasm_DD_96 equ 0xB9A
|
||||
dasm_DD_9E equ 0xBBA
|
||||
dasm_DD_A6 equ 0xBDB
|
||||
dasm_DD_AE equ 0xC12
|
||||
dasm_DD_B6 equ 0xBF7
|
||||
dasm_DD_BE equ 0xC2E
|
||||
dasm_DD_E1 equ 0xD87
|
||||
dasm_DD_E3 equ 0xB0D
|
||||
dasm_DD_E5 equ 0xD71
|
||||
dasm_DD_F9 equ 0xD57
|
||||
dasm_E1 equ 0xD81
|
||||
dasm_E3 equ 0xB01
|
||||
dasm_E5 equ 0xD6B
|
||||
dasm_E9 equ 0xA1A
|
||||
dasm_ED_42 equ 0xC90
|
||||
dasm_ED_43 equ 0xD2B
|
||||
dasm_ED_44 equ 0xAC0
|
||||
dasm_ED_45 equ 0xA4B
|
||||
dasm_ED_46 equ 0xAD7
|
||||
dasm_ED_4A equ 0xC87
|
||||
dasm_ED_4B equ 0xCFC
|
||||
dasm_ED_4D equ 0xA46
|
||||
dasm_ED_56 equ 0xADC
|
||||
dasm_ED_5E equ 0xAE1
|
||||
dasm_ED_A0 equ 0xB25
|
||||
dasm_ED_A1 equ 0xB37
|
||||
dasm_ED_A8 equ 0xB2E
|
||||
dasm_ED_A9 equ 0xB40
|
||||
dasm_ED_B0 equ 0xB29
|
||||
dasm_ED_B1 equ 0xB3B
|
||||
dasm_ED_B8 equ 0xB32
|
||||
dasm_ED_B9 equ 0xB44
|
||||
dasm_F3 equ 0xAD1
|
||||
dasm_F9 equ 0xD4D
|
||||
dasm_FB equ 0xAD4
|
||||
dasm_FD equ 0xA2C
|
||||
dasm_FD_01 equ 0xCE8
|
||||
dasm_FD_09 equ 0xCA2
|
||||
dasm_FD_22 equ 0xD41
|
||||
dasm_FD_23 equ 0xCB9
|
||||
dasm_FD_2A equ 0xD13
|
||||
dasm_FD_2B equ 0xCD0
|
||||
dasm_FD_34 equ 0xC55
|
||||
dasm_FD_35 equ 0xC72
|
||||
dasm_FD_86 equ 0xB60
|
||||
dasm_FD_8E equ 0xB86
|
||||
dasm_FD_96 equ 0xBA6
|
||||
dasm_FD_9E equ 0xBC8
|
||||
dasm_FD_A6 equ 0xBE7
|
||||
dasm_FD_AE equ 0xC1E
|
||||
dasm_FD_B6 equ 0xC02
|
||||
dasm_FD_BE equ 0xC39
|
||||
dasm_FD_E1 equ 0xD8F
|
||||
dasm_FD_E3 equ 0xB19
|
||||
dasm_FD_E5 equ 0xD79
|
||||
dasm_FD_F9 equ 0xD61
|
||||
dasm_FF equ 0xA50
|
||||
dasm_UU equ 0xD97
|
||||
dasm_UW equ 0xD9B
|
||||
dasm__AND equ 0xBD6
|
||||
dasm__CP equ 0xC2A
|
||||
dasm__DEC equ 0xC61
|
||||
dasm__ED_47 equ 0xAA8
|
||||
dasm__ED_4F equ 0xAB0
|
||||
dasm__ED_57 equ 0xA98
|
||||
dasm__ED_5F equ 0xAA0
|
||||
dasm__INC equ 0xC44
|
||||
dasm__LD equ 0xA94
|
||||
dasm__OR equ 0xBF3
|
||||
dasm__SBC equ 0xBB2
|
||||
dasm__SUB equ 0xB95
|
||||
dasm__XOR equ 0xC0D
|
||||
dasm_opcode_table equ 0x595
|
||||
dasm_print16hex_addr equ 0x3C2
|
||||
dasm_print8hex equ 0x3DA
|
||||
dasm_printFlags_table equ 0xDA0
|
||||
dasm_printRegister8_table equ 0xDB0
|
||||
dasm_printRegister8_table_HL equ 0xDD0
|
||||
dasm_printRegisterIX_table equ 0xDB8
|
||||
dasm_printRegisterIY_table equ 0xDC0
|
||||
dasm_printRegisterSP_table equ 0xDC8
|
||||
disassemble equ 0x286
|
||||
disassemble_continue equ 0x36C
|
||||
disassemble_err equ 0x35C
|
||||
disassemble_next equ 0x28A
|
||||
disassemble_print_opcode_params_end equ 0x359
|
||||
disassemble_print_opcode_params_loop equ 0x305
|
||||
disassemble_print_opcode_raw equ 0x2C7
|
||||
disassemble_print_opcode_raw_fill equ 0x2DB
|
||||
disassemble_table_first_match equ 0x39E
|
||||
disassemble_table_found equ 0x3B8
|
||||
disassemble_table_notfound equ 0x3BC
|
||||
disassemble_table_seek equ 0x37A
|
||||
disassemble_table_seek_loop equ 0x37E
|
||||
dump_pretty equ 0x1810
|
||||
dump_pretty_ascii equ 0x183A
|
||||
dump_pretty_ascii_cont equ 0x1858
|
||||
dump_pretty_ascii_loop equ 0x1842
|
||||
dump_pretty_ascii_none equ 0x1853
|
||||
dump_pretty_col equ 0x182D
|
||||
dump_pretty_end equ 0x186A
|
||||
dump_pretty_nextrow equ 0x185E
|
||||
dump_pretty_row equ 0x1818
|
||||
endPrint equ 0x1DE
|
||||
fat_cd_single equ 0x249B
|
||||
fat_copy_lba_pointer equ 0x233D
|
||||
fat_exec equ 0x25B6
|
||||
fat_get_root_table equ 0x206D
|
||||
fat_getfatsec equ 0x2162
|
||||
fat_openfile equ 0x2217
|
||||
fat_openfile_noprepare equ 0x221F
|
||||
fat_print_directory equ 0x2382
|
||||
fat_readfilesec equ 0x21EA
|
||||
fat_reset_pointer equ 0x232E
|
||||
format_filename_fat16 equ 0x235C
|
||||
ide_printerror equ 0xE94
|
||||
ide_readsector_512_fast equ 0xE49
|
||||
ide_readsector_timeout equ 0xE7E
|
||||
ide_regread_8 equ 0xE33
|
||||
ide_regwrite_8 equ 0xE19
|
||||
ide_reset equ 0xE0D
|
||||
ide_writesector_256 equ 0xE93
|
||||
ideif_drv_sel equ 0x159A
|
||||
ideif_get_drv_pointer equ 0x153A
|
||||
ideif_init_all equ 0x154E
|
||||
ideif_init_devtable equ 0x1347
|
||||
ideif_init_drive equ 0x145A
|
||||
ideif_prnt_devtable equ 0x1365
|
||||
iic_init equ 0x171C
|
||||
iic_read_ack equ 0x1763
|
||||
iic_receive_buffer equ 0x16ED
|
||||
iic_receive_buffer_done equ 0x1710
|
||||
iic_receive_buffer_err equ 0x1716
|
||||
iic_receive_buffer_loop equ 0x16FE
|
||||
iic_receive_byte equ 0x17E9
|
||||
iic_receive_byte_loop equ 0x17F6
|
||||
iic_send_ack equ 0x1789
|
||||
iic_send_buffer equ 0x16C3
|
||||
iic_send_buffer_done equ 0x16E1
|
||||
iic_send_buffer_err equ 0x16E7
|
||||
iic_send_buffer_loop equ 0x16D3
|
||||
iic_send_byte equ 0x17C3
|
||||
iic_send_byte_loop equ 0x17CF
|
||||
iic_send_ebit equ 0x1742
|
||||
iic_send_nack equ 0x17A6
|
||||
iic_send_sbit equ 0x1729
|
||||
interrupt_vectors equ 0x4000
|
||||
mon_var_template equ 0x44
|
||||
mon_var_template_end equ 0x40F
|
||||
nxtILC equ 0x194
|
||||
param_01 equ 0x3A9
|
||||
param_02 equ 0x3D0
|
||||
param_03 equ 0x3ED
|
||||
param_03_done equ 0x425
|
||||
param_03_neg equ 0x40E
|
||||
param_04 equ 0x429
|
||||
param_04_i equ 0x439
|
||||
param_05 equ 0x43F
|
||||
param_06 equ 0x44C
|
||||
param_07 equ 0x466
|
||||
param_08 equ 0x473
|
||||
param_09 equ 0x488
|
||||
param_09_0A equ 0x48E
|
||||
param_0A equ 0x47F
|
||||
param_10 equ 0x49D
|
||||
param_11 equ 0x4AD
|
||||
param_11_12 equ 0x4BC
|
||||
param_11_12_all equ 0x4DC
|
||||
param_11_12_def equ 0x4CF
|
||||
param_11_12_ix equ 0x4D4
|
||||
param_11_12_iy equ 0x4D9
|
||||
param_12 equ 0x4B5
|
||||
param_13 equ 0x4ED
|
||||
param_80 equ 0x50C
|
||||
param_80_seek equ 0x513
|
||||
param_81 equ 0x503
|
||||
param_comma equ 0x547
|
||||
param_printRegister equ 0x522
|
||||
param_printRegisterA equ 0x540
|
||||
param_printRegisterHL equ 0x538
|
||||
print_16_hex equ 0x16A
|
||||
print_32_hex equ 0x151
|
||||
print_a_hex equ 0x10E
|
||||
print_bcd equ 0x120
|
||||
print_char equ 0xDE
|
||||
print_clear equ 0xF1
|
||||
print_newLine equ 0xF8
|
||||
print_reg equ 0x1A4
|
||||
print_str equ 0xE6
|
||||
print_str_end equ 0xF0
|
||||
print_str_fixed equ 0x187B
|
||||
print_wait_out equ 0x103
|
||||
read_bcd equ 0x138
|
||||
read_char equ 0x126
|
||||
read_lba_sector equ 0x1543
|
||||
str_dev_done equ 0x15E3
|
||||
str_dev_waitready equ 0x15CB
|
||||
str_error_start equ 0xEBC
|
||||
str_error_start1 equ 0xED9
|
||||
str_error_start2 equ 0xEE2
|
||||
str_error_time equ 0xEEB
|
||||
str_post_apu equ 0x1F38
|
||||
str_post_ide_30 equ 0x1EE7
|
||||
str_post_ide_40 equ 0x1F02
|
||||
str_post_nd equ 0x1F6E
|
||||
str_post_ok equ 0x1FA6
|
||||
str_post_pio equ 0x1F1D
|
||||
str_post_rtc equ 0x1F53
|
||||
str_post_rtc_iv equ 0x1F7C
|
||||
var_apu_present equ 0x400A
|
||||
var_buffer_len equ 0x4000
|
||||
mon_var_template_end equ 0x50F
|
||||
nxtILC equ 0x1D3
|
||||
param_01 equ 0x3E8
|
||||
param_02 equ 0x40F
|
||||
param_03 equ 0x42C
|
||||
param_03_done equ 0x464
|
||||
param_03_neg equ 0x44D
|
||||
param_04 equ 0x468
|
||||
param_04_i equ 0x478
|
||||
param_05 equ 0x47E
|
||||
param_06 equ 0x48B
|
||||
param_07 equ 0x4A5
|
||||
param_08 equ 0x4B2
|
||||
param_09 equ 0x4C7
|
||||
param_09_0A equ 0x4CD
|
||||
param_0A equ 0x4BE
|
||||
param_10 equ 0x4DC
|
||||
param_11 equ 0x4EC
|
||||
param_11_12 equ 0x4FB
|
||||
param_11_12_all equ 0x51B
|
||||
param_11_12_def equ 0x50E
|
||||
param_11_12_ix equ 0x513
|
||||
param_11_12_iy equ 0x518
|
||||
param_12 equ 0x4F4
|
||||
param_13 equ 0x52C
|
||||
param_80 equ 0x54B
|
||||
param_80_seek equ 0x552
|
||||
param_81 equ 0x542
|
||||
param_comma equ 0x586
|
||||
param_printRegister equ 0x561
|
||||
param_printRegisterA equ 0x57F
|
||||
param_printRegisterHL equ 0x577
|
||||
print_16_hex equ 0x1A9
|
||||
print_32_hex equ 0x190
|
||||
print_a_hex equ 0x143
|
||||
print_bcd equ 0x155
|
||||
print_char equ 0x115
|
||||
print_clear equ 0x126
|
||||
print_newLine equ 0x12D
|
||||
print_reg equ 0x1E3
|
||||
print_str equ 0x11D
|
||||
print_str_fixed equ 0x18AA
|
||||
print_wait_out equ 0x138
|
||||
read_bcd equ 0x177
|
||||
read_char equ 0x15B
|
||||
read_in_sts equ 0x16D
|
||||
read_lba_sector equ 0x1561
|
||||
str_dev_done equ 0x160A
|
||||
str_dev_waitready equ 0x15F2
|
||||
str_error_start equ 0xEC9
|
||||
str_error_start1 equ 0xEE6
|
||||
str_error_start2 equ 0xEEF
|
||||
str_error_time equ 0xEF8
|
||||
str_post_apu equ 0x1F67
|
||||
str_post_ide_30 equ 0x1F16
|
||||
str_post_ide_40 equ 0x1F31
|
||||
str_post_nd equ 0x1F9D
|
||||
str_post_ok equ 0x1FD5
|
||||
str_post_pio equ 0x1F4C
|
||||
str_post_rtc equ 0x1F82
|
||||
str_post_rtc_iv equ 0x1FAB
|
||||
var_apu_present equ 0x410A
|
||||
var_buffer_len equ 0x4100
|
||||
var_bytes_count equ 0x411A
|
||||
var_curserchar equ 0x4006
|
||||
var_curserlastaddr equ 0x4007
|
||||
var_curseron equ 0x4005
|
||||
var_curserstate equ 0x4004
|
||||
var_curserx equ 0x4002
|
||||
var_cursery equ 0x4003
|
||||
var_dir equ 0x402B
|
||||
var_idebuffer equ 0x40CB
|
||||
var_input equ 0x407B
|
||||
var_last_char equ 0x4001
|
||||
var_curserchar equ 0x4106
|
||||
var_curserlastaddr equ 0x4107
|
||||
var_curseron equ 0x4105
|
||||
var_curserstate equ 0x4104
|
||||
var_curserx equ 0x4102
|
||||
var_cursery equ 0x4103
|
||||
var_dir equ 0x412B
|
||||
var_idebuffer equ 0x41CB
|
||||
var_input equ 0x417B
|
||||
var_last_char equ 0x4101
|
||||
var_opcode equ 0x4114
|
||||
var_opcode_length equ 0x4116
|
||||
var_opcode_pcount equ 0x4119
|
||||
@@ -557,6 +576,6 @@ var_opcode_start equ 0x4110
|
||||
var_opcode_string equ 0x4117
|
||||
var_opcode_table equ 0x4112
|
||||
var_opcode_x equ 0x4115
|
||||
var_pio_present equ 0x4009
|
||||
var_ps2mem equ 0x401B
|
||||
var_scratch equ 0x400B
|
||||
var_pio_present equ 0x4109
|
||||
var_ps2mem equ 0x411B
|
||||
var_scratch equ 0x410B
|
||||
|
||||
@@ -157,14 +157,6 @@ fat_openfile_noprepare:
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
;LD HL,MEM_IDE_BUFFER ;Dump IDE Buffer
|
||||
;LD B,32
|
||||
;call dump_pretty
|
||||
|
||||
;LD HL,MEM_FAT_TMPFNAME ;Dump IDE Buffer
|
||||
;LD B,1
|
||||
;call dump_pretty
|
||||
|
||||
LD HL, MEM_IDE_BUFFER ;set buffer start
|
||||
LD C,16 ;set entries counter
|
||||
|
||||
|
||||
@@ -1,107 +1,107 @@
|
||||
.include "extern_symbols.s" ;include monitor symbols.
|
||||
|
||||
CS_VT82C42_DATA .EQU 0xF0
|
||||
CS_VT82C42_CTRL .EQU 0xF1
|
||||
|
||||
org 0x6000
|
||||
;VT82C42
|
||||
|
||||
MEM_FAT_EXEC_CURR .equ var_scratch+10
|
||||
MEM_FAT_EXEC_COUNT .equ var_scratch+12
|
||||
MEM_FAT_EXEC_START .equ var_scratch+14
|
||||
fat_exec:
|
||||
ld de,[var_input+6] ;prepare input like to mimic rom behaviour
|
||||
push de
|
||||
;DE has pointer to arguments
|
||||
call fat_openfile
|
||||
ld a, 0xA7 ;Disable Mouse
|
||||
out (CS_VT82C42_CTRL), A
|
||||
ld a, 0xAD ;Disable Keyboard
|
||||
out (CS_VT82C42_CTRL), A
|
||||
_keyboard_init_flush_buffer:
|
||||
in a,(CS_VT82C42_DATA) ;Read buffer
|
||||
in a,(CS_VT82C42_CTRL) ;Read status byte
|
||||
bit 0,a ;Test if buffer is empty
|
||||
jr nz, _keyboard_init_flush_buffer
|
||||
;buffer is now flushed. Now set the Controller Configuration Byte
|
||||
|
||||
ld a, 0x60 ;next byte is command byte register write
|
||||
ld b, 11111100b ;Disable bits 0,1,6 (disable IRQ and Translation)
|
||||
call keyb_cmd_wr
|
||||
|
||||
;Perform Controller Self Test
|
||||
ld a, 0xAA
|
||||
call keyb_cmd_rd
|
||||
cp 0x55
|
||||
jr nz, _keyboard_init_failed
|
||||
|
||||
;Perform Interface Tests
|
||||
ld a, 0xAB
|
||||
call keyb_cmd_rd
|
||||
or a
|
||||
jp nz, _fat_exec_notfound ;if not found, abort
|
||||
;call fat_print_dbg
|
||||
;load header
|
||||
ld de, MEM_IDE_BUFFER
|
||||
call fat_readfilesec
|
||||
jr nz, _keyboard_init_failed
|
||||
|
||||
;Enable Devices
|
||||
ld a,0xAE
|
||||
out (CS_VT82C42_CTRL), A
|
||||
call keyb_wait_ibf_empty
|
||||
|
||||
;ld hl, MEM_IDE_BUFFER ;print sector
|
||||
;ld b,0x20
|
||||
;call dump_pretty
|
||||
|
||||
ld a,(MEM_IDE_BUFFER)
|
||||
cp 0xC3
|
||||
jp nz, _fat_exec_notexec
|
||||
|
||||
call PRINTINLINE
|
||||
db 10,13,"Loading ",0
|
||||
ld hl,[var_input+6]
|
||||
;Test if device is present Devices
|
||||
ld a,0xEE
|
||||
out (CS_VT82C42_DATA), A ;Send echo to keboard (0xEE command)
|
||||
call keyb_wait_ibf_empty
|
||||
call keyb_wait_obf
|
||||
in a,(CS_VT82C42_DATA)
|
||||
cp a, 0xEE
|
||||
jr z, _keyboard_init_okay ; 0xFC -> Success. Init done!
|
||||
;Else device error
|
||||
ld hl, [STR_keyboard_init_failed]
|
||||
call print_str
|
||||
call PRINTINLINE
|
||||
db " to 0x",0
|
||||
;get start address
|
||||
ld bc,(MEM_IDE_BUFFER + 10)
|
||||
ld a,b
|
||||
ret
|
||||
_keyboard_init_failed:
|
||||
LD HL, [STR_keyboard_init_err]
|
||||
CALL print_str
|
||||
RET
|
||||
_keyboard_init_dev_missing:
|
||||
LD HL, [STR_keyboard_init_missing]
|
||||
CALL print_str
|
||||
RET
|
||||
_keyboard_init_okay:
|
||||
LD HL, [STR_keyboard_init_okay]
|
||||
CALL print_str
|
||||
RET
|
||||
|
||||
; a contains command
|
||||
; b conatins data
|
||||
keyb_cmd_wr:
|
||||
out (CS_VT82C42_CTRL),a ;write command byte
|
||||
ld a, b
|
||||
out (CS_VT82C42_DATA),a
|
||||
ret
|
||||
|
||||
; a contains command
|
||||
; a returns data
|
||||
keyb_cmd_rd:
|
||||
out (CS_VT82C42_CTRL),a ;write command byte
|
||||
_keyb_cmd_rd_l1:
|
||||
in a, (CS_VT82C42_CTRL) ;read status
|
||||
call print_a_hex
|
||||
ld a,c
|
||||
call print_a_hex
|
||||
call PRINTINLINE
|
||||
db " ... ",0
|
||||
;bc has start addr
|
||||
ld (MEM_FAT_EXEC_CURR),bc
|
||||
ld (MEM_FAT_EXEC_START),bc
|
||||
|
||||
;get amount of sectors to load
|
||||
ld hl,(MEM_IDE_BUFFER + 14)
|
||||
ld l,h
|
||||
srl l
|
||||
ld h,0 ;divide by 512
|
||||
inc hl ;increment because first sector is always loaded
|
||||
; hl contains sector count
|
||||
ld (MEM_FAT_EXEC_COUNT), hl
|
||||
|
||||
pop de ; restore filename
|
||||
call fat_openfile ;reset file information
|
||||
;start reading
|
||||
_fat_exec_readloop1:
|
||||
ld de,(MEM_FAT_EXEC_CURR)
|
||||
call fat_readfilesec
|
||||
ld hl,(MEM_FAT_EXEC_CURR)
|
||||
ld de,512
|
||||
add hl,de
|
||||
ld (MEM_FAT_EXEC_CURR),hl
|
||||
|
||||
ld hl,(MEM_FAT_EXEC_COUNT)
|
||||
dec hl
|
||||
ld (MEM_FAT_EXEC_COUNT),hl
|
||||
ld a,h
|
||||
or l
|
||||
jr z, _fat_exec_read_done
|
||||
jr _fat_exec_readloop1
|
||||
_fat_exec_read_done:
|
||||
call PRINTINLINE
|
||||
db "Load complete!",10,13,0
|
||||
ld hl,(MEM_FAT_EXEC_START)
|
||||
jp (hl)
|
||||
|
||||
|
||||
_fat_exec_notfound:
|
||||
call PRINTINLINE
|
||||
db 10,13,"File not found!",10,13,0
|
||||
rra
|
||||
jr nc, _keyb_cmd_rd_l1 ;wait until OBF is set (data avail)
|
||||
in a, (CS_VT82C42_DATA)
|
||||
ret
|
||||
|
||||
_fat_exec_notexec:
|
||||
call PRINTINLINE
|
||||
db 10,13,"File is not an executable!",10,13,0
|
||||
keyb_wait_ibf_empty:
|
||||
in a, (CS_VT82C42_CTRL) ;read status
|
||||
rra
|
||||
rra
|
||||
jr c, keyb_wait_ibf_empty ;if IBF, wait
|
||||
ret
|
||||
|
||||
|
||||
|
||||
_test_loop:
|
||||
call fat_readfilesec
|
||||
push af
|
||||
ld hl, MEM_IDE_BUFFER ;print sector
|
||||
ld b,0x20
|
||||
call dump_pretty
|
||||
;call PRINTINLINE
|
||||
;db 10,13,"SECREAD",10,13,0
|
||||
pop af
|
||||
or a
|
||||
jp z, _test_loop
|
||||
|
||||
;check if end of file
|
||||
|
||||
|
||||
keyb_wait_obf:
|
||||
in a, (CS_VT82C42_CTRL) ;read status
|
||||
rra
|
||||
jr nc, keyb_wait_obf ;if IBF, wait
|
||||
ret
|
||||
|
||||
;Status message strings
|
||||
STR_keyboard_init_okay:
|
||||
.BYTE "PS/2 Keyboard initialized.",0
|
||||
STR_keyboard_init_err:
|
||||
.BYTE "PS/2 Controller error! System HALT!",0
|
||||
STR_keyboard_init_failed:
|
||||
.BYTE "PS/2 Keyboard error! System HALT!",0
|
||||
STR_keyboard_init_missing:
|
||||
.BYTE "PS/2 no keyboard found!",0
|
||||
108
OperatingSystem/software/test_old2.asm
Normal file
108
OperatingSystem/software/test_old2.asm
Normal file
@@ -0,0 +1,108 @@
|
||||
.include "extern_symbols.s" ;include monitor symbols.
|
||||
org 0x6000
|
||||
|
||||
MEM_FAT_EXEC_CURR .equ var_scratch+10
|
||||
MEM_FAT_EXEC_COUNT .equ var_scratch+12
|
||||
MEM_FAT_EXEC_START .equ var_scratch+14
|
||||
|
||||
fat_exec:
|
||||
ld de,[var_input+6] ;prepare input like to mimic rom behaviour
|
||||
push de
|
||||
;DE has pointer to arguments
|
||||
call fat_openfile
|
||||
or a
|
||||
jp nz, _fat_exec_notfound ;if not found, abort
|
||||
;call fat_print_dbg
|
||||
;load header
|
||||
ld de, MEM_IDE_BUFFER
|
||||
call fat_readfilesec
|
||||
|
||||
|
||||
;ld hl, MEM_IDE_BUFFER ;print sector
|
||||
;ld b,0x20
|
||||
;call dump_pretty
|
||||
|
||||
ld a,(MEM_IDE_BUFFER)
|
||||
cp 0xC3
|
||||
jp nz, _fat_exec_notexec
|
||||
|
||||
call PRINTINLINE
|
||||
db 10,13,"Loading ",0
|
||||
ld hl,[var_input+6]
|
||||
call print_str
|
||||
call PRINTINLINE
|
||||
db " to 0x",0
|
||||
;get start address
|
||||
ld bc,(MEM_IDE_BUFFER + 10)
|
||||
ld a,b
|
||||
call print_a_hex
|
||||
ld a,c
|
||||
call print_a_hex
|
||||
call PRINTINLINE
|
||||
db " ... ",0
|
||||
;bc has start addr
|
||||
ld (MEM_FAT_EXEC_CURR),bc
|
||||
ld (MEM_FAT_EXEC_START),bc
|
||||
|
||||
;get amount of sectors to load
|
||||
ld hl,(MEM_IDE_BUFFER + 14)
|
||||
ld l,h
|
||||
srl l
|
||||
ld h,0 ;divide by 512
|
||||
inc hl ;increment because first sector is always loaded
|
||||
; hl contains sector count
|
||||
ld (MEM_FAT_EXEC_COUNT), hl
|
||||
|
||||
pop de ; restore filename
|
||||
call fat_openfile ;reset file information
|
||||
;start reading
|
||||
_fat_exec_readloop1:
|
||||
ld de,(MEM_FAT_EXEC_CURR)
|
||||
call fat_readfilesec
|
||||
ld hl,(MEM_FAT_EXEC_CURR)
|
||||
ld de,512
|
||||
add hl,de
|
||||
ld (MEM_FAT_EXEC_CURR),hl
|
||||
|
||||
ld hl,(MEM_FAT_EXEC_COUNT)
|
||||
dec hl
|
||||
ld (MEM_FAT_EXEC_COUNT),hl
|
||||
ld a,h
|
||||
or l
|
||||
jr z, _fat_exec_read_done
|
||||
jr _fat_exec_readloop1
|
||||
_fat_exec_read_done:
|
||||
call PRINTINLINE
|
||||
db "Load complete!",10,13,0
|
||||
ld hl,(MEM_FAT_EXEC_START)
|
||||
jp (hl)
|
||||
|
||||
|
||||
_fat_exec_notfound:
|
||||
call PRINTINLINE
|
||||
db 10,13,"File not found!",10,13,0
|
||||
ret
|
||||
|
||||
_fat_exec_notexec:
|
||||
call PRINTINLINE
|
||||
db 10,13,"File is not an executable!",10,13,0
|
||||
ret
|
||||
|
||||
|
||||
|
||||
_test_loop:
|
||||
call fat_readfilesec
|
||||
push af
|
||||
ld hl, MEM_IDE_BUFFER ;print sector
|
||||
ld b,0x20
|
||||
call dump_pretty
|
||||
;call PRINTINLINE
|
||||
;db 10,13,"SECREAD",10,13,0
|
||||
pop af
|
||||
or a
|
||||
jp z, _test_loop
|
||||
|
||||
;check if end of file
|
||||
|
||||
|
||||
ret
|
||||
Binary file not shown.
@@ -1,16 +1,17 @@
|
||||
:10600000118140D5CDD321B7C29A6011B641CDA838
|
||||
:10601000213AB641FEC3C2B260CD91010A0D4C6F68
|
||||
:106020006164696E672000218140CDE600CD910159
|
||||
:1060300020746F20307800ED4BC04178CD0E01798F
|
||||
:10604000CD0E01CD9101202E2E2E2000ED431540C6
|
||||
:10605000ED4319402AC4416CCB3D26002322174052
|
||||
:10606000D1CDD321ED5B1540CDA8212A15401100DB
|
||||
:1060700002192215402A17402B2217407CB528020E
|
||||
:1060800018E2CD91014C6F616420636F6D706C6597
|
||||
:106090007465210A0D002A1940E9CD91010A0D46C7
|
||||
:1060A000696C65206E6F7420666F756E64210A0DD1
|
||||
:1060B00000C9CD91010A0D46696C65206973206E97
|
||||
:1060C0006F7420616E2065786563757461626C65BC
|
||||
:1060D000210A0D00C9CDA821F521B6410620CDE148
|
||||
:0760E00017F1B7CAD560C932
|
||||
:106000003EA7D3F13EADD3F1DBF0DBF1CB4720F877
|
||||
:106010003E6006FCCD5B603EAACD6160FE55202649
|
||||
:106020003EABCD6160B7201E3EAED3F1CD6E603E7B
|
||||
:10603000EED3F0CD6E60CD7560DBF0FEEE2815215D
|
||||
:10604000BA60CDE600C9219660CDE600C921DC60CA
|
||||
:10605000CDE600C9217B60CDE600C9D3F178D3F04D
|
||||
:10606000C9D3F1DBF1CD0E011F30F8DBF0C9DBF154
|
||||
:106070001F1F38FAC9DBF11F30FBC950532F3220E4
|
||||
:106080004B6579626F61726420696E697469616CD5
|
||||
:10609000697A65642E0050532F3220436F6E7472FC
|
||||
:1060A0006F6C6C6572206572726F72212053797308
|
||||
:1060B00074656D2048414C54210050532F32204BC1
|
||||
:1060C0006579626F617264206572726F722120530C
|
||||
:1060D000797374656D2048414C54210050532F3220
|
||||
:1060E000206E6F206B6579626F61726420666F75D8
|
||||
:0460F0006E642100B9
|
||||
:00000001FF
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,16 @@
|
||||
!6000 11 81 40 D5 CD D3 21 B7 C2 9A 60 11 B6 41 CD A8
|
||||
!6010 21 3A B6 41 FE C3 C2 B2 60 CD 91 01 0A 0D 4C 6F
|
||||
!6020 61 64 69 6E 67 20 00 21 81 40 CD E6 00 CD 91 01
|
||||
!6030 20 74 6F 20 30 78 00 ED 4B C0 41 78 CD 0E 01 79
|
||||
!6040 CD 0E 01 CD 91 01 20 2E 2E 2E 20 00 ED 43 15 40
|
||||
!6050 ED 43 19 40 2A C4 41 6C CB 3D 26 00 23 22 17 40
|
||||
!6060 D1 CD D3 21 ED 5B 15 40 CD A8 21 2A 15 40 11 00
|
||||
!6070 02 19 22 15 40 2A 17 40 2B 22 17 40 7C B5 28 02
|
||||
!6080 18 E2 CD 91 01 4C 6F 61 64 20 63 6F 6D 70 6C 65
|
||||
!6090 74 65 21 0A 0D 00 2A 19 40 E9 CD 91 01 0A 0D 46
|
||||
!60A0 69 6C 65 20 6E 6F 74 20 66 6F 75 6E 64 21 0A 0D
|
||||
!60B0 00 C9 CD 91 01 0A 0D 46 69 6C 65 20 69 73 20 6E
|
||||
!60C0 6F 74 20 61 6E 20 65 78 65 63 75 74 61 62 6C 65
|
||||
!60D0 21 0A 0D 00 C9 CD A8 21 F5 21 B6 41 06 20 CD E1
|
||||
!60E0 17 F1 B7 CA D5 60 C9
|
||||
!6000 3E A7 D3 F1 3E AD D3 F1 DB F0 DB F1 CB 47 20 F8
|
||||
!6010 3E 60 06 FC CD 5B 60 3E AA CD 61 60 FE 55 20 26
|
||||
!6020 3E AB CD 61 60 B7 20 1E 3E AE D3 F1 CD 6E 60 3E
|
||||
!6030 EE D3 F0 CD 6E 60 CD 75 60 DB F0 FE EE 28 15 21
|
||||
!6040 BA 60 CD E6 00 C9 21 96 60 CD E6 00 C9 21 DC 60
|
||||
!6050 CD E6 00 C9 21 7B 60 CD E6 00 C9 D3 F1 78 D3 F0
|
||||
!6060 C9 D3 F1 DB F1 CD 0E 01 1F 30 F8 DB F0 C9 DB F1
|
||||
!6070 1F 1F 38 FA C9 DB F1 1F 30 FB C9 50 53 2F 32 20
|
||||
!6080 4B 65 79 62 6F 61 72 64 20 69 6E 69 74 69 61 6C
|
||||
!6090 69 7A 65 64 2E 00 50 53 2F 32 20 43 6F 6E 74 72
|
||||
!60A0 6F 6C 6C 65 72 20 65 72 72 6F 72 21 20 53 79 73
|
||||
!60B0 74 65 6D 20 48 41 4C 54 21 00 50 53 2F 32 20 4B
|
||||
!60C0 65 79 62 6F 61 72 64 20 65 72 72 6F 72 21 20 53
|
||||
!60D0 79 73 74 65 6D 20 48 41 4C 54 21 00 50 53 2F 32
|
||||
!60E0 20 6E 6F 20 6B 65 79 62 6F 61 72 64 20 66 6F 75
|
||||
!60F0 6E 64 21 00
|
||||
|
||||
18
OperatingSystem/software2/include/bcd.s
Normal file
18
OperatingSystem/software2/include/bcd.s
Normal file
@@ -0,0 +1,18 @@
|
||||
; prints A as BCD
|
||||
|
||||
print_bcd_byte_3:
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
PUSH IX
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
print_bcd_done:
|
||||
POP IX
|
||||
POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
602
OperatingSystem/software2/include/fat16.s
Normal file
602
OperatingSystem/software2/include/fat16.s
Normal file
@@ -0,0 +1,602 @@
|
||||
; VARS
|
||||
|
||||
phase MEM_IDE_FSBUFFER
|
||||
MEM_FAT_RESERVED: ; Reserved sectors (2byte)
|
||||
defs 2
|
||||
MEM_FAT_AMOUNT: ; Amount of FATs (1byte)
|
||||
defs 1
|
||||
MEM_FAT_SECTORS: ; Length of FAT (2byte)
|
||||
defs 2
|
||||
MEM_FAT_CLUSTERLEN: ; Length of Cluster (1byte)
|
||||
defs 1
|
||||
MEM_FAT_COUNT1: ; Counter Var for reading FAT (2byte)
|
||||
defs 1
|
||||
MEM_FAT_TMPPOINTER: ; Temporary working pointer
|
||||
defs 4
|
||||
MEM_FAT_DATASTART: ; Start of data area
|
||||
defs 4
|
||||
MEM_FAT_ROOTSTART: ; Start of Root directory
|
||||
defs 4
|
||||
MEM_FAT_FILEREMAIN: ; Remaining sectors in file
|
||||
defs 4
|
||||
MEM_FAT_DIRSEC: ; Sectors per directory
|
||||
defs 2
|
||||
MEM_FAT_TMPFNAME: ; Temporary filename
|
||||
defs 16
|
||||
MEM_FAT_CURDIR: ; Current Directory
|
||||
defs 80
|
||||
MEM_FAT_OF0_ATTRIBUTE: ;Current file attribute
|
||||
defw 0
|
||||
MEM_FAT_OF0_CCLUST: ;Current cluster of file
|
||||
defw 0
|
||||
MEM_FAT_OF0_FATSEC: ;Current sector in FAT
|
||||
defs 4
|
||||
MEM_FAT_OF0_DATSEC: ;Current sector in Data
|
||||
defs 4
|
||||
MEM_FAT_OF0_DATREM: ;Remaining bytes in Data
|
||||
defs 4
|
||||
MEM_FAT_CURRDIR: ;Current directory
|
||||
defs 4
|
||||
|
||||
dephase
|
||||
|
||||
;-------------------------------------
|
||||
; Get FAT Root-Table position
|
||||
;-------------------------------------
|
||||
fat_get_root_table:
|
||||
call fat_reset_pointer ;reset fat pointer
|
||||
|
||||
; Load first sector on active partition
|
||||
LD HL, MEM_IDE_POINTER ; pointer to LBA address
|
||||
LD A,1 ;read 1 sector
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
; check for valid Boot sector
|
||||
ld a,(MEM_IDE_BUFFER)
|
||||
cp 0xEB ;first byte should be 0xEB
|
||||
jp nz, _fat_get_root_table_invalid
|
||||
|
||||
; Read and store FS Properties
|
||||
LD IX,MEM_IDE_BUFFER
|
||||
LD A,(IX+0x0D)
|
||||
LD (MEM_FAT_CLUSTERLEN),A
|
||||
LD A,(IX+0x0E)
|
||||
LD (MEM_FAT_RESERVED),A
|
||||
LD A,(IX+0x0F)
|
||||
LD (MEM_FAT_RESERVED+1),A
|
||||
LD A,(IX+0x10)
|
||||
LD (MEM_FAT_AMOUNT),A
|
||||
LD A,(IX+0x16)
|
||||
LD (MEM_FAT_SECTORS),A
|
||||
LD A,(IX+0x17)
|
||||
LD (MEM_FAT_SECTORS+1),A
|
||||
|
||||
;Get Data Start Sector
|
||||
;calculate fat length
|
||||
ld bc,(MEM_FAT_SECTORS)
|
||||
ld a,(MEM_FAT_AMOUNT) ;add fat to cluster number
|
||||
ld d,0
|
||||
ld e,a
|
||||
call _fat_math_mul32
|
||||
; BCHL contains result -> store to PTR.MEM_FAT_ROOTSTART
|
||||
ld (MEM_FAT_ROOTSTART+0),hl
|
||||
ld (MEM_FAT_ROOTSTART+2),bc
|
||||
|
||||
;add offset (reserved sectors)
|
||||
ld hl,(MEM_IDE_BUFFER +0x0E) ; load sectors into hl
|
||||
ld (MEM_FAT_TMPPOINTER), hl
|
||||
xor a
|
||||
ld (MEM_FAT_TMPPOINTER+2),a
|
||||
ld (MEM_FAT_TMPPOINTER+3),a
|
||||
|
||||
ld bc,[MEM_FAT_ROOTSTART]
|
||||
ld de,[MEM_FAT_TMPPOINTER]
|
||||
call _fat_math_add32 ;MEM_FAT_ROOTSTART now contains the first sector
|
||||
;of the Root directory
|
||||
|
||||
;add offset (partition location)
|
||||
call ideif_get_drv_pointer
|
||||
inc ix
|
||||
inc ix
|
||||
push ix
|
||||
pop de ;copy poiter to hl
|
||||
ld bc,[MEM_FAT_ROOTSTART]
|
||||
call _fat_math_add32 ;MEM_FAT_OF0_DATSEC now contains the first sector
|
||||
;of the cluster
|
||||
;copy value from MEM_FAT_ROOTSTART to MEM_IDE_POINTER
|
||||
ld hl,MEM_FAT_ROOTSTART
|
||||
ld de,MEM_IDE_POINTER
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
|
||||
;copy value from MEM_FAT_ROOTSTART to MEM_IDE_POINTER
|
||||
ld hl,MEM_FAT_ROOTSTART
|
||||
ld de,MEM_FAT_DATASTART
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
|
||||
ld hl,MEM_FAT_ROOTSTART
|
||||
ld de,MEM_FAT_CURRDIR
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
|
||||
;add offset to data area
|
||||
;multiply cluster by length of cluster
|
||||
|
||||
;calculate sectors for root dir
|
||||
ld hl,(MEM_IDE_BUFFER+0x11) ;load Maximum root directory entries
|
||||
ld a,h
|
||||
ld l,a
|
||||
xor a ;set a 0, clear carry flag
|
||||
ld h,a ;shift right by 8 bit = /512
|
||||
|
||||
;last step: multiply by 16
|
||||
ex de,hl
|
||||
ld bc,16
|
||||
call _fat_math_mul32
|
||||
; BCHL contains result -> store to PTR.MEM_FAT_TMPPOINTER
|
||||
ld (MEM_FAT_TMPPOINTER+0),hl
|
||||
ld (MEM_FAT_TMPPOINTER+2),bc
|
||||
|
||||
ld (MEM_FAT_DIRSEC),hl
|
||||
; add offset to MEM_FAT_DATASTART
|
||||
ld de,[MEM_FAT_TMPPOINTER]
|
||||
ld bc,[MEM_FAT_DATASTART]
|
||||
call _fat_math_add32 ;MEM_FAT_DATASTART now contains the correct sector
|
||||
;at teh beginnig of the data area
|
||||
|
||||
|
||||
;done all FS vars populated
|
||||
|
||||
;navigate to root directory
|
||||
ld a,'\'
|
||||
ld(MEM_FAT_CURDIR),a
|
||||
xor a
|
||||
ld(MEM_FAT_CURDIR+1),a
|
||||
|
||||
ret
|
||||
|
||||
_fat_get_root_table_invalid:
|
||||
call PRINTINLINE
|
||||
db 10,13,"Cannot find boot sector.",10,13,0
|
||||
call ideif_get_drv_pointer
|
||||
ld (ix+0),0x02
|
||||
ret
|
||||
|
||||
;-------------------------------------
|
||||
; Print current fat directory of MEM_FAT_CURRDIR
|
||||
;-------------------------------------
|
||||
fat_print_directory:
|
||||
ld hl,MEM_FAT_CURRDIR
|
||||
ld de,MEM_IDE_POINTER
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
|
||||
LD DE,(MEM_FAT_SECTORS)
|
||||
LD (MEM_FAT_COUNT1),DE
|
||||
LD HL,MEM_IDE_POINTER ;read first sector
|
||||
LD B,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
call PRINTINLINE
|
||||
db 10,13," Filename Cluster Size",10,13,0
|
||||
|
||||
LD HL, MEM_IDE_BUFFER ;set buffer start
|
||||
LD C,16 ;set entries counter
|
||||
|
||||
_fat_print_directory_loop: ;loop over each entry (32byte)
|
||||
LD A,(HL) ; check first byte
|
||||
PUSH HL ;backup start of entry
|
||||
POP IX
|
||||
PUSH HL
|
||||
;ignore unwanted entries
|
||||
CP 0x41 ;skip invisible
|
||||
JP Z, _fat_print_directory_loop_next
|
||||
CP 0xE5 ;skip deleted
|
||||
JP Z, _fat_print_directory_loop_next
|
||||
CP 0x00 ;reached end
|
||||
JP Z, _fat_print_directory_loop_break
|
||||
|
||||
;check file attribute
|
||||
ld a,(IX+0x0B)
|
||||
cp 0x10 ;if subdirectors
|
||||
jp z, _fat_print_directory_dir ;print dir
|
||||
;else print file
|
||||
_fat_print_directory_loop_file
|
||||
;print filename
|
||||
ld a,' '
|
||||
call print_char
|
||||
ld a,' '
|
||||
call print_char
|
||||
LD B,8
|
||||
call print_str_fixed
|
||||
ld A,'.'
|
||||
call print_char
|
||||
LD B,3
|
||||
call print_str_fixed
|
||||
|
||||
call PRINTINLINE
|
||||
db " 0x",0
|
||||
;first cluster number
|
||||
ld a,(ix+0x1B)
|
||||
call print_a_hex
|
||||
ld a,(ix+0x1A)
|
||||
call print_a_hex
|
||||
call PRINTINLINE
|
||||
db " 0x",0
|
||||
ld a,(ix+0x1F)
|
||||
call print_a_hex
|
||||
ld a,(ix+0x1E)
|
||||
call print_a_hex
|
||||
ld a,(ix+0x1D)
|
||||
call print_a_hex
|
||||
ld a,(ix+0x1C)
|
||||
call print_a_hex
|
||||
|
||||
LD A,10 ;New line
|
||||
CALL print_char
|
||||
LD A,13
|
||||
CALL print_char
|
||||
jr _fat_print_directory_loop_next
|
||||
_fat_print_directory_dir
|
||||
ld a,'D'
|
||||
call print_char
|
||||
ld a,' '
|
||||
call print_char
|
||||
LD B,8
|
||||
call print_str_fixed
|
||||
call PRINTINLINE
|
||||
db " 0x",0
|
||||
;first cluster number
|
||||
ld a,(ix+0x1B)
|
||||
call print_a_hex
|
||||
ld a,(ix+0x1A)
|
||||
call print_a_hex
|
||||
|
||||
LD A,10 ;New line
|
||||
CALL print_char
|
||||
LD A,13
|
||||
CALL print_char
|
||||
jr _fat_print_directory_loop_next
|
||||
|
||||
_fat_print_directory_loop_next: ; read next entry
|
||||
DEC C ;next sector after 32 entries
|
||||
JR Z,_fat_print_directory_loop_next_sector
|
||||
POP HL ;restore start
|
||||
LD DE, 32 ;length of entry
|
||||
ADD HL,DE ;increment
|
||||
JP _fat_print_directory_loop
|
||||
|
||||
_fat_print_directory_loop_next_sector: ; end fo sector. read next sector from disk
|
||||
POP HL ;clear stack from old hl
|
||||
LD H,0
|
||||
LD L,1
|
||||
call _fat_math_sector_add_16 ;increment sector
|
||||
|
||||
LD DE,(MEM_FAT_COUNT1) ; decrement sector count (max FAT length)
|
||||
DEC DE
|
||||
LD (MEM_FAT_COUNT1),DE
|
||||
LD A,D
|
||||
OR E
|
||||
JP Z, _fat_print_directory_loop_break_dirty ; if DE is 0, mmax is reached. End here
|
||||
|
||||
LD HL,MEM_IDE_POINTER ;read next sector
|
||||
LD B,1
|
||||
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
LD HL, MEM_IDE_BUFFER ;set buffer start
|
||||
LD C,16 ;set entries counter
|
||||
JP _fat_print_directory_loop
|
||||
|
||||
_fat_print_directory_loop_break
|
||||
POP HL
|
||||
_fat_print_directory_loop_break_dirty
|
||||
; ld hl, [str_sum]
|
||||
; call print_str ;print
|
||||
; ld a,c
|
||||
; call print_a_hex
|
||||
; ld hl, [str_files]
|
||||
; call print_str ;print
|
||||
ret
|
||||
|
||||
; fat change directory
|
||||
; relative path
|
||||
; DE pointer to path
|
||||
fat_cd_single:
|
||||
push de
|
||||
; check if user wants to go back (input = '..')
|
||||
ld a,(de)
|
||||
cp '.'
|
||||
jr nz, _fat_cd_navigate; if not, skip
|
||||
inc de ;check next
|
||||
ld a,(de)
|
||||
cp '.'
|
||||
jr nz, _fat_cd_navigate; if not, skip
|
||||
ld a,(var_dir+79) ;last byte contains depth
|
||||
or a; Test if 0
|
||||
jp z, _fat_cd_navigate_error ;cannot go back any more (already at root)
|
||||
; check if .. exists in directory
|
||||
ld a,'.' ;prepare filename buffer
|
||||
ld hl,[MEM_FAT_TMPFNAME]
|
||||
ld (hl),a
|
||||
inc hl
|
||||
ld (hl),a
|
||||
inc hl
|
||||
ld a,0x20 ;clear char 3-11
|
||||
ld b,11
|
||||
_fat_cd_navigate_goback_fl:
|
||||
ld (hl),a
|
||||
inc hl
|
||||
djnz _fat_cd_navigate_goback_fl ;fill loop end
|
||||
call fat_openfile_noprepare ;load file table (only 1st sector needed)
|
||||
or a ;check for error
|
||||
jp nz, _fat_cd_navigate_error ;entry not found exception
|
||||
|
||||
|
||||
; find end of path
|
||||
ld hl,[var_dir+3] ;current position
|
||||
ld bc,76
|
||||
ld a,0x00 ;termination char
|
||||
cpir ;find end
|
||||
jp po,_fat_cd_navigate_inerror ;in case of error, abort
|
||||
;hl is now at end of string
|
||||
ld bc,76
|
||||
ld a,'\' ;seperation char
|
||||
cpdr ;serach backwards for "/"
|
||||
jp po,_fat_cd_navigate_inerror ;in case of error, abort
|
||||
;hl is now at end of string
|
||||
inc hl
|
||||
xor a
|
||||
ld (hl),a ;set termination char
|
||||
inc hl
|
||||
ld (hl),a ;set termination char
|
||||
ld a,(var_dir+79)
|
||||
dec a
|
||||
ld (var_dir+79),a ;decrement dir depth counter
|
||||
|
||||
pop de
|
||||
|
||||
ld hl,[var_dir+2]
|
||||
ld a,'\'
|
||||
ld (hl),a ;set first /
|
||||
|
||||
ld hl,MEM_FAT_OF0_DATSEC ;setup directory pointer
|
||||
ld de,MEM_FAT_CURRDIR
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
|
||||
ret
|
||||
|
||||
_fat_cd_navigate
|
||||
pop de ;get pointer to directory namme
|
||||
push de ;and re-store it for next use
|
||||
call fat_openfile ;find 'file' in current directory
|
||||
_fat_cd_navigate_findsec
|
||||
or a
|
||||
jp nz, _fat_cd_navigate_error ;entry not found
|
||||
ld a, (MEM_FAT_OF0_ATTRIBUTE)
|
||||
cp 0x10
|
||||
jp nz, _fat_cd_navigate_errfile
|
||||
ld a,(var_dir+79)
|
||||
inc a
|
||||
ld (var_dir+79),a ;increment dir depth counter
|
||||
ld hl,[var_dir+2] ;load start of path string
|
||||
ld a,0 ;load termination char
|
||||
ld bc,76 ;max length of string
|
||||
cpir ;find end of path string
|
||||
dec hl
|
||||
jp po,_fat_cd_navigate_inerror ;in case of error, abort
|
||||
;HL now has last element, BC has remaining max length
|
||||
ld a,(var_dir+79) ;last byte contains depth
|
||||
cp 1 ;if first path, skip /
|
||||
jr z, _fat_cd_navigate_findsec_skipslash
|
||||
ld a,'\'
|
||||
ld (hl),a
|
||||
inc hl
|
||||
_fat_cd_navigate_findsec_skipslash
|
||||
pop de ;get argument from stack
|
||||
ex de,hl
|
||||
push de ;store start to stack
|
||||
;HL now has start of input string, DE has end of current path
|
||||
ld bc,09 ;maximum length of directory name +1
|
||||
_fat_cd_navigate_l2: ;copy new subdirectory
|
||||
ldi ;copy
|
||||
jp po,_fat_cd_navigate_inerrorS ;in case of error, abort
|
||||
ld a,(hl) ;check next char
|
||||
cp '\' ;end at '\'
|
||||
jr z, _fat_cd_navigate_end ;else next byte
|
||||
or a ;or and at 0x00
|
||||
jr z, _fat_cd_navigate_end ;else next byte
|
||||
jr _fat_cd_navigate_l2
|
||||
_fat_cd_navigate_end:
|
||||
xor a
|
||||
ld (de),a ;set last byte to 0x00 (termination)
|
||||
ld hl,MEM_FAT_OF0_DATSEC
|
||||
;setup directory pointer
|
||||
ld de,MEM_FAT_CURRDIR
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
pop de ;stack cleanup
|
||||
ret
|
||||
|
||||
_fat_cd_navigate_error:
|
||||
ld hl,[_fat_cd_navigate_error_str]
|
||||
call print_str
|
||||
pop de
|
||||
ret
|
||||
|
||||
_fat_cd_navigate_inerrorS: ;with path reset
|
||||
pop de ;restore former path
|
||||
dec de ;change pointer to remove previous '\' as well
|
||||
xor a ;clear a to 0x00
|
||||
ld (de),a ;set last byte to 0x00 (termination)
|
||||
jr _fat_cd_navigate_inerrore
|
||||
_fat_cd_navigate_inerror: ;without path reset
|
||||
pop de
|
||||
_fat_cd_navigate_inerrore:
|
||||
ld hl,[_fat_cd_navigate_inputerr_str]
|
||||
call print_str
|
||||
ret
|
||||
_fat_cd_navigate_errfile:
|
||||
pop de
|
||||
ld hl,[_fat_cd_navigate_errfile_str]
|
||||
call print_str
|
||||
ret
|
||||
|
||||
_fat_cd_navigate_error_str:
|
||||
db 10,13,"No such directory!",10,13,0
|
||||
_fat_cd_navigate_inputerr_str:
|
||||
db 10,13,"Invalid input!",10,13,0
|
||||
_fat_cd_navigate_errfile_str:
|
||||
db 10,13,"Cannot cd to file!",10,13,0
|
||||
|
||||
;=================== UTIL Functions ===========================
|
||||
; 32 Bit addition to pointer
|
||||
; HL has value
|
||||
;deprecated!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
_fat_math_sector_add_16:
|
||||
ld (MEM_FAT_TMPPOINTER), hl
|
||||
xor a
|
||||
ld (MEM_FAT_TMPPOINTER+2),a
|
||||
ld (MEM_FAT_TMPPOINTER+3),a
|
||||
|
||||
ld de,[MEM_FAT_TMPPOINTER]
|
||||
ld bc,[MEM_IDE_POINTER]
|
||||
call _fat_math_add32
|
||||
ret
|
||||
;deprecated!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
;hl contains pointer
|
||||
_fat_increment_32
|
||||
ld a,(HL) ; byte 0
|
||||
add 1
|
||||
ld (hl),a
|
||||
inc hl
|
||||
ld a,(HL) ; byte 1
|
||||
adc 0
|
||||
ld (hl),a
|
||||
inc hl
|
||||
ld a,(HL) ; byte 2
|
||||
adc 0
|
||||
ld (hl),a
|
||||
inc hl
|
||||
ld a,(HL) ; byte 3
|
||||
adc 0
|
||||
ld (hl),a
|
||||
ret
|
||||
;bc contains pointer to a (also result)
|
||||
;de contains pointer to b
|
||||
_fat_math_add32
|
||||
push hl
|
||||
push bc
|
||||
push de
|
||||
ld a,(de) ; load lower 16bit for B int from (DE) to HL
|
||||
ld l,a
|
||||
inc de
|
||||
ld a,(de)
|
||||
ld h,a
|
||||
inc de
|
||||
; HL, DE dirty
|
||||
ld a,(bc) ; load lower 16bit for A int from (BC) to DE
|
||||
ld e,a
|
||||
inc bc
|
||||
ld a,(bc)
|
||||
ld d,a
|
||||
; HL now contains A, DE now contains D
|
||||
add hl,de ;add lower bytes, store carry
|
||||
pop de ;restore pointers
|
||||
pop bc ;both now cointain first byte of long-value
|
||||
ld a,l ;store lower result in (bc)
|
||||
ld (bc),a
|
||||
inc bc
|
||||
ld a,h
|
||||
ld (bc),a
|
||||
inc bc
|
||||
inc de ;also increment de to next byte
|
||||
inc de
|
||||
; DE and HL now start at the upper byte
|
||||
push bc
|
||||
push de
|
||||
ld a,(de) ; load upper 16bit for B
|
||||
ld l,a
|
||||
inc de
|
||||
ld a,(de)
|
||||
ld h,a
|
||||
inc de
|
||||
ld a,(bc) ; load upper 16bit for A
|
||||
ld e,a
|
||||
inc bc
|
||||
ld a,(bc)
|
||||
ld d,a
|
||||
adc hl,de ;add upper bytes, store carry
|
||||
pop de
|
||||
pop bc
|
||||
ld a,l ;store lower result in (bc)
|
||||
ld(bc),a
|
||||
inc bc
|
||||
ld a,h
|
||||
ld(bc),a
|
||||
pop hl
|
||||
ret
|
||||
|
||||
|
||||
; Multiply 16-bit values (with 32-bit result)
|
||||
; Operands BC, DE
|
||||
; Result -> BCHL
|
||||
_fat_math_mul32:
|
||||
ld a,c
|
||||
ld c,b
|
||||
ld hl,0
|
||||
ld b,16
|
||||
_fat_math_mul32_l:
|
||||
add hl,hl
|
||||
rla
|
||||
rl c
|
||||
jr nc,_fat_math_mul32_noadd
|
||||
add hl,de
|
||||
adc a,0
|
||||
jp nc,_fat_math_mul32_noadd
|
||||
inc c
|
||||
_fat_math_mul32_noadd:
|
||||
djnz _fat_math_mul32_l
|
||||
ld b,c
|
||||
ld c,a
|
||||
ret
|
||||
|
||||
; reset LBA pointer to first sector in selected partition
|
||||
fat_reset_pointer:
|
||||
call ideif_get_drv_pointer
|
||||
inc ix
|
||||
inc ix
|
||||
push ix
|
||||
pop hl ;copy poiter to hl
|
||||
ld de, MEM_IDE_POINTER
|
||||
jr fat_copy_lba_pointer
|
||||
|
||||
; resets LBA pointer (4-byte) to partition start
|
||||
; HL = from here
|
||||
; DE = to this destimation
|
||||
fat_copy_lba_pointer:
|
||||
PUSH BC
|
||||
LD B,0
|
||||
LD C,4
|
||||
LDIR
|
||||
POP BC
|
||||
ret
|
||||
|
||||
325
OperatingSystem/software2/include/fat16_file.s
Normal file
325
OperatingSystem/software2/include/fat16_file.s
Normal file
@@ -0,0 +1,325 @@
|
||||
|
||||
|
||||
;1. find sector for given cluster
|
||||
;2. read sector
|
||||
;3. store first data sector to MEM_FAT_OF0_DATSEC
|
||||
;4. set MEM_FAT_OF0_DATREM to amount uf sectors per cluster
|
||||
;5. find next cluster in FAt and update MEM_FAT_OF0_CCLUST
|
||||
|
||||
|
||||
; gets sector in FAT table for the cluster stored in MEM_FAT_OF0_CCLUST
|
||||
; store result in MEM_FAT_OF0_FATSEC
|
||||
; stores next cluster in MEM_FAT_OF0_CCLUST
|
||||
fat_getfatsec:
|
||||
ld HL,(MEM_FAT_OF0_CCLUST) ;load cluster
|
||||
ld a,h ;if not 0x0000
|
||||
or l
|
||||
jp nz, _fat_getfatsec_notroot
|
||||
;if 0x0000, goto root directory
|
||||
ld hl,MEM_FAT_ROOTSTART
|
||||
ld de,MEM_FAT_OF0_DATSEC
|
||||
ldi ;quick and dirty hack to go back to root directory
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ret
|
||||
|
||||
_fat_getfatsec_notroot:
|
||||
ld HL,(MEM_FAT_OF0_CCLUST) ;load cluster
|
||||
;each sector contains 256 clusters
|
||||
;first 8bits are not needed (/256)
|
||||
ld a,h ;divide by 256
|
||||
ld l,a
|
||||
xor a
|
||||
ld h,a
|
||||
|
||||
ld bc,(MEM_FAT_RESERVED) ;add reserved sectors
|
||||
add hl,bc
|
||||
ld(MEM_FAT_OF0_FATSEC+0),hl;store sector
|
||||
xor a
|
||||
ld(MEM_FAT_OF0_FATSEC+2),a
|
||||
ld(MEM_FAT_OF0_FATSEC+3),a
|
||||
|
||||
call ideif_get_drv_pointer
|
||||
inc ix
|
||||
inc ix
|
||||
push ix
|
||||
pop de ;copy poiter to hl
|
||||
ld bc,[MEM_FAT_OF0_FATSEC]
|
||||
call _fat_math_add32 ;MEM_FAT_OF0_FATSEC now contains the correct sector
|
||||
;in the FAT
|
||||
|
||||
;read FAT sector
|
||||
ld hl,MEM_FAT_OF0_FATSEC ;read next sector
|
||||
ld b,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
;calculate data sector
|
||||
;multiply cluster by length of cluster
|
||||
xor a ;clear carry
|
||||
ld a,(MEM_FAT_CLUSTERLEN)
|
||||
ld b,0
|
||||
ld c,a
|
||||
ld de,(MEM_FAT_OF0_CCLUST) ;load cluster number
|
||||
dec de ; sub 2 becaus fat starts at 3
|
||||
dec de
|
||||
call _fat_math_mul32
|
||||
; BCHL contains result -> store to PTR.MEM_FAT_OF0_DATSEC
|
||||
ld (MEM_FAT_OF0_DATSEC+0),hl
|
||||
ld (MEM_FAT_OF0_DATSEC+2),bc
|
||||
|
||||
; add start of data region to addr
|
||||
ld bc,[MEM_FAT_OF0_DATSEC]
|
||||
ld de,[MEM_FAT_DATASTART]
|
||||
call _fat_math_add32 ;MEM_FAT_OF0_FATSEC now contains the correct sector
|
||||
;in the FAT
|
||||
;MEM_FAT_OF0_DATSEC now has the first sector of the selected cluster
|
||||
|
||||
;reset MEM_FAT_OF0_DATREM to default cluster length
|
||||
ld a,(MEM_FAT_CLUSTERLEN)
|
||||
ld l,a
|
||||
ld h,0
|
||||
ld (MEM_FAT_OF0_DATREM), hl
|
||||
|
||||
;get next cluster
|
||||
;calculate offset address
|
||||
ld a,(MEM_FAT_OF0_CCLUST)
|
||||
RLA ;shift to left (x2)
|
||||
ld l, a
|
||||
ld a,0
|
||||
RLA ;shift in carry flag
|
||||
ld h,a
|
||||
ld de,MEM_IDE_BUFFER
|
||||
add hl,de
|
||||
;copy pointer (hl to de)
|
||||
ld de,MEM_FAT_OF0_CCLUST
|
||||
ldi ;copy byte for next cluster from FAT
|
||||
ldi
|
||||
ret
|
||||
;store data
|
||||
|
||||
; reads single sector of file
|
||||
; must run fat_readfilesec before to initialize
|
||||
; if a ix 0x00, success
|
||||
; if a is 0xFF, end reached
|
||||
fat_readfilesec:
|
||||
call fat_print_dbg
|
||||
ld hl,[MEM_FAT_OF0_DATSEC]
|
||||
ld b,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector ;read sectore
|
||||
ld hl,[MEM_FAT_OF0_DATSEC] ;increment pointer to next sector
|
||||
call _fat_increment_32 ;***
|
||||
ld hl,(MEM_FAT_OF0_DATREM) ;reduce counter
|
||||
xor a
|
||||
ld de,1
|
||||
sbc hl,de ;decrement counter
|
||||
ld (MEM_FAT_OF0_DATREM),hl ;store decremented counter
|
||||
ret nz ;when not zero, exit function
|
||||
;if zero:
|
||||
ld a, 0xFF ;preload error code
|
||||
ld hl,(MEM_FAT_OF0_CCLUST) ;check next chunk
|
||||
ld de,0xFFFF ;end mark
|
||||
sbc hl,de ;if Z match
|
||||
ret z ;If 0xFFFF, end is reched. Return
|
||||
;if next cluster available:
|
||||
xor a
|
||||
call fat_getfatsec ; read next cluster information
|
||||
ret
|
||||
|
||||
;-------------------------------------
|
||||
; FAT open file
|
||||
;
|
||||
; DE pointer to file name
|
||||
;-------------------------------------
|
||||
fat_openfile:
|
||||
PUSH DE
|
||||
;MEM_FAT_TMPFNAME now has valid text to compare
|
||||
LD HL,[MEM_FAT_TMPFNAME]
|
||||
call format_filename_fat16
|
||||
POP DE
|
||||
fat_openfile_noprepare:
|
||||
PUSH DE
|
||||
;prepare pointer
|
||||
ld hl,MEM_FAT_CURRDIR
|
||||
ld de,MEM_IDE_POINTER
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
|
||||
LD A,(MEM_FAT_DIRSEC) ;init counter for FAT sectors
|
||||
LD (MEM_FAT_COUNT1),A
|
||||
|
||||
LD HL,MEM_IDE_POINTER ;read first sector
|
||||
LD B,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
;LD HL,MEM_IDE_BUFFER ;Dump IDE Buffer
|
||||
;LD B,32
|
||||
;call dump_pretty
|
||||
|
||||
;LD HL,MEM_FAT_TMPFNAME ;Dump IDE Buffer
|
||||
;LD B,1
|
||||
;call dump_pretty
|
||||
|
||||
LD HL, MEM_IDE_BUFFER ;set buffer start
|
||||
LD C,16 ;set entries counter
|
||||
|
||||
_fat_lfs_loop:
|
||||
LD DE,[MEM_FAT_TMPFNAME]
|
||||
CALL compare_filename
|
||||
JR C, _fat_lfs_loop_compare_match ;on match
|
||||
|
||||
; prepare next entry
|
||||
DEC C ;next sector after 16 entries
|
||||
JR Z,_fat_lfs_loop_compare_next_sector
|
||||
LD DE, 32 ;length of entry
|
||||
ADD HL,DE ;increment
|
||||
JP _fat_lfs_loop
|
||||
|
||||
_fat_lfs_loop_compare_next_sector:
|
||||
ld hl,[MEM_IDE_POINTER]
|
||||
call _fat_increment_32 ;increment sector
|
||||
|
||||
LD A,(MEM_FAT_COUNT1) ; decrement sector count (max FAT length)
|
||||
DEC A
|
||||
LD (MEM_FAT_COUNT1),A
|
||||
JP Z, _fat_lfs_loop_compare_end ; if DE is 0, mmax is reached. End here
|
||||
;call print_a_hex
|
||||
|
||||
LD HL,MEM_IDE_POINTER ;read next sector
|
||||
LD B,1
|
||||
LD DE, MEM_IDE_BUFFER ;where to store data?
|
||||
call read_lba_sector
|
||||
|
||||
LD HL, MEM_IDE_BUFFER ;set buffer start
|
||||
LD C,16 ;set entries counter
|
||||
|
||||
ld a,(HL)
|
||||
or a
|
||||
jp z, _fat_lfs_loop_compare_end ;skip empty sectors
|
||||
|
||||
JP _fat_lfs_loop
|
||||
|
||||
_fat_lfs_loop_compare_end:
|
||||
POP DE
|
||||
;LD HL, [str_file_notfound]
|
||||
;CALL print_str ;print
|
||||
ld a,0xFF
|
||||
RET
|
||||
|
||||
_fat_lfs_loop_compare_match:
|
||||
; get entry
|
||||
POP DE
|
||||
|
||||
; HL points to Start of Table item
|
||||
PUSH HL
|
||||
POP IX
|
||||
; get important information
|
||||
ld a,(ix+0x1B) ;first cluster number
|
||||
ld (MEM_FAT_OF0_CCLUST+1),a
|
||||
ld a,(ix+0x1A)
|
||||
ld (MEM_FAT_OF0_CCLUST+0),a
|
||||
ld a,(ix+0x0B)
|
||||
ld (MEM_FAT_OF0_ATTRIBUTE+0),a
|
||||
|
||||
xor a ;clear carry ;set MEM_FAT_OF0_DATREM to remaining sectors
|
||||
ld a,(ix+0x1F) ;cluste length shift by 256
|
||||
rra
|
||||
ld (MEM_FAT_FILEREMAIN+2),a
|
||||
ld a,(ix+0x1E)
|
||||
rra
|
||||
ld (MEM_FAT_FILEREMAIN+1),a
|
||||
ld a,(ix+0x1D)
|
||||
rra
|
||||
ld (MEM_FAT_FILEREMAIN+0),a
|
||||
ld a,0
|
||||
ld (MEM_FAT_FILEREMAIN+3),a
|
||||
call fat_getfatsec ;get sector information
|
||||
;call print_newLine
|
||||
|
||||
;LD B,8
|
||||
;call print_str_fixed
|
||||
;ld A,'.'
|
||||
;call print_char
|
||||
;LD B,3
|
||||
;call print_str_fixed
|
||||
;LD HL, [str_file_found]
|
||||
;CALL print_str ;print
|
||||
xor a
|
||||
RET
|
||||
|
||||
|
||||
; compares filenames
|
||||
; HL points to name1
|
||||
; DE points to name2
|
||||
; Carry is set if match
|
||||
; Destroys DE, AF
|
||||
compare_filename:
|
||||
PUSH HL
|
||||
push BC
|
||||
LD B, 11 ;Counter
|
||||
_compare_filename_loop:
|
||||
LD A,(DE)
|
||||
LD C,A
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
INC DE
|
||||
XOR C ;check if identical (should return 0)
|
||||
JR NZ, _compare_filename_nomatch
|
||||
djnz _compare_filename_loop ;if not last, continue
|
||||
POP BC
|
||||
POP HL
|
||||
SCF
|
||||
RET
|
||||
_compare_filename_nomatch:
|
||||
POP BC
|
||||
POP HL
|
||||
XOR A ; clear carry flag
|
||||
RET
|
||||
|
||||
; formats filename to 8+3 format
|
||||
; DE points to source filename to string
|
||||
; HL points to destination
|
||||
format_filename_fat16:
|
||||
LD B, 11 ;counter
|
||||
PUSH HL
|
||||
LD A, ' '
|
||||
_format_filename_fat16_clean:
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DJNZ _format_filename_fat16_clean
|
||||
POP HL ; continue with copy
|
||||
LD B, 13
|
||||
_format_filename_fat16_loop:
|
||||
LD A, (DE) ; load byte
|
||||
OR A
|
||||
RET Z ;exit on 0byte
|
||||
DEC B ;reduce counter
|
||||
RET Z ;exit after 12 bytes 8+.+3
|
||||
CP '.' ; check if dot
|
||||
JR NZ, _format_filename_fat16_loop_copy ; if not continue as usual
|
||||
INC DE ;else skip char
|
||||
_format_filename_fat16_loop_skip_8:
|
||||
LD A,B
|
||||
CP 5
|
||||
JR C, _format_filename_fat16_loop
|
||||
INC HL
|
||||
DEC B
|
||||
JR _format_filename_fat16_loop_skip_8
|
||||
|
||||
_format_filename_fat16_loop_copy:
|
||||
LD A, (DE) ; load byte
|
||||
LD (HL), A ; copy byte
|
||||
INC HL
|
||||
INC DE
|
||||
JP _format_filename_fat16_loop
|
||||
|
||||
str_file_notfound:
|
||||
db "File not found!",13,10,0
|
||||
|
||||
str_file_found:
|
||||
db " File located!",13,10,0
|
||||
34
OperatingSystem/software2/include/regdump.s
Normal file
34
OperatingSystem/software2/include/regdump.s
Normal file
@@ -0,0 +1,34 @@
|
||||
regdump:
|
||||
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
PUSH AF
|
||||
|
||||
CALL PRINTINLINE
|
||||
defb "REGDUMP",10,13,"A: 0x",0
|
||||
call print_a_hex
|
||||
CALL PRINTINLINE
|
||||
defb " F: 0x",0
|
||||
POP BC
|
||||
PUSH BC
|
||||
LD A,C
|
||||
call print_a_hex
|
||||
|
||||
CALL PRINTINLINE
|
||||
defb 13,10,"BC: 0x",0
|
||||
|
||||
|
||||
|
||||
ld a,b
|
||||
call print_a_hex
|
||||
ld a,c
|
||||
call print_a_hex
|
||||
CALL PRINTINLINE
|
||||
defb 13,10,0
|
||||
|
||||
POP AF
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
|
||||
327
OperatingSystem/software2/test_iic.asm
Normal file
327
OperatingSystem/software2/test_iic.asm
Normal file
@@ -0,0 +1,327 @@
|
||||
.include "extern_symbols.s" ;include monitor symbols.
|
||||
org 0xB000
|
||||
CS_PIO_BD .EQU 0xF5
|
||||
CS_PIO_BC .EQU 0xF7
|
||||
CS_PIO_AD .EQU 0xF4
|
||||
CS_PIO_AC .EQU 0xF6
|
||||
|
||||
CS_I2C_S1 .EQU 0xF3
|
||||
CS_I2C_SX .EQU 0xF2
|
||||
|
||||
IIC_RTC equ 11010000b
|
||||
|
||||
IIC_INIT:
|
||||
LD A,0xCF
|
||||
OUT (CS_PIO_AC), A
|
||||
LD A,11110101b
|
||||
OUT (CS_PIO_AC), A
|
||||
|
||||
LD A,00000000b ; Reset PCF8584 minimum 30 clock cycles
|
||||
OUT (CS_PIO_AD), A
|
||||
LD BC,0x1000
|
||||
CALL PAUSE_LOOP
|
||||
LD A,0000010b
|
||||
OUT (CS_PIO_AD), A
|
||||
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
|
||||
LD A, 0x80 ;S1 -> Select S0, PIN disabled, ESO = 0, Interrupt disabled, STA, STA, ACK = 0
|
||||
OUT (CS_I2C_S1),A
|
||||
CALL SlowAccess
|
||||
CALL SlowAccess
|
||||
|
||||
LD A,0x55 ;S0 -> Loads byte 55H into register S0'; effective own address becomes AAH
|
||||
OUT (CS_I2C_SX),A
|
||||
CALL SlowAccess
|
||||
|
||||
LD A, 0xA0 ;S1 -> Loads byte A0H into register S1, i.e. next byte will be loaded into the clock control register S2.
|
||||
OUT (CS_I2C_S1),A
|
||||
CALL SlowAccess
|
||||
|
||||
|
||||
LD A,0x00 ;Load 18H into S2 register (clock control - 8 MHz, 90 KHz)
|
||||
OUT (CS_I2C_SX),A
|
||||
CALL SlowAccess
|
||||
|
||||
LD A,0xC1 ;S1 -> loads byte C1H into register S1; register enable
|
||||
;serial interface, set I 2C-bus into idle mode;
|
||||
;SDA and SCL are HIGH. The next write or read
|
||||
;operation will be to/from data transfer register
|
||||
;S0 if A0 = LOW.;
|
||||
OUT (CS_I2C_S1),A
|
||||
CALL SlowAccess
|
||||
|
||||
|
||||
|
||||
;CALL force_stop
|
||||
JP PROMPT_BEGIN
|
||||
|
||||
LD BC,$0100
|
||||
CALL PAUSE_LOOP
|
||||
|
||||
|
||||
; Send test message to RTC
|
||||
|
||||
LD DE, 0xC000 ; Set I2C Buffer Location
|
||||
LD A,0x00
|
||||
LD (DE),A
|
||||
;call regdump
|
||||
|
||||
LD B, IIC_RTC ; Set I2C Address
|
||||
LD A, 1 ; Set I2C Buffer length
|
||||
call i2c_send
|
||||
|
||||
LD DE, 0xC010
|
||||
LD B, IIC_RTC
|
||||
LD A, 7
|
||||
call i2c_read
|
||||
|
||||
|
||||
|
||||
JP PROMPT_BEGIN
|
||||
|
||||
|
||||
;CLK_ENABLE:
|
||||
; LD DE, 0xC000 ; Set I2C Buffer Location
|
||||
; LD A,0x00
|
||||
; LD (0xC000),A
|
||||
; LD (0xC001),A
|
||||
; ;call regdump
|
||||
;
|
||||
; LD B, IIC_RTC ; Set I2C Address
|
||||
; LD A, 2 ; Set I2C Buffer length
|
||||
; call i2c_send
|
||||
; JP PROMPT_BEGIN
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; i2c_send
|
||||
;
|
||||
; Sends data over the i2c bus
|
||||
; A contains BYTE COUNTER
|
||||
; B contains ADDRESS
|
||||
; DE contains location of Data Buffer
|
||||
;------------------------------------------------------------------------------
|
||||
i2c_send:
|
||||
; CALL PRINTINLINE;
|
||||
; defb "SEND A",10,13,0
|
||||
PUSH BC
|
||||
PUSH AF
|
||||
CALL i2c_bus_rdy
|
||||
; CALL PRINTINLINE
|
||||
; defb "SEND START",10,13,0
|
||||
LD A,B ;Load 'slave address' into S0 register:
|
||||
OUT (CS_I2C_SX),A
|
||||
CALL SlowAccess
|
||||
|
||||
LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates
|
||||
;the 'START' condition and clocks out the slave
|
||||
;address and the clock pulse for slave acknowledgement.
|
||||
OUT (CS_I2C_S1),A
|
||||
POP AF
|
||||
LD C,A
|
||||
INC C
|
||||
i2c_send_1: ; LOOP 1 : Wait for bus ready
|
||||
IN A,(CS_I2C_S1) ; Read byte from S1 register
|
||||
BIT 7,A ; Is bus free? (S1 ~BB=1?)
|
||||
JR NZ,i2c_send_1 ; No - loop
|
||||
BIT 4,A ; slave acknowledged? (LRB = 0?)
|
||||
JR NZ, i2c_send_stop ; if not, cancel transmission
|
||||
LD A,(DE) ; Load next byte from buffer
|
||||
INC DE
|
||||
DEC C
|
||||
JR Z, i2c_send_stop ; if counter = 0, exit loop
|
||||
OUT (CS_I2C_SX),A ; Send byte
|
||||
JR i2c_send_1 ; if counter > 0, loop again
|
||||
i2c_send_stop:
|
||||
LD A, 0xC3 ;STOP
|
||||
OUT (CS_I2C_S1),A
|
||||
CALL SlowAccess
|
||||
POP BC
|
||||
RET
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; i2c_read
|
||||
;
|
||||
; Sends data over the i2c bus
|
||||
; A contains BYTE COUNTER
|
||||
; B contains ADDRESS
|
||||
; DE contains location of Data Buffer
|
||||
;------------------------------------------------------------------------------
|
||||
i2c_read:
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH AF
|
||||
LD A,B ;Load 'slave address' into S0 register:
|
||||
OR 0x01 ;Set RW Bit for read operation
|
||||
OUT (CS_I2C_SX),A
|
||||
CALL SlowAccess
|
||||
CALL i2c_bus_rdy ; Is bus ready
|
||||
LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates
|
||||
;the 'START' condition and clocks out the slave
|
||||
;address and the clock pulse for slave acknowledgement.
|
||||
OUT (CS_I2C_S1),A
|
||||
;Setup counter
|
||||
POP AF
|
||||
LD C,A ; Load BYTE COUNTER into C
|
||||
INC C ; Offset C by 1
|
||||
i2c_read_1: ;Wait for PIN = 0
|
||||
IN A,(CS_I2C_S1) ; Read byte from S1 register
|
||||
BIT 7,A ; S1 PIN=1?
|
||||
JR NZ,i2c_read_1 ; No - loop
|
||||
BIT 3,A ; S1 LRB=0? slave ACK?
|
||||
JR NZ, i2c_read_error ; No ACK -> an error has occured
|
||||
DEC C
|
||||
LD A, C
|
||||
DEC A ;If n = m − 1?
|
||||
JR Z, i2c_read_last
|
||||
IN A,(CS_I2C_SX)
|
||||
LD (DE),A
|
||||
INC DE
|
||||
JR i2c_read_1
|
||||
i2c_read_last: ;read last byte
|
||||
LD A, 0x40
|
||||
OUT (CS_I2C_S1),A
|
||||
CALL SlowAccess
|
||||
IN A,(CS_I2C_SX) ;receives the final data byte. Neg. ACK is also sent.
|
||||
LD (DE),A
|
||||
INC DE
|
||||
i2c_read_last_1:
|
||||
IN A,(CS_I2C_S1) ; Read byte from S1 register
|
||||
BIT 7,A ; S1 PIN=1?
|
||||
JR NZ,i2c_read_last_1 ; No - loop
|
||||
|
||||
i2c_read_error:
|
||||
NOP
|
||||
i2c_read_stop:
|
||||
LD A, 0xC3
|
||||
OUT (CS_I2C_S1),A
|
||||
CALL SlowAccess
|
||||
IN A,(CS_I2C_SX) ;transfers the final data byte from the
|
||||
;data buffer to accumulator.
|
||||
CALL SlowAccess
|
||||
LD (DE),A
|
||||
POP BC
|
||||
POP DE
|
||||
RET
|
||||
|
||||
|
||||
i2c_stop_force:
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; i2c_rdy
|
||||
;
|
||||
; Waits until the PCF8584 signals a byte transmission/reception is complete.
|
||||
;------------------------------------------------------------------------------
|
||||
i2c_rdy:
|
||||
PUSH AF
|
||||
i2c_rlp:
|
||||
IN A,(CS_I2C_S1) ; Read byte from S1 register
|
||||
BIT 7,A ; Is Tx/Rx complete? (S1 PIN=0?)
|
||||
call print_a_hex
|
||||
JR NZ,i2c_rlp ; No - loop
|
||||
i2crlpex:
|
||||
POP AF
|
||||
RET
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; i2c_bus_rdy
|
||||
;
|
||||
; Waits until the I2C bus is free before RETurning
|
||||
;------------------------------------------------------------------------------
|
||||
i2c_bus_rdy:
|
||||
PUSH AF
|
||||
i2c_blp:
|
||||
IN A,(CS_I2C_S1) ; Read byte from S1 register
|
||||
PUSH AF
|
||||
call print_a_hex
|
||||
POP AF
|
||||
BIT 0,A ; Is bus free? (S1 ~BB=1?)
|
||||
JR Z,i2c_blp ; No - loop
|
||||
i2cblpex:
|
||||
POP AF
|
||||
RET
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; PAUSE_LOOP
|
||||
;
|
||||
; Timer function
|
||||
;
|
||||
; 16-bit (BC) decrement counter, performing 4xNEG loop until BC
|
||||
; reaches zero.
|
||||
;
|
||||
; 61 T-states in loop = 15.25uS per loop @ 4 MHz - near enough
|
||||
; a second delay for 65,535 iterations.
|
||||
;
|
||||
; Set iteration count in BC before calling this function.
|
||||
; Destroys: BC
|
||||
;------------------------------------------------------------------------------
|
||||
PAUSE_LOOP:
|
||||
PUSH AF ; 11 T-states
|
||||
pau_lp:
|
||||
;NEG ; 8 T-states
|
||||
;NEG ; 8 T-states
|
||||
;NEG ; 8 T-states
|
||||
;NEG ; 8 T-states
|
||||
PUSH BC ; 11 T-states
|
||||
POP BC ; 10 T-states
|
||||
PUSH BC ; 11 T-states
|
||||
POP BC ; 10 T-states
|
||||
DEC BC ; 6 T-states
|
||||
LD A,C ; 9 T-states
|
||||
OR B ; 4 T-states
|
||||
JP NZ,pau_lp ; 10 T-states
|
||||
POP AF ; 10 T-states
|
||||
RET ; Pause complete, RETurn
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; PRINTINLINE
|
||||
;
|
||||
; String output function
|
||||
;
|
||||
; Prints in-line data (bytes immediately following the PRINTINLINE call)
|
||||
; until a string terminator is encountered (0 - null char).
|
||||
;------------------------------------------------------------------------------
|
||||
PRINTINLINE:
|
||||
EX (SP),HL ; PUSH HL and put RET ADDress into HL
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
nxtILC:
|
||||
LD A,(HL)
|
||||
CP 0
|
||||
JR Z,endPrint
|
||||
CALL print_char
|
||||
INC HL
|
||||
JR nxtILC
|
||||
endPrint:
|
||||
INC HL ; Get past "null" terminator
|
||||
POP BC
|
||||
POP AF
|
||||
EX (SP),HL ; PUSH new RET ADDress on stack and restore HL
|
||||
RET
|
||||
|
||||
SlowAccess:
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
RET
|
||||
|
||||
|
||||
;.include "regdump.s"
|
||||
|
||||
force_stop:
|
||||
IN A,(CS_I2C_S1)
|
||||
BIT 0, A
|
||||
RET NZ
|
||||
LD A, 11000011b
|
||||
OUT (CS_I2C_S1),A
|
||||
NOP
|
||||
NOP
|
||||
JR force_stop
|
||||
141
OperatingSystem/software2/test_old.asm
Normal file
141
OperatingSystem/software2/test_old.asm
Normal file
@@ -0,0 +1,141 @@
|
||||
.include "extern_symbols.s" ;include monitor symbols.
|
||||
org 0xB000
|
||||
;Testing code
|
||||
|
||||
;LD HL,MEM_IDE_BUFFER
|
||||
;LD B,32
|
||||
;call dump_pretty
|
||||
call find_partition
|
||||
;call fat_get_root_table
|
||||
;call fat_print_directory
|
||||
|
||||
call fat_get_root_table
|
||||
LD DE, [str1]
|
||||
CALL fat_lfs
|
||||
|
||||
JP PROMPT_BEGIN
|
||||
|
||||
str1:
|
||||
db "ILLUSION.PSG",0
|
||||
str2:
|
||||
db "HALLOWLT.TXT",0
|
||||
str3:
|
||||
db "TEST",0
|
||||
str4:
|
||||
db ".ORG",0
|
||||
|
||||
delay_small:
|
||||
PUSH AF
|
||||
POP AF
|
||||
PUSH AF
|
||||
POP AF
|
||||
RET
|
||||
|
||||
find_partition:
|
||||
;read bootsector
|
||||
LD A,1 ;read 1 sector
|
||||
LD B,IDE_REG_SECTOR
|
||||
CALL ide_regwrite_8
|
||||
|
||||
LD A,1 ;read sector 0
|
||||
LD B,IDE_REG_SSECTOR
|
||||
CALL ide_regwrite_8
|
||||
|
||||
LD A,0 ;read cylinder 0
|
||||
LD B,IDE_REG_LCYL
|
||||
CALL ide_regwrite_8
|
||||
LD A,0
|
||||
LD B,IDE_REG_HCYL
|
||||
CALL ide_regwrite_8
|
||||
|
||||
LD A,10100000b ;read head 0
|
||||
LD B,IDE_REG_HEAD
|
||||
CALL ide_regwrite_8
|
||||
|
||||
LD A,IDE_CMD_READSEC ;send read command
|
||||
LD B,IDE_REG_CMDSTS
|
||||
CALL ide_regwrite_8
|
||||
|
||||
LD HL,MEM_IDE_BUFFER ;set read/write buffer start address
|
||||
call ide_readsector_512_inv ;read 256 words from device
|
||||
|
||||
LD B,4 ;Partition table length
|
||||
LD C,0 ;Partition ID counter
|
||||
LD IX,MEM_IDE_BUFFER+446 ;Load offest of first partition table entry
|
||||
find_partition_loop:
|
||||
LD A,(IX+4) ;load status byte
|
||||
OR A
|
||||
JP NZ, find_partition_process ;If not zero, jump to print function
|
||||
jp find_partition_next
|
||||
|
||||
find_partition_next:
|
||||
LD A,10 ;New line
|
||||
CALL print_char
|
||||
LD A,13
|
||||
CALL print_char
|
||||
LD DE,16
|
||||
ADD IX,DE
|
||||
DJNZ find_partition_loop
|
||||
RET
|
||||
|
||||
find_partition_process: ; process table entry
|
||||
ld hl, [str_part_seek_1]
|
||||
call print_str ;print
|
||||
LD A,(IX+0x04) ;load type
|
||||
call print_a_hex
|
||||
LD A,(IX+0x04) ;load type
|
||||
CP 0x0E
|
||||
JR NZ, find_partition_next
|
||||
|
||||
ld hl, [str_part_seek_2]
|
||||
call print_str ;print
|
||||
ld hl, [str_part_seek_3]
|
||||
call print_str ;print
|
||||
|
||||
LD A,(IX+0x08) ;load start LBA
|
||||
LD (MEM_IDE_PARTITION+3),A
|
||||
LD A,(IX+0x09) ;load start LBA
|
||||
LD (MEM_IDE_PARTITION+2),A
|
||||
LD A,(IX+0x0A) ;load start LBA
|
||||
LD (MEM_IDE_PARTITION+1),A
|
||||
LD A,(IX+0x0B) ;load start LBA
|
||||
LD (MEM_IDE_PARTITION+0),A
|
||||
|
||||
LD A,(MEM_IDE_PARTITION+3)
|
||||
call print_a_hex
|
||||
LD A,(MEM_IDE_PARTITION+2)
|
||||
call print_a_hex
|
||||
LD A,(MEM_IDE_PARTITION+1)
|
||||
call print_a_hex
|
||||
LD A,(MEM_IDE_PARTITION+0)
|
||||
call print_a_hex
|
||||
ld hl, [str_part_seek_4]
|
||||
call print_str ;print
|
||||
LD A,(IX+0x0C) ;load count LBA
|
||||
call print_a_hex
|
||||
LD A,(IX+0x0D) ;load count LBA
|
||||
call print_a_hex
|
||||
LD A,(IX+0x0E) ;load count LBA
|
||||
call print_a_hex
|
||||
LD A,(IX+0x0F) ;load count LBA
|
||||
call print_a_hex
|
||||
LD A,10 ;New line
|
||||
CALL print_char
|
||||
LD A,13
|
||||
CALL print_char
|
||||
RET
|
||||
|
||||
str_part_seek_1:
|
||||
db "- Type: 0x",0
|
||||
str_part_seek_2:
|
||||
db " State: ",0
|
||||
str_part_seek_3:
|
||||
db " LBA: 0x",0
|
||||
str_part_seek_4:
|
||||
db " Len: 0x",0
|
||||
str_sum:
|
||||
db "------------",10,13,0
|
||||
str_files:
|
||||
db " Files",10,13,0
|
||||
|
||||
.include "include/fat16.s"
|
||||
4564
OperatingSystem/view/include/basic.s
Normal file
4564
OperatingSystem/view/include/basic.s
Normal file
File diff suppressed because it is too large
Load Diff
1
OperatingSystem/view/include/extern_symbols.s
Symbolic link
1
OperatingSystem/view/include/extern_symbols.s
Symbolic link
@@ -0,0 +1 @@
|
||||
../../monitor_v2/zout/symbols.s
|
||||
5
OperatingSystem/view/properties.env
Normal file
5
OperatingSystem/view/properties.env
Normal file
@@ -0,0 +1,5 @@
|
||||
export OPT_GEN_SYMBOLTABLE=0
|
||||
export OPT_GEN_MONFILE=1
|
||||
export OPT_GEN_OBJFILE=1
|
||||
export OPT_WRITEROM=0
|
||||
export FILENAME=test
|
||||
135
OperatingSystem/view/test.asm
Normal file
135
OperatingSystem/view/test.asm
Normal file
@@ -0,0 +1,135 @@
|
||||
.include "extern_symbols.s" ;include monitor symbols.
|
||||
START_ADDR .EQU 0x8000
|
||||
|
||||
|
||||
org START_ADDR
|
||||
com_header:
|
||||
jp com_prg
|
||||
db 0x00
|
||||
dw 0x00, 0x00, 0x00 ;always 0
|
||||
dw [START_ADDR] ;start addr
|
||||
dw [_eof] ;end of file
|
||||
dw [_eof - START_ADDR] ;length
|
||||
dc 48,0x00
|
||||
|
||||
com_prg:
|
||||
ld hl,[var_input] ;find end of command name
|
||||
ld bc,80
|
||||
ld a,' '
|
||||
cpir
|
||||
ld bc,80
|
||||
ld a,' '
|
||||
cpir
|
||||
push hl
|
||||
|
||||
pop hl
|
||||
;HL now has pointer to file name
|
||||
ex de,hl
|
||||
call fat_openfile ;find file
|
||||
or a
|
||||
jp nz, _com_prg_fail ;if not found, exit
|
||||
;prepare 32bit counter
|
||||
xor a
|
||||
ld (var_scratch), a
|
||||
ld (var_scratch+1), a
|
||||
ld (var_scratch+2), a
|
||||
ld (var_scratch+3), a
|
||||
|
||||
;printloop
|
||||
_com_prg_loop: ;main loop, load sector
|
||||
ld de,[MEM_IDE_BUFFER]
|
||||
call fat_readfilesec ;read sector
|
||||
push af
|
||||
ld hl, [_com_prg_fail_str_header]
|
||||
call print_str ;print header
|
||||
ld hl, [MEM_IDE_BUFFER]
|
||||
ld de, 512 ; set sector byte counter
|
||||
ld (var_scratch+4),de
|
||||
_com_prg_loop_row:
|
||||
call print_newLine
|
||||
ld a, (var_scratch+3) ;print offset
|
||||
call print_a_hex
|
||||
ld a, (var_scratch+2)
|
||||
call print_a_hex
|
||||
ld a, (var_scratch+1)
|
||||
call print_a_hex
|
||||
ld a, (var_scratch)
|
||||
call print_a_hex
|
||||
ld a, ' '
|
||||
call print_char
|
||||
ld a, '|'
|
||||
call print_char
|
||||
ld a, ' '
|
||||
call print_char
|
||||
ld a,(var_scratch) ;increment total byte counter
|
||||
add 16
|
||||
ld (var_scratch),a
|
||||
ld a,(var_scratch+1) ; byte 1
|
||||
adc 0
|
||||
ld (var_scratch+1),a
|
||||
ld a,(var_scratch+2) ; byte 2
|
||||
adc 0
|
||||
ld (var_scratch+2),a
|
||||
ld a,(var_scratch+3) ; byte 3
|
||||
adc 0
|
||||
ld (var_scratch+3),a
|
||||
;now start printing data (512 bytes)
|
||||
ld b, 16 ; bytes per column
|
||||
push hl
|
||||
_com_prg_loop_column:
|
||||
ld a, (hl) ;print value
|
||||
call print_a_hex
|
||||
ld a, ' ' ;print seperator
|
||||
call print_char
|
||||
inc hl ;increment current byte pointer
|
||||
ld de,(var_scratch+4) ;decrement sector byte counter
|
||||
dec de
|
||||
ld (var_scratch+4),de
|
||||
djnz _com_prg_loop_column ;loop 16 times
|
||||
ld a, '|'
|
||||
call print_char
|
||||
ld a, ' '
|
||||
call print_char
|
||||
pop hl
|
||||
ld b, 16 ; bytes per column
|
||||
_com_prg_loop_column_ascii:
|
||||
ld a, (hl)
|
||||
inc hl
|
||||
cp 32
|
||||
jp c, _com_prg_loop_column_ascii_none ;if less than 32, it is not a char
|
||||
cp 127
|
||||
jp nc, _com_prg_loop_column_ascii_none ;if greater or equal than 128, it is not a char
|
||||
call print_char
|
||||
jr _com_prg_loop_column_ascii_le
|
||||
_com_prg_loop_column_ascii_none:
|
||||
ld a,'.'
|
||||
call print_char
|
||||
_com_prg_loop_column_ascii_le:
|
||||
djnz _com_prg_loop_column_ascii
|
||||
ld a, ' '
|
||||
call print_char
|
||||
ld a, '|'
|
||||
call print_char
|
||||
;next row:
|
||||
ld a,d ;if sector byte counter is not 0
|
||||
or e
|
||||
jp nz, _com_prg_loop_row ;next row
|
||||
;else read next sector or exit
|
||||
pop af ;if status from sector read
|
||||
or a
|
||||
jp z, _com_prg_loop ;sector available
|
||||
;else exit
|
||||
call print_newLine
|
||||
ret
|
||||
|
||||
_com_prg_fail:
|
||||
ld hl,[_fat_exec_notfound]
|
||||
call print_str
|
||||
ret
|
||||
|
||||
|
||||
_com_prg_fail_str_header:
|
||||
db 10,13,'OFFSET | 0 1 2 3 4 5 6 7 8 9 A B C D E F | ASCII',0
|
||||
prg_end:
|
||||
|
||||
_eof:
|
||||
BIN
OperatingSystem/view/zout/HELLORD.COM
Normal file
BIN
OperatingSystem/view/zout/HELLORD.COM
Normal file
Binary file not shown.
BIN
OperatingSystem/view/zout/test.bin
Normal file
BIN
OperatingSystem/view/zout/test.bin
Normal file
Binary file not shown.
24
OperatingSystem/view/zout/test.hex
Normal file
24
OperatingSystem/view/zout/test.hex
Normal file
@@ -0,0 +1,24 @@
|
||||
:10800000C340800000000000000000806D816D0111
|
||||
:108010000000000000000000000000000000000060
|
||||
:108020000000000000000000000000000000000050
|
||||
:108030000000000000000000000000000000000040
|
||||
:10804000217B410150003E20EDB10150003E20ED6A
|
||||
:10805000B1E5E1EBCDDD21B7C22181AF320B413279
|
||||
:108060000C41320D41320E4111B642CDB021F52105
|
||||
:108070002881CDEA0021B642110002ED530F41CD17
|
||||
:10808000FC003A0E41CD12013A0D41CD12013A0CDD
|
||||
:1080900041CD12013A0B41CD12013E20CDE2003E0E
|
||||
:1080A0007CCDE2003E20CDE2003A0B41C610320BFF
|
||||
:1080B000413A0C41CE00320C413A0D41CE00320D16
|
||||
:1080C000413A0E41CE00320E410610E57ECD12013E
|
||||
:1080D0003E20CDE20023ED5B0F411BED530F41101D
|
||||
:1080E000EBCDE2003E7CCDE2003E20CDE200E10699
|
||||
:1080F000107E23FE20DA0281FE7FD20281CDE200D3
|
||||
:1081000018053E2ECDE20010E83E20CDE2003E7C78
|
||||
:10811000CDE2007AB3C27F80F1B7CA6880CDFC009F
|
||||
:10812000C9211226CDEA00C90A0D4F4646534554CF
|
||||
:108130002020207C2030202031202032202033209D
|
||||
:1081400020342020352020362020372020382020C1
|
||||
:108150003920204120204220204320204420204557
|
||||
:0D81600020204620207C2041534349490047
|
||||
:00000001FF
|
||||
1309
OperatingSystem/view/zout/test.lst
Normal file
1309
OperatingSystem/view/zout/test.lst
Normal file
File diff suppressed because it is too large
Load Diff
23
OperatingSystem/view/zout/test.mon
Normal file
23
OperatingSystem/view/zout/test.mon
Normal file
@@ -0,0 +1,23 @@
|
||||
!8000 C3 40 80 00 00 00 00 00 00 00 00 80 6D 81 6D 01
|
||||
!8010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
!8040 21 7B 41 01 50 00 3E 20 ED B1 01 50 00 3E 20 ED
|
||||
!8050 B1 E5 E1 EB CD DD 21 B7 C2 21 81 AF 32 0B 41 32
|
||||
!8060 0C 41 32 0D 41 32 0E 41 11 B6 42 CD B0 21 F5 21
|
||||
!8070 28 81 CD EA 00 21 B6 42 11 00 02 ED 53 0F 41 CD
|
||||
!8080 FC 00 3A 0E 41 CD 12 01 3A 0D 41 CD 12 01 3A 0C
|
||||
!8090 41 CD 12 01 3A 0B 41 CD 12 01 3E 20 CD E2 00 3E
|
||||
!80A0 7C CD E2 00 3E 20 CD E2 00 3A 0B 41 C6 10 32 0B
|
||||
!80B0 41 3A 0C 41 CE 00 32 0C 41 3A 0D 41 CE 00 32 0D
|
||||
!80C0 41 3A 0E 41 CE 00 32 0E 41 06 10 E5 7E CD 12 01
|
||||
!80D0 3E 20 CD E2 00 23 ED 5B 0F 41 1B ED 53 0F 41 10
|
||||
!80E0 EB CD E2 00 3E 7C CD E2 00 3E 20 CD E2 00 E1 06
|
||||
!80F0 10 7E 23 FE 20 DA 02 81 FE 7F D2 02 81 CD E2 00
|
||||
!8100 18 05 3E 2E CD E2 00 10 E8 3E 20 CD E2 00 3E 7C
|
||||
!8110 CD E2 00 7A B3 C2 7F 80 F1 B7 CA 68 80 CD FC 00
|
||||
!8120 C9 21 12 26 CD EA 00 C9 0A 0D 4F 46 46 53 45 54
|
||||
!8130 20 20 20 7C 20 30 20 20 31 20 20 32 20 20 33 20
|
||||
!8140 20 34 20 20 35 20 20 36 20 20 37 20 20 38 20 20
|
||||
!8150 39 20 20 41 20 20 42 20 20 43 20 20 44 20 20 45
|
||||
!8160 20 20 46 20 20 7C 20 41 53 43 49 49 00
|
||||
Reference in New Issue
Block a user