Inside - SOURCES

From NitrOS-9
Revision as of 20:30, 26 May 2017 by NealC (Talk | contribs) (Show usage for PMAP, link to source, fix formatting in sample output)

Jump to: navigation, search

The original book presented type-in listings for an "alarm" utility and some utilities for system inspection. The sources for all but the alarm utility are part of the NitrOS-9 source tree and so are not reproduced here, but the usage notes are presented.


Alarm

Microware OS-9 Alar - INSIDE 00001 00002 00003 00004 00005 OOOC6 00007 00008 0 006 00009 0 0 15 0000 0 01E 0 001. 0 0012 0054 OOO3 0057 0 004 0 0015 0000 87 0 OO6 OOO17 D 0000 0 008 D 000A 00019 D 0 OD2 OOO20 OOO2 OOOD 4 00022 0 0 12 O. 0 0023 003 0 0 024 003 30 00025 005 10 0 0026 008 6C OOO27 0 0 1A CC O0028 OOD O OOO29 OO 20 O OOO3 O 0 003 OO 23 A9 OOO32 0 026 OOO33 00000 error (S) 00000 warning (s $0.026 00038 pro S00D2 00210 dat $00CA 00202 byt 0057 E D. MITIN 005 E F STIME INSIDE OS9 LEVEL, III SOURCES AllarIn AS Sebol er RS Version 0 0 0 0 0 O3/30/87 00:15:04 Page 00l OS 9 LEVEI, III ՈՅՈղ Alarm ttl INSIDE OS9 LEVEL, I alarm - test that sets alarm for next minute. causes beep from coco sound output for lis Secs. just for fun. Copyright l987 by Kevin Darling FSExit equ 6 FSTime equ S5 F $Alarm equ ŞE D. Tine equ S54 D. Min equ S57 CDO O26 I'mod len, name, Sill, $8l, entry, msize time rimbo 10 rmb 200 Insize equ g 6C672 ae fCS 'A1ar In' fcb l entry C4 leax time, u 3F15 OS 9 FŞTime D inc D. Time-D. Minx next minute (bad on 59) 000 1dd #$000] 3FE OS 9 F ŞAlarm Set alarm time 3F06 OS 9 F ŞEXit. F133 emod llen equ 女 end ) gram bytes generated a bytes allocated es used for symbols 0054 E. D.TIME 003 I, ENTRY OOE E FSALARM 0006 E F SEXIT 0.026 E LEN 00D 2 E MSI ZE 000D L, NAME OOOO D TIME


DMem

DMEM - dmem  <block> <offset> [<length>] ! dump
       dmem -<proc#> <offset> [<length>] ! dump

Dmem writes up to $1000 bytes to standard out, that it has copied over for you from other maps. If no length is given, it defaults to 256 ($100) bytes. Examples using data above:

dmem 4 0 ! dump          : dumps first 256 bytes of GrfDrv
dmem 2 1CA 1AE ! dump    : dumps CC3Go
dmem 0 0 1000 >/d1/file  : file contains lower system variables

dmem -3 0 20 ! dump      : dump first 32 shell data bytes
dmem -3 E000 5FA ! dump  : another way of dumping Shell
dmem -1 0 1000 >/d1/file : file contains lower system variables

Good use of PROC, PMAP, MDIR and DMEM depends on the data you get from each. Open a graphics window and recheck the MMAP. Kill a shell and notice the Status and Signal Codes. Look up the Status bits in your old DEFS file, signal from Error codes. Watch how modules get mapped in using PMAP and MDIR.

Figure out system data use by knocking out the blocks you know are in other use, with PMAP and MMAP.

The source for this Level 2 utility is dmem.asm

MMap

MMap displays a memory block map, displaying free memory. There is at least one more block free than is shown, since MMap is using one block for data.

Key: U = used, M = loaded module, . = no RAM, else FREE.

Example output (1Mbyte MC09 system):

{Term|02}/DD:mmap

     0 1 2 3 4 5 6 7 8 9 A B C D E F
  #  = = = = = = = = = = = = = = = =
 00  U U U U M U U U _ _ _ M _ _ _ _ 
 01  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 02  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 03  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  Block Size: 8192
 Free Blocks: 55
 KBytes Free: 440

The source for this Level 2 utility is mmap.asm

PMap

PMap - Process DAT Image Maps. The best. Shows blocks in use by processes. Lower is data, top is modules.

The example output (below) shows:

  • Block 09 is mapped into $6000-$7FFF in the system DAT map.
  • Shell in block 06 (see DIRM above!) is simply mapped into both procs 2 and 3 at $E000-$FEFF along with any other modules in that block.
  • PMap is in block 8, also at $E000-$FEFF.

 ID     01 23 45 67 89 AB CD EF   Program
----    -- -- -- -- -- -- -- --   ------------
  1     00 .. .. 09 01 02 03 3F   SYSTEM
  2     05 .. .. .. .. .. .. 06   Shell
  3     07 .. .. .. .. .. .. 06   Shell
  4     0A .. .. .. .. .. .. 08   PMap

The source for this Level 2 utility is pmam.asm

Proc

PROC - Like procs, but shows standard in/out devices: St = status byte, Sig = pending signal in hex and dec.

Example:

OS9: dirim >/w7 & (setp r 2 255 proc > /dl/test)
ID Print User Pty Age St Sig . . Module Std in/out
LSLGSL LSLSMTLLLLSS S SLS SLA SLLML LLLLLLSS S SSLS S LSLSeSeS LSLLLLGSAAL L0SSM S S LSeL LSLL LLLSSSJ SSS SLLSLLSL LSLSL LLSS LLSL LCSHL LLLLLMSS S LLLSLLLLLSLLLL LSSSLSLSL LSLS SSL LLSLSLL LSSSkLLSLSMSSL LSkkSL LSLMM TSLL LSL SLLTMSS SS SSLSLSLLLSLSL LSL LTkLLSSTLLLLSSSLSLSL LSL LSL LLTLLSAL LSLSLL LSSTL
2 l O 255 255 80 0 00 Shell KTem Xer 3 2 0 28 28 80 0 00 She {W. XWI 4. 2 O 1.28 28 OO 0 00 Di M Ker > W7 5 2 O 28 130 80 0 00 Shell Ko'erris X Termi 6 5 0 28 29 80 0 0 0 POC Ker > D

SOURCES Pri OC Microware OS-9 Assembler RS Version 01 - 00 - 00 PrOC -- INSIDE OS9 LEVEL II 0000 al Proc 00002 ttl INSIDE OS 00003 * Proc - L-II Procs for coco 3 00004 OOOO 5 * 0.6 feb 87 add std out also OOOO6 * 03 feb 87 : add path name display OOOO7 * 0l feb 87 : working version 00008 * Copyright l987 by Kevin Darling OOOO9 OOOC O088 D. PthDBT equ SO 088 OOOl 0003 PD. DEV equ SO3 OOO2 OOO4. VŞDESC equ SO4 0003 OOO4. 0 006 FSExit equ 6 O005 008 F $GPrDsc equ S8 OOO6 OOB F $CpyMem equ Şl B O007 008A I$Write equ S8A O008 008C I$Writlin equ S8C 00019 OOO20 OOO4 MSName equ 4 0 002 OOO22 OOOO İP ŞD) equ O OOO23 OOO P ŞPID equ 00024 OOO4 PSSP equ 4 OOO25 OOO6 PS Ta Sk equ 6 OOO26 OOO7 P$PagCnt equ 7 00027 OOO 8 PŞUser equ 8 OOO28 OOOA P$Prior equ SOA OOO29 OOOB PŞAge equ SOB 00030 OOOC P$ State equ SOC OOO3. OOO PŞIOQN equ SO 00032 OO P$PModul equ Sl OOO33 O09 P$ Signal equ S9 OOO34 OO30 PS Paith equ S30 OOO35 0040 P$DATImg equ S 40 OOO36 OOO37 OOOO 87CD028E mod len Innate OOO38 OOOD 50726FE3 ae fCS "Proc." OOO39 00. O9 fco 9 OOO40 0 004 0200 buffs iz set 52 00042 OOO43 D OOOO e rmb 2 OOOA 4 D 0002 Sysimg rmb 2 O004.5 D 0004 dating rmb 2 OOO46 D 0006 lineptr rimb 2 OOO47 D 0008 number rmb 3 OOO48 D 000B lead flag rmb OOO49 D OOOC path rmb 2 00050 D 0.00E pid rmb l Page 6-5-2 O3/30/87 007 04 Page 001 9 LEVEL II $ll i $8l , entry Insize pointer to syspro datimage dat img for copymem ________________ 0005 OOO52 00053 00054 00055 OOO56 00057 OOO58 00059 OOO60 0 006 0.0062 00063 00064 OOO65 OOO66 OOO67 OOO68 OOO69 000 70 OOO7 00072 OOO73 OOO 74 00075 OOO 76 OOO 77 000 78 OOO79 0 0080 O008 000 82 0 0083 O0084 OOO85 O0086 OOO87 OOO 88 OOO89 OOO 90 OOO 9 OOO92 00093 OOO94 OOO 95 OOO96 OOO 97 OOO 98 OOO 99 0000 OOO. OOO2 0003 O004 W OOOF 000 0050 00A0 02AO O4AO 0.568 OO2 002 OO48 OO37 OO 49 OO 49 O07 F 007 OO37 0080 O080 O082 O084 O086 O08A OO8E O09. OO 95 OO 99 009D 00A0 OOA 4 OOA8 OOAC OOAF OOB). O OB5 OOB8 00BA O OBD OOBF OOBF OOC O OC 4 OOC6 OOC8 OOCA OOCC OODO OOD3 OOD5 OOD7 20.494. 420 OD 2D2D2D2O OD ΟΕ 00 860. 970E 3O8DFFF5 O8E000 O3F8C 1025 004.5 3O8DFF'79 108Ε0037 O3F 8C O250.036 308DFFA O8E0O37 O3F 8C 860. 30C902AO O3F 8 2520 3O8840 9FO2 DEOO 30C850 9;FO 6 OCOE 27 OF 96.OE 30C90 CAO O3F8 25 EA 8D06 20E6 name hidr Out buffe syspr Stack msize heade hdre heade hdr Cr hd rle entry mair INSIDE OS9) LEVEL II SOURCES Pri OC rimbo l rmb 64 rmb 80 rmb buffs iz C rimbo buffS jiz rimbo 200 equ fcc f Cbo SOD equ *-header r2 f CC " --س- حاح س- مس - - - - - - - - - - س- - - - - مس - س- س fECb SOD n 2 equ *-header 2 Stu e lda #卫 Sta pid leax hidrcr pc lidy #卫 OS 9 IL $ Writin lb CS error leax header pc lidy hd rl en OS 9 ISWritlin bo CS error leax header 2, pC lidy #hd rl en 2 OS 9 I $W r i tlin lda #] leax > SySpr C u OS 9 FSGPrISC bcs Se O leax PSDATImgx StX Sysing ldu e lea X Out i u StX l inept r inc pid beq bye lda pid eax buffer , u OS 9 F SGP rIDS C bCS main bSr Output bra main Page 6-5-3 " ID Print User Pty Age header each proc desc Sys proc desc St Sig . . get system proc desc just for it's dat img next process , . Σ 255 - proc id destination buff get proc de SC . . loop if not one report proC data . . loop. exit Module ________________ 0 005 OOO6 OOO7 O008 OC109 OOO OO. OO2 OO3 OO .4 OO 5 O06 OO7 O Oi 8 OO 9 OO20 OO2 OO 22 OO23 0 024 OO25 OO26 OO 27 OO 28 OO29 OO 3 O OO3. O (). 32 OO33 OO 34 OO135 0036 OOl37 OO38 OO 39 OO 4 O 004 OO 42 OO 43 00]44 OO .45 OC, 46 OO 47 OO 48 OO 49 OO150 005). OO)52 0.053 OO154 O055 0.0156 OO)57 OO 58 OOD9 OOD9 00DA OODA OODD OOOD 00 DF OOE2 OOE4 OOE7 00EA OOEC OOEF OOE2 O OF 4 OOF 7 OOF9 OOFC O OFF OO O 04 O. O7 Ol OA O COD OO O3 O6 08 OE, OD OF Ol22 0.24 0.26 O29 O2B (2D 0.2D O.2F O3 0.33 0.35 0.35 O37 INSIDE OS9 LEVEI, II SOURCES Por OC bye 5F Crbo e O O3F06 OS 9 F ŞEXit. output A684 1da PŞID x 1705D bSr Outdecli A60 lda P ŞPID x 70.58 lbs r outdecl 70.33 lbs r space EC08 1dd PSUser x 170153 l bos r outdec 1701.2B lbs r space A60A lda PSPr i. C» r , x 7048 lbo S r outdecl A60 B lda PS Age, x 701 43 lbs r outdecl * da PST'ask , x task number * lbs r out hexl 70E lbs r space A 6 OC lda P ŞState x 7 C7 lbs r Outhex A 6889 lda P$ Signa] x 17 (3.5 lbs r Outdec A6 88.9 lda PS Signal x 17 O OB lbo Sir Couth exil Il 7 01 OA lbs r Space EC 883 0 I.dd PSPath, x DDOC std path

  • Print Prinary Module Name:
  • X=proc desc

3. 8840 leay 1Ε'20 t for DDO 4 Std AE881) dx C609 id:b D7 OF Stbo 7 OOA2 boS I

  • Print Std Input Device:

863C li da 8D21 bos ir Stdout 96 OD lda 9 7 OO Sta 863E 1da 8D.9 bSr prirtlin 9EO6 dX 860D lda PSDATImgX y d dating P $PModul , x #9 namid en printnam

  1. "く device

path +l path #"> die vice linept r SOD Page 6-5-4 process id parent's id user id priority State Signal signa) in hex save proc Std in path and pathl stdout D=dat image in proc desc X=offset in map now print whole line: ________________ O0.59 OO160 0016l O062 O063 O064 0065 O066 OO67 006.8 0069 007 O 007 OO.72 O073 OO.74 OOI75 OO176 0.077 0078 00179 O080 008 OO 82 O083 0084 O0185 O086 0087 OO 88 OO 89 O090 O09. 0092 0.093 O094 O095 O096 OOl.97 001.98 OO 99 00200 OO20 00202 OO2O3 00204 OO2O5 00206 002O7 OO2O8 OO 209 002.0 002. 00212 0.39 0.3B 0.13D 0.40 0.44 0.46 0.49 04D 0.4E 04E 0.50 0.53 0.55 0.57 0.59 05B. 05E 05E 060 06 0.63 0.66 0.67 0.67 0.6A 06C O16F 0.73 O76 O7A O7C 0.80 0.82 0.85 0.89 08B 08C 08D 0.8F 09 0.93 0.95 0.97 O98 O9A O9C 09E OAO OA4 INSIDE OS9 LEVEL III A784 DE00 30C850 O8E0050 8601 O3F8C 025FF8D 39 device DE00 7 OOE2 96.OC 26 O 8620 C605 O9EO6 device0 A7A0 5A 26FB 09F06 39 device2 33C80 DCO2 8E0O88 O8E0002 O3FB 1025FF 6.0 9EO 108E0040 DCO2 03Fl B 025FF5 CBO3 FO DCO2 O8E0002 O3FB SOURCES POC Sta 7 X ldu Ue Il eax out i u Ildy #80 lda #1 OS 9 I $Writin lbocs error rtS ldu e lbs r print lda path bne device2 lda #$20 ldb #5 lidy lineptır Sta Y+ de Cb bne device0 sty lineptir rts leau hdr , u 1dd SySimg dX :D. PithDBT lidy #2 OS 9 F$CpyMem lbocs error Il dx hd r ldy #64 1dd Sysing OS 9 F $CpyMem lbocs error ldb path Srbo lS rbo Ida b , u pshs a dbo path andb i 3 lda #$40 mul puls a addbo PD IDEV tfr d х 1dd sy Simg lidy #2 OS 9 F ŞCpyMem Page 6-5-5 ("く >") get path table offset: in system map from direct page ptr get path descriptor table: (X was D. PthDBT ptr) point to path block : four paths / sub-block As Insb block address then point to path within D=path descriptor address and get device table ptr

OO23 OO 214 OO 215 addr S 0.026 OO2.7 0 028 OO29 0 0 220 O022 OO 222 OO223 00224 OO225 O0226 00227 00228 00229 OO23 O OO23. 00232 OO233 OO234 00235 0 0236 OO237 OO238 00239 OO 24 O 0 024 0.0242 00243 0.0244 OO245 00246 OO247 0024.8 O0249 OO250 OO251 0.0252 00253 OO254 OO255 OO 256 OO257 OO258 OO 259 00260 0026. OO262 00263 00264 00265 01A7 01 AB OAD 01 AF OBO 0B2 OB6 OB9 01. BD OL BF' OC O1C3 OC5 OC7 OC9 OCB OCB OCD ODO OD2 OD 6 OD9 ODD ODF OE OE3 OE5 OE9 OLEC OEE OF2 OF 4 OF6 OF7 OF7 OF8 0 FA OFC OFIE 0200 0202 0204 0206 O2.08 020A INSIDE OS9 LEVEL II SOURCES Pro C 025FF2F lb CS error 9EO lldx hd r X=device table entry Sys C604 ldb VSDESC but we want it's desc ptr 3A abx DCO2 1dd Sysing O8E0002 lidy #2 O3 FIB OS9 F $CpyMem 1025FFD 1bCS er r Or 9EO 1dx hdir then get desc address: ΓΟΕ 00 1 du le DCO2 did sy Simg DD 04 std dati mg C605 do #5 D7 OF Stb namen 2000 bra printnam and get device name

  • Find and Print a Module Name : * X=mod offset U=data area, dat img =ptr

34 40 33C80 DC04 O8E0OOA O3FIB 1025FEFD EC44 DEO 6 308B DCO4 08E0O28 03Fl B 3540 1025FEE8 340 9EO6 5F 5C A680 2AFB C28 24ll 847F A7F D OF 24.09 8620 printnar name 3 name 4 poshS leau dd lidy OS 9 libcs I.dd ldu lea X lidd Ildy OS 9 pulS lb CS pshs 1 dx Cl rbo incb lda bpl Cmpb bCC anda Sta cmpb bo CC lda Ա hdir, u dati mq #10 F $CpyMem er Or MŞİName u linept r d x dati mg #40 F ŞCpyMem Εe Y O Ο Ο. X linept r Xname3 #40 names S7 F -l X naml en name 5 #$20 Page 6-5-6 destination proc dating ptr Y=length get header get name offset from header move nare to output line X=offset in map to name max Char len get name B is length fix it up, then ________________ INSDE OS9 SVEL III SOURCES PrOC 00266 020A A780 Sta 亚X十 OO267 O2 OC 5C incb 00268 02OD D. OF cmpb namlen 00269 O2 OF 25F9 bcs name 4 OO 270 O2 name 5 0027). O2 9FO6 StX lineptır 00272 023 3590 puls Xpc OO273 00274 AJA SSS S AASiq AqAq A AASASAi SiS MS qqSSAS AS AAASASS SAA SSSASA A AAAS A qSSqSqA SASAS ASS AAAA qqq qqq qq SSS A AS qSq qqS AAASASAAAS S SAS OO275 00276 02.5 ou thex 2 0.0277 02.5 3404 pshs b OO278 02.7 8D08 bSr hexil OO279 O29 35O2 pul. S a OO28O O2B Outhex OO28. O2. B BDO 4 bsr hexil 00282 O2D Space 0.0283 O2D 8620 lda #$20 OO284 O2F 2014 bora print 00285 0.0286 0221 hex 00287 O22 F89 tfr a, b 00288 O223 44 ls ra 00289 0.224. 44 1 S rab OO290 0225. 44 lSra OO29. 0226 44 lSrä OO292 O227 8D02 bSr. OutheX OO293 O229 F 98 tfr b a CO294 022B out hex OO 295 O 22B 84 OF and a SOF OO296 022D 80A cmpa $0A 0 9حس۔ OO297 O22F 25 O2 bCS ou tidig 00298 O23. 8B 07 adda is S07 A-F OO299 O233 outdig OO300 O233 8B30 adda di S30 make ASCII 0.030 0235 print OO3O2 0235 340 pshS x OO303 0237 9EO6 Il dx lineptır -------- OO304 O239 A780 Sta XOO305 O23B, 9FO6 StX lineptır OO306 O23D 3590 puls X r pc OO307 O0308 * - ܘܚܗ ܝܗ- -- -- ܝܚܝ -- -- -- -- ܚ- ܚܘ ܗ - -- S LLLSLSS LS LS LS S LSS SLSL LLLLS0SLSSLSSSSSLSSSSSSLSS TSLS S SLSLSL LSLSLSL LSL S LSL LSL LLMkSkL LLGSLLL LSLSL -- I W II - apy aar as A- rO0309 O23F outdecl equ * A=number OO3 O O23F F89 tfr a / b 003 024卫。4F cra OO32 0242 outdec edu D=number 0.033 O242 OFOR Cr lead flag 003 4. 0244, 340 pshS X 003.5 O246 9EOO 1 dx le OO 316 O248 3008 leax number x OO317 024A 6F84. clr y X OO38 024C 6FO Clr l х OO 39 024E 6FO2 Cr 2 x Page 6-5-7 ________________ NS DE OS9) LEVE II SOURCES PrOC OO 320 O250 hundred 0.032 O250 6C84 inc X OO322 O252 830.064 subd 8, 100 OO323 0255 24F9 bcc hundred 0 0324 O257 C3 OO64 addd lill 00 OO325 O25A ten OO326 025A 6C0. inc l, X OO327 O25C 830 OOA Subd 30 OO328 025F 24 F9 boCC ten OO329 026 C3000A addd #10 OO330 O264 5C incb O0331 O265 E702 Stb 2, X O0332 OO333 O267 8DOF bs r printled OO334 O269 8DOD bS r printled OO335 O26B BDO 5 bos ir printinur: 0 0 336 W 026D 17 FFAD lbs r Space OO337 O27 C 3590 puls x r pc 0.0338 O0339 0272 print num OO340 O272 A680 lda XOO34 0.274 8B2F adda S30-l Inake ascii 00342 0.276 20BD bo r a print OO343 00344 O278 prirtled OO345 O278 ODOB tSt. lead flag print leading zero? 003 46 027A 26F6 bne print num . . yeS OO 347 O27C E684 ldb X is it 2 ero? OO 348 027E OCOB in C lead flag OO349 0280 5A decb OC350 O281 26 EF bne print num . . no print zero's 0035. O283 OFOB Jaclr lead flag else surpress OO352 O 285 862O lda : S2O OO353 0287 300 leax li , x OO 3.54 O 2 8 9 2 O) AA bra print O0355 0 0356 O 28 B 05 EAF enod 0O357 028E len ecau 紫 0.0358 end Page 6-5-8 ________________ 00000 00004 SO28E SO 568 SO47B OOAO 0.4E OOB OO37 O250 O006 OF7 OO 50 O2B OOOO 00 OOO6 0235 02D 025A INSIDE OS9 LEVE, II SOURCES Pri OC error (S) Warning (S) 00654 program bytes generated Ol384 data bytes allocated Oll47 bytes used for symbols BUFFER 0200 S BUFFSIZ OOD9 L BYE DEVICE 0.5E L DEVICEO 0.167 L DEVICE2 F SCPYMEM 0006 E F SEXIT OO 8 E F SGPRD SC |HDIRLLEN 0037 E HIDRILEN 2 002 L HEADER HUNDRED 008A E ISWRITE 008C E IS WRITIN IINEPIR 0004 E MŞNAME OOBF L. MAIN NAME3 O2 OA L NAME4 O2 L NAME5 OUT 0.242 E OUTDEC O23F E OUTDEC OUTHEX 0215 L OUTHEX2 OODD L OUTPUT İP ŞD) 000 E P $IOQN OOO7 E PSPAGCNT PSPMODUL OOOA E PSPRIOR 009 E PSSIGNAL PSTASK O008 E PSUSER OOOC D PATH PRINT 0278 L. PRINTLED 0135 L. PRINTLIN SPACE 04AO D STACK 02D L, STDOUT TEN 0 000 D UMEM O004 E. VSDESC Page 6-5-9 O088 0080 OOO OO 49 000B OOOD OOOF 0233 000B OO3O 0 004 OOO3 01CB 0 002 D : PTHDBT ENTRY HDR HEADER2 ILEADFIL'AG MNAME NAMLEN OUTDIG PŞAGE P ŞPATH PŞSP PD DEV PRINTNAM SY SMG OOO4 O ODA 007 F 022. 028E O568 OOO8 022B OO 40 OOO OOOC OOOE 0272 02AO DAIMG ERROR HDRCR HEX LEN MSIZE NUMBER OUTHEX P ŞDATIMIG PSPID PŞSTATE PD PRINTNUM SY SPRC

SMap

SMAP - Show system page memory map. As above, except in pages. Important info adding drivers, starting many procs, etc.

# C .است se e r. : حسجمة ܚܒܝ ܚܒ O U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U 2
- - - - - - - - - - - - - - r - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 7 - - - - - - - - - - - - - - - - 8 U U U U U U U U U U U U U U 9 U U U U U U U U U U U U U U U U A U U U U U U U U U U U U U U U U B U U U U U U U U U U U U U U U U C U U U U U U U U U U U U U U U U D U U U U U U U U U U U U U U U U E U U U U U U U U U U U U U U U U F U U U U U U U U U U U U U U U
Number of Free Pages : 98
  Ram Free in KBytes: 24

Micro ware OS-9 Assembler RS Ver Sion 01 - 00.00 O3/30/87 OO 17 48 Page 001 SMap - INSIDE OS9 LEVEL II OOOO) al SMap 00002 tt] INSIDE OS9 LEVEL III 00003 * SMap - systen memory blockmap for cc3 OOOO4 * 08 feb 87 OOOO 5 * Copyright 1987 by Kevin Darling OOOO6 OOOO7 004E D. SysMiero equ SOO4E system men map 00008 OOOOC OOO6 FSExit equ 6 OOCO OOT B F $CpyMen, equ SE OOO. 008A I ŞWrite equ S8A OOO2 O08C I $Writln equ S8C O003 0 004 OOOO 87CDOD5 mod len, name, $ll, $8l, entry, msize OOO 5 OOOD 534D6FO BES fCS "SMap" OOO6 OO O1 fCb OOO.7 OOO 8, OOO bouff s ii z Set 256 OOO 9 OOO 20 D OOOO lead flag rnib l OOO 2 D OOO number r Imb 3. 00022 D 0004 free rībi OOO23 D OOOS OW rmb l 00024 D 0 OO6 Spc Ι. Πιο OOO25 D 0007 Out. r Imbo 3. OOO26 D OOOA maps. i2. rTbCy 2 OOO27 D OOOC blkS i 2. rimbo 2 OOO28 D OOOE bolkrum rimbo l OOO29 D OOOF bu ffe r rimbo bou ffs5 iz 0 0 0 3 0 D 0. CF Stack rimbo 20 O OOO 31 ID O'D7 Insize equ 琴 OOO32 00033 002 header 0.0034 002, 20202020 fcc O 1 2 3 4 5 6 7 8 9 A B C D E. F." OOC35 OG35 OD fcb SOD OOO36 0024 hdir en equ * - header OOO37 OO36 hdr 2 OOO38 0036 20232020 f CC * # = డా - - - - - R. - - - - జ: = = = " OOO 39 0 059 OD f Cb SOD OOO4 O 0 024 hdr en 2 equ *-hidr 2 OOO 4 OOO42 005A OOOOOOOO dat imig fd3bo 0 () OOO 43 OOO44 005E entry OOO 45 005E 17 O OF IlboS r C r tn OOO46 0 0 6 3 08D FFAD leax header pic OOO47 OO65 860 1da #] OOO 48 OO67 08E0O24. ldy hidr en OOO 49 O06E. O3F8C OS 9 I SWr itln OOO50 OO6E 308DFFC4 leax hidr 2, C O005. OO 72 08E0O24 lidy hidr en 2 Page 6-6-2 ________________ INSIDE OS9 LEVEL III SOURCES SMap 00052 007 6 1 03F8A OS 9 I ŞWrite 00053 0.0054 * Get SysMap Ptr : 00055 0079 308DFFDD leax dat img pC OOO 56 007D 1F10 tfr x , d 00057 007F 8E004 E dx #D. SysMem OOO58 O 082 1 08E0002 lidy #2 00059 O086 3440 pShs u 0 OO60 O088 334F leau buffer , u 0 006 O 08A 1 03F'1B OS 9 F ŞCpyMem 00062 008D 3540 pull S u OOO 63 0 08F 10:2500AC lbCS er r Or 00064 OOO65 * Get SysMap: 000 66 0.093 AE4F lidx buffer u get map address OOO67 0.095 08E000 ldy #bou ffS iz OOO68 OO 99 3440 pShS u 0.0069 009B 334F leau buffer , u OOO 70 009D 103Fl B OS 9 F $CpyMem OOO7 00A0 3540 pull S u 00072 00A2 1025.0099 lbCS er ror 000 73 000 74. 00A6 0F0E Cl r bolknum OOO75 OOA8 0F04 Clr free OOO76 * Std blk siz 00077 * sty mapsi z O0078 00AA 30 4F leax buffer ul 0 0079 0 0AC 8630 1da #$30 0 0080 OOAE 9705 Sta OW O008 OOBO 6FE2 Clr S Sa Ve COunt OOO 82 O OB2 loop 0 0083 00 B2 A6E4 lda S 000 84 00B4 85 OF bita # $ 0F OO 085 OOB6 2627 bne loop2 OO 086 0 0087 O OB8 340 pShS X O0088 OOBA 1700 B3 lbs r crtin OO 089 O OBD 3046 leax Spc u 000 90 O OBF 108E0 004 ldy #4 0 009. OOC3 96 05 lda Ι. Ο W. OOO 92 OOC5 83A cmpa f $3A 00093 OOC7 2604 bne oknum 000 94 OOC9 864 lda #$4] OO 095 OOCB 9705 Sta OW 0 0096 OOCD oknum 000 97 OOCD 97 07 Sta Out 00098 OOCF OCO 5 inc OW OOO 99 OOD1 CC 2020 lidd i S2020 0000 OOD 4 9.706 Sta SpC OOOl 00D6 DD08 std Out-l 0 002 OOD8 8601 Il da #1 0 003 OODA (O3F8A OS 9 I ŞW r. ite 0 004 OODD 350 pul. S X OOO 5 Page 6-6-3 ________________ OOO6 O007 OOO 8 OOO 9 OOO OOl 002 OO3 004 OO15 006 OO7 OO 8 OO 9 OO20 OO2 00I 22 0 023 () (24 OO 25 00l.26 Ο ΟΥ 27 OO28 OO29 0.030 OO3 O032 OO33 OOIL34 OO .35 OO3 6 OO37 OO38 OO 39 OO 40 004 OO 42 OOA 3 0044 OO 45 OO 46 O014.7 OOl. 48 OO 49 OOSO OOL 5. OO 52 OO153 OO 54 OOS5 OO 56 OO 57 OO158 OO 59 W OODF OODF OOE. 00E3 OOE5 OOE7 OOE9 OOE9 00EB OOED OOED OOEF O OF O OFI. OOF3 00F 5 OOF 7 OOF9 OOFE; O OFF O. O. OO 4 OO6 01.08 COC 01 0E O) () Ol2. O 6 OA OC OF O 2. 0.22 O 25, O27 012E. 0.2F O 3 O34 C36 0.37 O38 O39 O3C O3F O3E O3F O3F 042 OO.7 E68O 27 OA 2B 04 C655 2008 C62E 2004 C65F OC04 D7 (7 C62O D708 34 O 3047 O8EOOO2 860 O3F8A 35). O 6AE4 O 22FFA6 3502 8D60 8D5E 3O8DOO2C O8E0O.7 860 (3F 8A D604 4 Fo 17 (O6F 8D 49 3O8D0 02E O8EOO17 86 Ol O3F8A D604 AF 54 54 7 OO58 8D32 5F O3 FO6 20 4 E7 56D INSIDE OS9 LEVEI, II loop 2 not ram freer am Out bye e C. freemisg free en SOURCES SMap db x+ get next block beq fr e er am bmi rn Otra II ldb # U ram-in-uSe bra put Čb #甲。 nOt RAM bra put ldb #" not used inc free Stibo OԱ t 1db #$20 Stbo out-- psh S X leax Out u lldy #2 lda #卫 OS 9 I $W r i te puls x dec S lbh j. loop pul. S a bSr C rt r) bS r C r tr) leax freer(Sg, pc lidy # fr eel en lda #卫 OS 9 I ŞWir i te ldb free Cl r a l bo S r out de c: bS r C r tn leax ran TSg pc lidy #ran:len lda OS 9 ŞWir i te ldb free C r a lS rbo Il S r bo lbs r Outde C bS r C r tr C. robo OS 9 F SExit fcc " Number of Free Pages : " equi *-freemsg Page 6-6-4 ________________ 0060 006 0.062 O063 O064 0065 0.066 0.0167 OO68 OO69 OO 70 007. 00.72 OOL73 0.074 0.075 0.076 001 77 00178 0.0179 0080 008. 00182 0.083 O084 00185 0.0186 0087 0.088 O089 00:190 009 0092 0.093 O094 O095 0.096 O097 0.098 OO 99 00200 O020 002O2 00203 00204 00205 002O6 00207 00208 00209 002.0 002 00212 00213 20202052 3 412 860D 9707 3047 O8E000 860. O3F8C 3592 97.07 340 3047 O8E000 860. 103F8A 3590 304 0F00 6F84 6F01 6FO2 6C 84 83 (0.064 24F9 C30 064 6CO. 83 OOOA 24F9 C3000A 5C E702 8D08 8D06 A680 8B2F 20C4 ODOO 26F6 E684 OCOO 5A INSIDE OS9 LEVEL, II ramsg ramlen Crtin print Outde C hundred ten print num printled SOURCES SMap focc equ *-rammsg pShS ax lda ; SOD Sta Out leax out u ldy #卫 lda #1 OS 9 ŞWritin puls ax, pc Sta Out pshS x Il eax out , u ldy #] lda #1 OS 9 ISWrite puls x, pc equ 决赛 leax number , u cl r lead flag Clr X Cl r 1 : x C1r 2 х inc v X Subd #00 boCC hundred addd # 1 0 0 inc 1 : x Subd 10 bCC ten addd | 0 incb Stb 2, X bsr printled bsr printled lda Xh adda * S30-l bora print tSt leadflag bne print num ldb X inc lead flag decb Page 6-6-5 Ram Free in KBytes: " D=number make ascii print leading zero? . . yes is it zero? ________________ INSDE OS9 LEVEL, II SOURCES SMap 002 4 01 C8 26 EF bne print num . . no, print zero's 0 0215 OCA OFOO clr leadflag else SurpreSS 0026 OCC 8620 lda S2O 002.7 01CE 3001 leax l , x 0 028 ODO 20 B. bra print OO29 0 0 220 OLD2 F9F9F emod 0 0 22. OD5 len equ * 00222 end 0 0 0 0 0 error (s) 00003 warning (s) $OlD5 00469 program bytes generated $01D7 004.7l data bytes allocated $02D7 00727 bytes used for symbols 000E D BLKNUM 0 0 0C D BLYKSI 2 0 00F D RUFFER 0.00 S BUFFSZ 03E L BYE 0170. L., CRTN 004 E E D. SYSMIEM 005A L DATIMG 005E L ENTRY 03F L, ERROR O OB E ESCPYMEM O 006. E F SEXIT 0 004. D FREE 00:17 E FREFLEN 01:42 L FREEMSG 0 0 ED L FREERAM 0 036 L HDR2 0024 E HIDRILEN 0 024 E. HDRLEN2 002 L, HEADER 09E L. HUNDRED 008A E I SWRITE 008C E SWRITIN 0000 D LEADFLAG OD5 E LEN 00B2 L, LOOP 00DF L LOOP2 000A D MAPSIZ. 01.D7 E MSIZE OOOD L NAME OOE9 L, NOTRAM 000 D NUMBER 00CD L OKNUM O007 D OUT 0.94 E OUTDEC 0.83 L PRNT 01BF I, PRINTIED 01 B9 I, PRINTNUM 00F1 L PUT 00:17 E RAMLEN 059 L RAMMSG 0.005 D ROW OOO6 D SPC O OF D SACK 0A8 III, TEN