ASL00344B_ISWL_CI_V2.0_ERS_Sep75 ASL00344B ISWL CI V2.0 ERS Sep75
ASL00344B_ISWL_CI_V2.0_ERS_Sep75 ASL00344B_ISWL_CI_V2.0_ERS_Sep75
User Manual: ASL00344B_ISWL_CI_V2.0_ERS_Sep75
Open the PDF directly: View PDF .
Page Count: 38
Download | |
Open PDF In Browser | View PDF |
NC~/COC 1 ADVANCED SYSTEMS LABORATORV OC. No. 09/01175 IPL-Software Engineering SYstelll RECORD of REVISIONS REVI B REVISION A {4/28I7S} E~1m!i£.1 [jmmg;J ASLOO344 B {9/1I7S} NOTES ERS released. Titled "IPL ISWL iVl.0}". ERS comQletel\1 u~dated, ob:;oletioo all or", iQUo; Ii tl e cbangorl t-n "rVQC"P "~ITDI T"!Jl P J1i..t.i.o n· 5 • {V2.1J}". ADVANCED SYSTEMS LABORATORY - cveER 7D/IPL lSHL (ISHL/CII V2.0 ERS . »oc. No. ASLD03~~ Rev. B c· c A-2. 09/01175 A-l 09/01175 8. Z J!JJ£.:Cl FILE 9.~ •••• • • • • • • • • • • • • APPENOIX H - COMPILING SOURCE MODULES 1-1 10.0 A">~EHOIX G - OBJ~CT p~OGRAH LXECUTJON tu.l IPL ISWl RUNTIHE SUPPORT PROCEJURES 10.2 I~LT!ATION· . 2.0 APPLICABLE OOCUHt:NTS 2-1 10.4 3.0 APPc.NOI'( A 3-1 3-1 3-2 · · · · ·· ···· · . · • ·· ·· ·• • • • ·· · · · · · · · • ·· ·• ·· ·• ·• ·· .. -· ·· · · · .· · ·· ·· ·· ·· · · · · • · · · ·· ·• ·· ·· ·· ·· ·• · · ·· ·· ·· · · ·• ·· ·• · · ·· ..· · ··· ··· ··· ·•• ··· ·· • ·• '. · · ·· · ·· · • · ·• · • • • ·· ·· ·• • ·• · · •• ·· ·• ··· • ·• ·• · · ·· ·· ·· ·· · · · · ·· ·• ·· • · . · · · · · · · · • · · · ·· • · ··· ··· • ·· ·· .. • · · · ·· ·· ·· • · ... 1.0 INTii.ODUCTION . LANGUAGE. DISCRE;PANCIES 3.1 LAN(,UAGE Ll IFFERENCES 3.2 LA "WAGE RESTlUC TIONS ... a Ar'P£t;uIx i.I IPL HAC HIllE UR£AKOUT (REVISION BI It.l.1 C00e. PPOCELlURE It.l.2 CODE OLOCK It.l.3 cooe HOOULE It.l.1t COJc.: ATToType ... 1.;;.4 Oescriutor Type It.l.!>.5 Hochin~ Types In Expresslors It.l.6 HA CriIll~ S TOo £AO<.)UT (;OR~ECTIOI~:5 4.2.1 HACliltlE BIJEAKour CJIl~E(;TION5 ... 1 IPI. HACIHUE Bf.li..Ai{OUT " 4-1 It-l 1t-1 1t-2 1t-2 1t-3 1t-3 4-3 It-It It-It 1t-5 4-5 1t-6 It-6 4-7 1t-7 4-6 4-6 4-9 4-9 1t-9 4-10 It-lO It-l0 4-11 It-l1 It-11 4-12 .·4- 20 4-20 COMPILATION EIi~OP5 5.0 APP£NUIX C 5.1 PAS::. I E~~Oa (;0~f JEFINITrONS 5.2 PA::;S II L~"'.UR . CO or:: DEFINITION 5-1 5-1 5-5 6.0 A,.> Pt:. tlLl 1.< il IPl ISl/l r-:E::.ERVEO WORDS 0-1 A$.;t:HtlLY LAN';UAGl J!::SCkIPTIOti 7-1 7.0 A,>p~ilU IX i:. 8.0 APPLtlOIx f" - COMPILER OUTPUT 6.1· LISTltiG FILE 6-1 8-1 10.3 '10· riAL lLi Pt.NllIX II - HACHINE BREAKOUT t:XAMPlE ••• • • • • •• ~ 8-9 •••• . . .. .. .. .. .. . 10-1 10 -1 10-1 10- 3 10-3 11-1 2-1 1-1 IPL-SOFTWA~~ ENGINEERING SYSTEH 09/01/75 ISWL/CI V2.0 ERS REVI B APPLICAaL~ bv the ISHL Vi!!.O - LANGUAGE - I~L OISC~EPANCIES HA~HINE - IS~L ASS~HBLY RE~EkVED AI T~e fol low~ng Jocu~~nt references read~r's f~mll1arltv Is assumed. 7~/l~L related with which ~aterlal ISWL V2.0 Design Plan The fJllowln~ documents reference related ~aterlal whleh the reJ.Jr Is urq.:lct to r"ad b.:lf()re h~ atte.nptsto execute an IPL ISIIL obj .:let pr09ra~. So It w"' re Eng fn~e rl n9 User'S Handboo.k (Rev. KI - COMPILATION EkRORS - IPL the (Rev. lPL Instruction SiRlul3tor Vi!! ERS BR~AKOUT I(~OIOS !lORDS lPL LAHGUA'E DESCRIPTION Ti~e-Sharln9 ~'roc User's Hanual .. s~or-l1o;l1J.)rv Model Indeoendent GLlS ("ev. 0) - COHPILER OUTPUT - COHP1LING SOURCE MODULES - OBJECT .. H.. CH11U:: P~OG~AH EXECUTION B~&::AI(OUT &::XAMPLE The rea~er 15 ur9~d to read the appendices listed above from the top to the bottom. In the order NCR/CDC PRIVATE e DOCUHENTS ~2.~ E~S ISHL CY~F~ Other appendices are Ineluoect In the oocument to descrIbe the follo,lingl REVI The following document Is reQuIred. The purpose of thIs document Is to def Ine the IS!lL/CI VZ.O language to SUCh a degree that the language can be unierstood a~d used bv program~ers experlenC~d In the use of hIgh-level Dlock-structured languages. def lned 09/01175 ISo/Lie I V2.0 ERS l.a 1. iJ INTJ;:OOCCTION The lSHL/CI VZ.O language Is USWL/CC I .ERS and DV thIs document. ENGIN£EKING SYSTEH I~.-SOFIWA~E as NC~/CDC PRIVATE IPL-SOFIWA~E ENGIN~ERING 3-1 SYSTEM 09/01175 ISWL/CI V2.0 ERS REV' B --------------~---------------------------------~--~---------------3.a APPf.NDIX A - LANGUAGE DISCREPANCIES ------ ..----... -------.~-------------------~--..,----- ..-----------_.. _----- IPL-SOFrWA~i LNGINEERING SYSTEM I~~L/CI ERS v~.o REVI B .-.-------------~--------------------------------------------------3.0 AP~,NOIX A - LANGUAGE OIsc~rpANCIES 3.1 LANGU~GE DIFFLRiNCES - ~~al dot~ - S~t§ with 25b elements are supported. - Type cl·~cl This section descrlbdS tnl! differences and restrictions of the ISWL/CI V2.0 LanQuage frolll the ISHL V2.0 ERS and the "IPL Hachlne Breakout" aeflnltlon (see aopendlx entitled, "IPL MACHINE" BRt:AKOUT") • 09/01175 type Is not supported. id·Hltifier lists are supported In ·tvpe. and constant srcsT ions. - Sypstrln~s - B~9ir Cdn be passed as parameters. blocks with local declarations are suppor-ted. - The poipter tyoe test ooerator Is supported. - For statement Incremolnt and Cecrelllent Is sUP·ported. - The .eof function Is not supported. - No 1/0 of any kind Is supported. - Any feature requiring runtime support 15 not provided. This Incluces support of eXPOnentiation and full r~ntlme storaga manipulation. - Ihputwlll be the KRONOS.~ev. - Compiler usa~e, to the pr-oduct. limitations, and error list are peculiar - C character set. oreakout will be supported to the level defined bV the proposal of November" 1;, 197/0 by C. W. Schwar-cz, entitled "IPL Hdchln~ Rrelkout" (seE' appendix entitled, "lPL Machine Bre~kout"l. ~dcnln~ -. The wor:l "main" is an opt 10nJ I attribute of a procedure an~ Indicates the first procedure of a program to be executed when s6 r-eQulred bV the svstelll. - Constant axor"ssions; c::on onlv De of type Integer whdn used In eonstdnt Jeclaratlons. - No ~dra~~ter p.roceJures. - refe~ence~ to adaptaple allawl'd Is code CIPL) H3cnin~ built-In fu~ctlons with the exception of the ajoress function must be ~valuatable at compile time. - BLlIr type do<.!s not malign other fields 1"1 a record definition. The fielas followi"lg a flela of ~3rT type are 01 i~ne.1 to 3 Pyt,- boundary. - BSIT dnd BaYTE types are conformable only to themselves. - nfA~T - U0f~ - tyoe Is Ignored anJ varlabJes tre3ted as dutomdtlc variables. # of this ·tvpe are C3n onlv be USold In a machine statement. IF:) .ir,l IIJF6IT ar.~ not '>u:lear-ted for- ariju'llents which are C{)Il;:.t.;.;nts. - Pointers to procedures aren't imolemented. - Forward oointer allo"eJ. passing typeS are not - LJC<~lG d!lJ P~ULOG directives 3re - It - Th" B corr.ment to.1Qle must occur syntectlc:!lly first In the orogram Pefore any non-ISWL text In the source program. Syntox scanning Is left to right per source stlte~ent. NCR/COC FRI VAlE ~ ~~O~OG directive is used, 5tl..lt ern'-!nt in Th~ urOCC(lure. - l' ., .'''Jl.UC. dir.!ctivu .pnly. is le~lcal. then It must be not used, t~e the first following r~~lriCI,ons NC~/CJC P~IVATE IPL-SOFTWARE ENGIN~ERING SYSTEH 09/01175 e REVI !~~~~~:-~~!~-~~~------------------------------.;.-------------------3.0 APP~NOIX A - LANGUAGE DISCREPANCIES ~!~-~~~~~~~:-~:::~:~!:~~~----------~-------------------------------- IPL-'>OFIHAk':: LNGlIlEt.I of an cannot be of the form. ••• . J\ pr':h-e lur.! (Iec lar ed wit h the COOF.: at tribute can 1II.5l 11= CODEIIPL) Note that the code attribute Is not part of the procedure type. Tnus c"llers of a procedure need not know whether the procadure oeing called Is a code procedure or a normal procedure (un I ess. of course. the procedure reQuires machine-dependent paran:eters. 11= MODULE [[ ]1 [ l [1 )I HJOENO [<~Odul~_identlfler>l Examp "el "DULLE tCJOEI IPL)) mover; PPOC ~o~~ (VAL from, tol uAODRtSS) VA~ g~pr~e ~ AKRAY [0 •• 10) CF .aYTEI8,81; 4.1.2 COuE BLOCK Pi.OC(NIJ mOIl~; MODE,W mover; A code block is a BEGIN block that can contain ma~hlne statements. It can also contain SWL jeclarations or statements. The same restrictions defIned for code procedures applv to code .blocks. decl~rations'or Svntdxl replace the definitiOn of begIn statement. 1'= [[ END ~EGIN £xallule' nothlngl BEGIN [ COOEIIPLI TYPE trans_vector = AORAY [0 •• OffI1&11 OF 'address, anqus = Idescrh; VAil. trans I trans_vector, pu I - 'ild1ress, 1 FO~ I 0 •• 11116)1 1 1= 0 Tu ending 00 4.1.4 COJL ATT~lBUTE INHERITANCE The coje attrIbute follo~s normal SWL block structure. Thus any ;olo;]ule, proce1ur~, or block declar-ed within a code lIIodule, oroc~aur~,or block ~lsoim~licitIY has the COde att,.lbute. M;chin~ d~t~ types are D,.ovld~d to allo~ the use" of lIIachlne jepend~nt data within ~tructured types, variable declaration, end most other nIce p'laces. 11= I <"ddress_tyoe> M,cnl". tyocs are aec I ",r,J, ion s. av~llable In the lorm of built-In I type pu 1= - trans[l) FORENO EtlO nothing; A 4.1.3 COOl bVI~ ,yo~ Jefln~~ a tvpe that is allocated on a byte (eight l>;)u"ld"ry .. ,h] is an In,~!:r,;ll nUffDer of bytes lonil. The type a.fi~ition c~n sopclly ~ more rigarous alIgn~ent (2, 4, 0" 8 HOOUL~ l",') 0" Ie' ). A code mooule is a module tha, contains machine declarations "potentIally Incluolng code procedures. NCRICOC PRIVATE NCR/CDC PRIVATE IPL-SOFIWARE ENGlhEERING SYSTEM 09/01175 ISWL/CI V2.0 ERS . REVI B -------------------------------------------------------------------4.0 0 - IPL MACHINE A?P~IiOIX O~fAKOUT 4.1.5.1 Bytu Type -------------------------------------------------------------------- IPL-SOFTWARE ENGINEERING SYSTEH 09/01175 VZ.O ERS lS~L/CI REVI e -----------~---~---------------------------------------------------- 4.D APPFNOIX H - IPL MACHINE BREAKOUT It.l.5.4· Oeserlptar TYPe ---------------------------------------~-----~--------------------- 11.= 1 J 2 I ,. J 8 Two Oeserletor types f ... llworo ·b.:lo Jl'scriptors. E.. amplel TYPE one_worO = tOYTE(8,8I, decimal_string = .8YTE(25&I, half wore = '8YTECIt,4), character = 'OYTEel); c.Jes<.riotor_tvpe> "8 bytes. Word aligned .... "256 bytes. Byte aligned." "4 bytes. Hallword allgned." "1 byte. Byte aligned." 11= ~re DUE:iCI{H provided to oeflne the halfword and I tOESCRF The .:leser'lotor tYPes are eQuival ent to the follooelng record typ es. TYi'" A bit type defines a Ilxed lungth bit string aligned on a ooundary. lhe len<]th 01 a bit string Is a maXimum of &4. bit . An address type Is a full virtual address. It is def Ined as a record to allow the individual fields of a virtual address to be re f erenced. 11= .Xi I •• A variatl~ d~claratlon containing a register storage cless sDecificdtlon ooes' not. In fact. result In stora~e allocation. It m~rely dssoci~tes II vari~ble name and data tyee with a D~rticuldr register or class of reqlsters. The actual allocation of " h~rdware register to the, register variable is accol!IDIlshed with the L~C~~lG and FRE~REG m~chinestate~ents. A variable declared with the .FAST storage class resldes,ln II hardware register whenever possible. It Is loaded into a reglster'~henever tne variable is referenced and wll I stay in the register fl Ie until the register Is reQuireo for another purpose by the compiler. number Is provided in the register storage class then th.:ot partIcu!"r register will Iile assigned to the v3ri31j1~ .. h"n It Is lock(>d. If a suorange dol'-initio" Is orovioed as tne re~ister numDer then a register wh~~e number Is ~n ele~cnt of thdt suor3"ge wil I be assi~ned. Otnerwlse any ilvailublp. re',Jlster of the correct class (fX or .AI will be allocate'J. 11= Since a .FAST variable resides In the register file. the jats tYPi! of the variable must be such that 'the variable ,,111 flt In a regl;;ter. The tYDe of register to "hl~h a ~FAST variable Is assigned Is a lunctI~n of the varlabla's dat3 type. A direct pointer type or a 'AUD~E~S tYPi! wll I De assigned to an A re3Ister. While al I other .FAST variables will be assIgned to X registers. Slnce registers are not aodressable as virtual memory. a .FAST varIable can neither be made tne object of l pointer nor can it De D~SSeJ by reference. Tne .FAST stora1e class Is simIlar to the automatic storage class In that ".FAST variable Is initialized. and Is allocated UDon elaborCotion of the declaration. A fast varlaDIi! can onlY be locally referenced. NCR/CDC PRIVATE If a re~Ister so~ciflc"tion Since a re1i~ter variable never resides in virtual me"ory. It not be initialized, can not be made the object of a pointer. not (I(' passed by reference, and can' only' be locally ref~renc~u. Tne Jdta tYDe of the v3riaole must. of·ccurse. be sucn thgl the vJriablewill. In fact. fit in a register. ' Cdn can 4.1.f MA~HINf STATEMENTS M;chin~ sfat~ments dO not 101 low nor~al SW( syntax. A lBachlne :>t3tell1err Is 'all unlaoe'led state",ent that starts Icl th e~ exclamdtion :lI3rk,I'!'1 and enos In' a semi-colon 1';01. TI'ere a'-e two classes of /t.acn~ne statements. dlractlves Instructions. Oirectlves are defined to coord Irate ~llocuti)n of rolsou"ces and implicit code q"neratlon between pr~lrd~mer )nJ tne C3moller. Instructions result In ~e~arati~n of soeclflc ,~acnlpe InstructIons. ' and the the the NCR/CDC PRIVATE It-a IPI.-SOFTIIA~E. ENGINEERING SYSTEM I~L-SDFIWAQl ENGIN~tRING SYSTEM 09/01175 REVI I! ISIIL/CI V2.0 ERS 11= REIII B 1t.0 APPENOr. 8 - IPL ~ACHINE BREAKOUT 4.1.7.2 LOC~R~G anJ FRE~REG 1t.0 APPfNDIX B - IPL MACMINt OREAKOUT 1t.1.7 MACHINE STATEMENTS 09/01175 rsWL/CI V2.0 ERS {, } 11= (, } 11= I [ {, }) 11= I EX3mpiel VA;; xO [1X~I;G(OI] integer, d.Jt1, dat2 I [UAl EG xJ, ddt1lSI, indeX, bd02(11 •• 11t); F"EE~EG The LOCK REG and FKEEREG directives provide a mecharism for reservat"ion ano allocation 01 Physical registers. ThQ statements are the only method available for coordinating register reservation bet~een the programmer and the complier. LOCKPEG statement reserVdS registers and ensure~ that the does not use the locked regisfers for t~e generation of SHL code. The registers remain lOCked until the registers are freed with the F~EEREG directive or wnen the comoller encounters tn'e end of th" st"t~ment in "hlch th~ LDCKREG di rective occured, ~hlchever cO'lles first. If no register list is provided then all' the re"listers are locked. If insufficient registers are avail ahl .. to the comoil~r to Jenp.rate code In the accustomed mann~rt then the orogrammer must ensure th~t no SWL constructs (oth~r than machIne Instructions) reQuirin~ registers are to be cl)'I1PileJ. xO, index; The PROLOG an') EPILOG direct ives caUSe the generation of the corr,'ct SWL uralogue an.1 epilo'Jue. The PROLOG direct ive must uooeilr "IS thOe firs1 executable statement of a code procedure or coje olo~R il the procedure or block reouires the e~istence of the ~tar~arc SWL environment. The co~piler built-in functions are used 1n machine declarat10ns or long 35 the arquments can be evaluated at co~oile MaChine huilt-in functions can also be used In normal SilL ~achin~ 5tdtp~~nt~ ti"'.:!' " stat~ments. ~.1.f.3.1 The statement releases the re~Isters identifIed in the If no r~gi:iter list is pr~sent then all the are released. JFFSLT FLlNt;110NS tuncl ions st~tpw~nls ofts-t The a~ descrloed can be used 1n lIachine The functions return an soecilieJ base to a specified var1able. I~clujinq Iro~ ~ be low in~tructions. F~E~REG re31~ter I1st. re91~ters tlDFol«",rjUment>l, ]I. Inis fUllction r.!turns a SIgned integer parcel (t>co byte) otls.'t fro," the bas~ (default is the current 1nstructlon I,)C4110,,) tll tn~ Jr'lU'lle"lt. E'oth t"e arQument anj the base (1f or""snt) must n.;, eilher' o'-ocedure or label identifiers. 11=. LOCKREG [ 11= (, (, ]). NCR/cae PRI VATE NCR/CDC PRI VATE 4-10 IPL-SOFTWARE ENGINEERING SYSTEM ISIfL/CI V2.0 ERS REVI 13 -----~.------------------------------------------------------------4.0 APPEtlOlX 0 - IPL MACHINE. BREAKOUT 4.1.7.3.1 OFF~ET iPL-SOFTWA~L 09/01175 FUNCTIONS Tnl'5 function returns .. sijned integer byte offset frolll the base Caefualts to the start of the static area. constants area. ana stack frame for static varl~bles. constants, and automatic vdriaDles, respectlv~IY) to the argument. Th~ argum~nt must be either a v;lriaDlii r~f~r ... nce or a constant. ,Both the base and the ~rgument must De aligned tb byte boundaries. 1~~L/~I ENGINEERING SYSTEM 4.~ APPEN~IX d - IPL HA~HINE B~EAKOUT 4.1.f.4 Instructions --.------------~-------------------------------------- -------------. 4. 1. I • 5 .!l~>l.ll1i~r: ...J.Ldl!llll.2!l~ U!I:!E 'OFaITI<3rgum~nt>[. ]). IIBOOL, "CON;) IICOLL This function returns a signed Integer bit offset in a fashion luent Ica I .,Uh the .OFB function. Neither the base nor the argument. no~av~r. i. reQ~ired to be on a ovte boundary. DO Po 4.1.7.3.2 LE.N~lHFUNCTION~ 'EXTll exceotion descrio~d The functions variable. 09/01115 REVI B V2.0 ERS belo~ return the len~.h of Of fi e I l. R~.! /I" r~latlon ThIS function returns toe bit len9th of the variable. U.) 4.1.7 .3.3 ADO~ESS Th~ addreSs argument. FUNCTION function Ufl:iCR. n" TAil I/LlN returns the virtual ~ddress of the UX 0 chars 4.1.1.~.1 tlALPhA, IIALPI-1AFILL. '6IN. 'D'::C register. ~e~ist~r Olock. Numeric. Pago> table. Halntain~nc~ INSTRUCTION I. 'EQ, /lGE, UGT. ilL!:.. 'LT. 'NE. Suoscr 10 t eo. St"t .. re~i'iter. Unn:lrmal ilea. Register XO. Int~ger constant. 1.2.3.4.5.&.7.5. OPER~NO SYNTAX .ADOR «variable» 4.1.7.3.4 HEHORY FUNCTION The memory function allo~s an arbitrary hexideclmal Dattern to be represal'tad ·as a constant character string containing hex digits and blanks. The result Is left-allgnpd when assigned. BlankS in t~e cnaracter strlnq are ignored. 'HI (. ] • Q 1 <0\_ t .h I ~ ). < ,,_ V d r 1;; 0 Ie:> I I = A_.v or I ab Ie> <'' Examplel VA ..... halfl UIIYTE(4) 1= 8:1('00 FA BCDE'l; NCR/COC PRIVATE NCR/CDC FRIVA TE 4-12 IP~-SOFTHARE IP~-SJFTWARE ENGINEERING SYSTEM 09/01175 ISWL/CI V2.0 ERS REV. a ---------------------------------------------------------.---------4.0 APPENDIX 3 - IPL MACHINE BREAKOUT 4.1.7.5.2 INSTkUCTION DEFINITIONS UY NU~BER --------------------------------------------------------.----------- LNGrNEE~I~G 09/01175 ISWL/CI V2.0 ERS I-i;>te thdt the follo"ln9 il'structlon syntax does not foliO" norm,,1 SHL conv~ntlons In that the square brackets appearIng In this sectlol' are required even tnough they are not underlIned In tniS section. NCR/CDC PRI VA TE REV. B .------~------------------------------------------------------------ ~.O AP~ENJIX ~ - IPL HACHINE B~FAKDUT "4.1.7.5.2 INSTi\UCTION DeFINITIONS BY NUMBER --.-------------------~------------------------------- -------------£~E 4.1.7.5.2 INSTRUCTION UEFINITIONS BY NUMBER ~YSTE~ ... __N1! ... _ !:!~ t!L!t!Q-illI.!I...lEliSS ~Jl~ 1 LOAll.CHA~S XK. [A I , Xl, d 1 2 LOAU,(;HA~S Xk • [A I ,Q I 3 STORE,Ct'ARS Xk,[AI,Xl,dl 4 STO,{E,Ct'ARS Xk,[AI,Cl 5 LOAD Xk,[AI,Xl,dl 6 LOAD Xk,[AI,Ql 7 STO~E Xk'[AI,Xl,dl ~ STORE Xk, [A I , CI q LOAD,XO Xk, [AI ,Xl,dl 1U lOAO,XQ Xk, (A I 11 STORE,XO Xk,[AI,Xl,dl 12 STORE,XO XK, [A I 13 lOAu ,C HARS ,a I Xk,[ '?, Cl 14 lOAO,BDOl Xk,[AI,Cl 1<; STORE,aOOl Xk, [A I ,Q I 16 lOA;) Ak,(AI,Xl,d] 17 LOAD Ak,[A),Ql 1P STO~E Ak'[ AI ,Xl, dl 19 STO~E Ak,[AI, Ql 20 lOAJ,MULT (A I ,I( 1 21 STOKE.I'ULT ( 2."" A:)D XK,Xl ,a I AI ,I( I tlCR/COC PRIVATE 4-14 IPL-SOFTWARE ENGINEERING SYSTEM ISWL/CI V2.0 ERS 09/01/75 --------------------------------------------------------------~:~!-~ 4.0 APPENDIX 6 - IPL MACHINE BREAKOUT 4.1.1.5.2 IN~TRUCIION DEFINITIONS BY N~MUER -------------------------------------------------------------------E'-L-UQ..... tl!~_!Ull_~A1lElfR.s lLeEBAl:!IlS I~~-SOFTHAKL ~kGIN£E~ING SYSTEM ISII,-/';1 V2.0 El OOLOOP XI .XI(, a 24 MUll lCk, XI 4& BR AJ,AI<,a 25 DIV Xk, XI 47 B"- (IP,Xl4 ADO Ak, [41 ,a] 33 MULT,H Xk ,eX) ,Q] 55 ADO',P Ak, [XI 34 DIV, H Xk ,X) 5& ADO Ak, a 35 CoMP Xk t XI 57 COPY,H Xk,1 3& COMP,H Xk, XI 58 CUPY,H Xkd 37 BREQ XI,Xk,Q 59 COPY,EXTO Xk ,a 36 BRNE XI t Xk,Q bO COP Y ,X 0 IK 39 BRGT XI,Xk,Q 01 COPY,SIGN XI<, I 40 BRLE XI, Xk, Q &2 !.:OTATf'" Xk,X). (XI,d] 41 BREQ,H xl,Xk,a &3 SHIFT XI( , XI ,( Xl, d] 42 BRNE,H XJ dk, a 04 SHIFT,H Xk ,XI, [ Xl, d ] 43 BI?GT ,H XJ, XK,Q 0<; OR Xk,X) NCR/CJC PRIVATE ,a] NCR/CDC PRIVATE 4-16 I PL.-SOFTHA R': E NGINL.ERING S YST EH IPL-SOFJWARE ENGINEERING' SYSTEH __________________________________ IS>lL/CI V2.U ERS ~____ REV- e 09/01175 _ 09/01175 ISIfL/CI VZ.O ERS ---------------------------------------------~---------------~:~!-~ 4.0 APPENOIX B - IPL BREAKOUT ... 1.7.5.2 UtFINITLONS BY NUHBER .. ... ----------------------..----- ... ...-.. ------ ".0 APPI'1I01X iJ - IOL 'i4l;HWE. BREAKOUT - -----------------------".1.7.5.2 INST~UC'IO~ OlFINIIIO~S OY NUMSER ~ACHINE .-- ---- -- -- --- .. --- ..------ ---------------------------------------- I~SrRUCTrON ------------------------~ ~U.lU.. --~ ." =.~t.~~i!..r._ ll!~k_atla_~!~l~as 311 TRANSLATE Ok,DI '119 HOVE Ok",OI 90 N/A 91 Eorr Ok,OI 92 ~IOVE,NUH Ok,D) 93 N/A 9,. HOVE,field,fleld Ok,D) 95 AOO,fleld,f1eld Ok,OI 9& CALCSUS Ok,n) H CONV,R Xk,lCI 98 CONV Xk ,XI 99 ADO,R Xk,XI 0 SUB,R Xk. XI 10i AOD,R,UN Xk, XI 102 SUB,R.UN Xk .XI 103 HUU,R Xk, XI" 10,. DIV,R Xk,X) 1J5 AiJO,DR XI( ,XI lU6 SU!!,DR Xk, XI 107 HULI,OR Xk ,l(1 1~1I OIV.OR XI( ,X) lag 90 CON'I,,,elatlon Xk 140 STO~E.fleld Ok,XI 147 LOAD, f hid Xk.DJ 148 AOD,fielj Ok. X) 149 SUil.fleld Ok ,XI 150 AND Ok.D} 151 OR Ok ,01 . Xk.[XI ,0.] )(1.Xk NCR/COC PRIVATE NCR/C~C. PRIVATE It-20 IP~-~OFTWARE LPL-SOFIH4RE £NGINEERING SYSTEM 09/01175 ISHL/CI V~.O ERS REVI e -------------------------------------------------------------------- 4.0 APPlNOlX R - IPL MACHINE 8R~AKOUT ".1.7.5.2 INSIRUC1ION DEFINITIONS BY NUMBER E..EEL-ll!h_ UA~~_QY!l1fjEE~ ENGINlERING SYSTEM 09/01175 ISWL/G 1 V2." ERS REVI B ---------------------------------------------~------------- --------It.O A~Pc"~I~ B - IPL MAChINE BREAKOUT It.2.1 ~.lCriI;lt:: [j;.:t:AI{OUT I.OR"ECTIONS --------------------------------------------------~---- ------------dummy I #'3IT(2l, tag I #IHT<4l, I en'-lth I #3IT ('ll, offs~t ; HOyte(2,2l ~f.EAl:lD.s. 152 XOR Ok,OJ 153 NOT Ok, OJ 154 COPYtIHHEO Ok,a 155 COMP,It'MEO Dk,Q 156 AllO, IHHEO Ok ,a 157 LOAD Ak ,01 158 LOAD Xk,OI 159 STO'lE Xk,O RL CEr,.! - T"o IU'nctlons have. heen atJde"; .TOFS and fTOFBIT. These are an~ID~ouS to the functions 'O~S and 'OFBrT, witn th.? exceotion that the first· arsu'IIent Is a tyee identifi~r 01 a record definition and the seco~" ar9u~ent is 3 fi.?ld identifier 01 a field wIthIn the record. functlon~ nrOFfl ( , , 1 11= :1= n= <1:Jentlfler> - Tn" 10110,,1n'1 correcHon,;; pertain to the section entitled withIn the "IPL Hachln~ Breakout" "In~tructio"s"·. c.Joper~ji x. This sectIon describes corrections to the IPL Hachlne Breakout melllo (see sectIon entitled, "IPL MACHINE D~EAI(OUT" (REVISION - The lollowing QUill ifiers should be added' o~1U~ T IIIHM 81) • II~ lIS IGN ~.2.1 HACHINl U~EAKOUT H.JEC CO~RECTIONS II;ET J,K,o,Q 1= uop~r - All ch~r~ct~~t - 11= 2Hn (whpre 0 .i n .i 6) (Tne •• operator is the eXPOnentiation oper3tor) - All - - All 11= .BIT «bit_length>[,blt_olfset>ll 11= 11= Qualifiers sign. shoula be preceded of the uooer case string CHARS Oy the low"r c~sa string chars. by the should be occ"rr,mcesof the string B,LE should be replace::! by 'PG!:. • (from byt" bouno~ryl «bit_lenyth> + CR NC~/COC cas.e numb~r cccurr~nces r~plbc"d rpf"rencO! nU,lIber 5&, the ooeranCls should be Ak,XI. nUfTo"rs 57 through &1, the name Should be IlCW./COC PRIVATE IPL-SOFTWARE 09/01175 ISI/L/CI Vl.O ERS REVI I! -------------------------------------------------------------------- ~.O APPENDIX ~ - IPL HACHINF BREAKOUT .~.2.1 MACHINE BREAKOUT ~O~~ECIIONS '----------- .. 5-1 Ij>L-SOI' I HAQC: I::NGIN£ERING SYSTt::H SYSTEH E~GINEERING I~wL/~r v~.u 09/01175 ERS REV. .. e ------------------------------~----- ----------------.-~---------- 5.0 APP[NOrX C - COMPILATION ERRORS ------------~------------.-------~---------------------- t::IIlER. - Feir reference number 57, the Qua IH l.er shOuld be POSe - for rl!'e,.ence numoer 56, the QUa 11 fler should be NEG. for r"f erence numbe,. 52, the ooerdnds should be Ak, X I. This section contains the oeflnltlon of the comollatlon error outout by thi! passes of thi! ISWL/CI V2.0 complier. code~ - For refe,.e nce. numbe.,. 67, the oOl!rands Should be Xk,X I. For reference number 95, the name and. QualIfIers should be AUD,fleld,fleld. - For reference nu~be" reference - For exceptIon. 112, the name should be BRGE. number 113, the quail fler should - For reference number 1210" the qua 1111er should be SET -the oo.,,.al'lds should be Xk,AI. be tne err~r messa9~s generated by PASS I immedlatelv folio. the source lIne in ~hich the error occurred on the outout listIng (Sole seclion entItled, "CG!1PILEI{ OUTPUT'" and are' of the foll')wlr.g f orrnl and. •••••••••••• Thi! - For ref e,.ence numbe" 122, the operands should be Xk. table below Clssoc1ates e"ror .COdi!S ",ththelr .:Iefinltlon. lot31 "umoar of PASS r errors whiCh Is detected 15 written onto tne listin~ flip in the followl,.g form. In.! - for reference number 13&, the operands should be Xk,I,Q. x - For ref erence number 138, the ooerands should be Xk, Q. - For refe"'l!nc~ number 139, the name and Qual1tlers shoulo be ALGJQITHM,Chdrs, an:;! the ope,.anos should beAI ,Ak ,a. - feir reference riumber 1105, the qualIfIer does not possIble I soeclflcatlons. allo~ ~II For reference numbers 150 through 153, the ooerand fIeld. should be AI,Ak. reference numbers 1510 should be lower case Immed. fo~ through 15&, the Quallfle,. f~=JkIS' HEQE JfTECrEO 1 ~c'IJr Tvo~ or TVDe Identifier expected 2 I IdentifIer exoected . 5 I Er,.or In value punctuatIon ,. '.) - b 7 6 q 10 ' I · "XD.!Cled .,. i!l I.bel must be initialized t' .• CI~cificJti)n rt!ouir~d 1/l 111 Gel-'C! .. i~i! 1n EI~~er\t 1 :j.) lil 1-12 Idb~1 c~it bouno ,,1(ltl" 5P1!cifiC3tions f!x\!j size r"v.;1 i a :,.J:J;l tab I " Si.Jorung~ ~UJr~I'~@ ~~5t ~e 1ix~c ~ound tor cra~med Mu·ltiple/rll~J.;1 vQ~iant,· varl.:.ble boun:!, adaptable flelds w~st ~XCe".1S D~ NCR/CLlC PRIVATE IPL-SOFTWA~E IPL-SOFTIfARE ENGINEERING SYSTEM 09/01175 5-5 ENGINEERING SYSTEM 09/01175 Ii>iL/CI IIZ.O EPS :~~:!::-~~:~-:~~----------------------------------------------~~~!-! 5.0 APPENOIX C - COMPILATION ERFORS REV I B ------------------------.------------------------------------.------- 5.1 PASS I c.RROR CUUE DEfINITIONS "-------------------------------------------------------------------- -------------------------------------------------------.-----------mu~t be constant Invalid par~ntal type for relatIve pointer Invalid pointer ObJect type 1a& Integer eKpres~lon expected 187 Invalid st~lng length HI) String ObJect type must be CHAR iii 9 ObJect must b~ data typa Bil Valu'!· lisT does not m3tch declaratIon 191 T~~ value must be constant 19Z I Tag value not in selector range 1':13 I"Statlc initi3liz~tion by constants onlv 1910 I Value out 01 set range (U,.2~5) HS AssiJ~m~nt to externdl function Illegal 19& Tyoe of vdrlaole must be string 197 SUbstring len~th exce~ds source length B8 Assi,]nm"nt ·e xores'Sion. root UNICll member Invalid li:IIO:l "'ember type ln ZOl Error in constant - digit ~xoected ZOZ StrJny in constant contains invalid ~ellmeter (EOl) 203 .1 In·te:ler constant too large 205 Constant eKpectea E xoonent too I arge/out 0 fran ge 20& 207 SY>1bol too lonq lOS Radix no~ numeric 20~ I Ra1ix out of range Z1il I Inv •.lid radix 211 I Invalid 1iglt in radix 21J P6~itive Integer ~xpected Unknohn m~chlne type 219 ··220 Machine adPendant construct illegal 221 Machine tvpe cannot be obJect of pol~ter 2Z2 Value exc,,~ds reilister range for IPL 223 Milchine class variaoles cannot be PRONG or STATIC 2Z't I TYoe incompatible with register class 22~ I Re~ister class may not be Initialized Fiela ref .. rence to A~~G variable illeqal 22& Invalid declaration/statem .. nt without prolog 227 Type must oe UNION 2lel 229·· Conformity operator expected 230 I II e1 a I Qua 111 I er 231 IlIe~&1 OP"riltionc.ode 111e'jdl Instruction format 232 2.$3 III~:lal us.;, ot t .. o oU31iliers 23 .. .Varlable unk~o~n 16cally 2:fS V3ri~bl~ must bereli&ter ~I~ss 23.& Re1ister oescrLptur on loc~ only Re~istpr out of rQnge 2H 236 All re9i~t"rs locked (overflow) 163 ld .. 185 Z3 P;.t COUll T VYV Zl Z ~'m~S'.iI';P. . tt-xt" is the error mess·;~;" and ZZZ is the NLINE'· field on t"<> comOL I .. ,· listinq Ii Ie. (See section entitled. "Colllcller' .Outo"t",) Thd other inforl'liltlon· shoula be 19noreo. Ire vario.Js lo,...",s· of "messaoe text" ilre Ilste:! below. The col.)"s ·;ore nor IncluJe.) in ",.ess.lge text" and serve the functIon of ··1 1 ··ncS5l~~ Tdxt" s~oar~tor$. J~ A;':r.GS ~~~IST~~ LU~~EDT,qLE :.UT A ~VERFlOW NCR/CJC PR! VATE 5-6 IPL-SOFTWAQE ENGINEERING SYSTEM 09/01175 ISWL/CI V2.0 ERS REVI B -------------------------------------------------------------------5.0 C - CUMPILATION ERRORS AP~lNOIX 5.2 PASS II E~~nR COOE DEFiNITION (NGINEERING ISWL/CI V?O ERS SYSTE~ 09/01/75 .. ------~--.--------------------------------------------------~:~!-: 5.0 G - COMPILATION ER.ORS 5.2 II COuE OEFINITICN ------- .. ----------------------------------------------------------APP~NJI( PA$~ l~~O~ of nmdSSdg~ text" whiCh ar~ preceaed by t~o asterisks InOicate progr~mmer error or compiler. II YOU obtain one of tn~s" "rror mo!ssa;Jes, yoU snoulO peruse your proJram lor cro~r~mmlnq ~rrors on line ,ZZZ. If no. orogram~in9 Error Is do!tected. you shculd use the PSR 3.Jg I ES:; IN RTS ••• GENCxP - fUuC RlG UhAVAIL 1 ~ENLX? - FUNC NEG LOCK~D -I LNKNOW1 X~EF HAHE 1 GENCUP - fUNC KEG LOCKED -, (JUALlFIt.R INCGRRECT •• HAKEXAVAIL STACK FAILED 41 r.AKLXAVAIL FAILED ·1 L:Nt.:EFlllt:O CONST'-!UCr •• 1 OPE~AH) OVEoFLOH •• 1 NlG. V~LU~ FOR UNSI~NEO FIELD -I UUPLICATE LAOc.LS I IJHI'1;>LEHfljlED NOTEI IPL-50FTWAR~ The forms 01 "~t!ssaqe text" which are oreceded t-y ar indicat" corrpll"r fallure. If yoU obtain one of these error massages. yOU should use the PS~ Bug "eportIng m~cha"i~"1 Oescrlbed Ir the SES User's Handbook, The forrrs 3sterls~ NCR/CDC PRIVATE NCR/CDC PRIVATE IPL-SOFTHA~E IPL-SOFTWA~~ ENGIN£~~ING ENGINEERING SYSTEH 09/01175 ISWL/CI VZ.O ERS REVI e -------------------------------------------------------------------&.0 APPENDIX 0 • IPL ISol L RESERVElJ WORDS &-2 SYSTEM IS;fL/CI V2.0 EI E EN..! ."E NlU;::UI: "EP1LOG ·"EXECUTE EXIT ~XTUmAL "'FILE FC~ "V5T~ING "WEOF W'iEll IiMILE WtHLENO XDCL XOR X~EF HLlUEN!l HOOlh.;:: . ··OPE'l OR ORIF . PACK€O POP Il£X T P~OC PRO(;ENO ·P~OLOG PIJSH ""uUEUE REF DO TYPE U:HOIl U:-JPACKEJ U!lTIL . ·UOR VAL VAR HOJ "ON CP;;.A IE OESI~()Y LOOP LCO"t:ND ·HAIN ·H"LIi.>IlED /lOT RECl::NO RECOr101 .... /,;1 V2.3 EFS ~EV. e -------------------------------------------------------------------6.0 APPLNJIX F - COMPILER OUTPUT 8.1 LISIING FILf -----~------------------------------------------------- ------------T h£' "source f orm l l Is PG If the compilation does not abort, the comoller outputs data onto tHO files, a I1stln9 fIle and ootlon311v, an object file (s~e section entitled, "COMFILING SCURCE MODULES"). 8. 1 LillllHi..£.lJ..!: Tne listing Ille contal~s two text forms of the source Input file. Tne first form, the "source lorm", is an exact copy of the source input fila concatenated wltn InformatIon provided by the co.,pller. The second lorm, the "asserrol y form", Is an IPL assemoly langua'le lIsting of tne generated Object co:le far the source InolJt I i Ie and is produced when the C comment toggle Is selected. STAT AUTO PR NS 0 0 0 0 Ll 0 0 0 0 0 0 1 2 3 U 5 4 8 0 8 ,. 7 8 9 1Q 11 1Z 13 14 0 -0 0 6 u 1 0 U 0 ci 0 t 0 12 1'1 6 ' 10 B 18 1 1 1 1 1 1 1 1 0 0 1':: 1<: 12 12 1tl 1/\ 12 1t1 15 12 18 10 1<: 0 YY/H'IIUO I1H.HI1.SS 0 1 1 1 0 0 a 1 ISH L/IPL VERSION Z.O, LEVEL 0 MODULE ERSIEXAMPLE: VAR V1 I IrHEGE K, [STATIC) INT EGER 1= 2: V2 PROC [MAIN] ERSfP; VAR [STATIC) INTEGER I V3 It, V4 I INTEGER, V5, VO I ItHt:GER; IF 1/2 = V 3 TH EN V" 1= 6 t.LSE V5 1= 7 IFFNO; V3 I " V2; P~CC(tU ERSIJP; • = • HO~END ERS#£XAH~LE Examole 01 Llstlnq FIlel Given the 101l0 .. ln9 source lines to compile. MODULe: Ei 000U1,. C[l12uOOf> OOOOlS4'glouOOOOO O~OOOE no 0 ~ ~JU01C 600.:0007 o O~ J2 0 C&12QOOE OOU01A 000 D OOOO~r line :>.1.'1 ope definition" description is preceeded by the 'S,-CT/OFFS,-T --TEXT-- IPL OP REF E3Ch II~e aopearing unler this heaaer line in the section description is refprrid to a~ dn entry in the "section ddi"ltion" oeseription. The meaninq of eaCh of the Ile I ds In the neaj~r line lsi LIt.!.!.! S.Ul Same definition as the LINE field "so\Jrce form" .of tne listing fIle. OPO Used fJr ignoreJ. ~EC T IOFFSET compiler and Is the to be Jeflnesthe SES/IPL LINKER section and offset lin hexadecl11al bytes frolll the tieglnning of the section) int c wnlch the --TEXT-- fleld Is placed. The comoller uses five ~neu~onlc nam~s to classify the ~Iffer~nt sections It 'l<,neratesl C:i - COJe sect ion OS - oindln3 ~~ction SI - static (working storagel section LT - lit~r'il section HP - hcdO Section --TEXT-- H~xoJee im<.1 d~t3 ""ich loc~tlon specified by the IPL. JP IPL ~ss~~bler mneulllonic for the instruction in tne --TEXT-- flelJ. Tnls flel1 Is blan~ If Ine --T;:XT-- f i .. la is not an IPL Instruction. !t-'L ref"rencb tne NCR/CDC PRIVATE deougging 1~ --T~Xl-- Is Inserted at the SECT/OFFSET field. number for the ins true t i 0" in fialo. This field is blank if NCR/CuC FRI VAlE 8-7 IPL-SOFTHA~E f~GINEE~ING SYSTEM 09/01175 REIII B ISI4I./CI \/2.0 ERS -------------------------------------------------------------------8.0 APPENDIX F - COMPILER OUTPUT 8.1 LISTING FILE the --TEXT-- field Is not an IPL Instruction. I;;~L/CI \/2.0 a.o APPt~OIX F - COMPILER OUTPUT 8.1 LISTING FILE The entries which follow the header '.Jen~f·lc Other Items to note w1th;'n descr-Ipt;'on are the followlngl "so!ctlon O~OI. StCT IONl S':CTION2 LENGTHl Lt.tlGTH2 SEC uESCl SEC LJESC2 ATTRIBUTESl A TTRI 9U TE S2 OR"N Sl.r.r IOtm LENGTHII SEC LlESCN ATTIi.IBUTESN O~Lll Ti(ANSFEI\ rlAME xxx flfJ.Q "her-e XXXXXX = YYYYYY + 2 and YVY'YY = hexadecimal offset of the "section definition" entry which contained the forward r-eferenc9. ENTRY N lm~edlately precedes the entry In "section definition" description "hose --IEXT-- field contains the IPL Instruction which is the oDJect of the forwara reference. I f an entrll in the sectlbnde finl t Instruction an~ the text string. ·CS Is a hexildeclmal numoer! aooears this Instruction contains a backw~rd s"ctlon ana ZZlZZZ Is the ofts .. t In the reference Is made. I on SlS/!PL LINKER section. Oi'O ·LEUGTH H(>.:adeclmal byte S£CTIuN "lAP OF MODULE I modJle iJ.!ntifier i1~ntIfler th&1 was on the ~ojule NCR/CDC PRIVATE LT, ordinal number- for HP (see SECT/OFFSET length of section. Either CODE SEC! ION JINOING SECTION WORKING SECTION EXTENSIBLE COMMON SECTION .o/O~I(ING SECTION Ion Is for an + ZZZlZZ' (whare ZZlZZZ after the REF field, then reference to the code the code section to wnlch The "section summary" descrlolior oegins with a header line of s~ctlon Elfh"r CSt SS. ST, fielJ definition!. d~scrlpt One can determine thl IPL instructions which ar-e generated for a SO'Jrce line In tho! follo"lnq manner. The entry with a non-blank S.LN field aSSOCiates a grouo of "section definition" entries which are generated for source line. S.UI. The -jrouo of entrle'.i Incl ude Ihe entry wUh the non-olank S.LN field and all entries with blank S.LN fieldS which folio ... uo to the next ertry with a non-Dlank S.LN flelJ. All entries in this ,1rouP which are Inslructier entries (i.e., ones with a non-blank REF flelj! are the Instructions generatt!dtor the source line. where mOJ~le Id~ntltler Is the decl&ratlon statement. line ar-e of the following form: dellnltlon" II an aster-15k appears betweer the SECT/OFFSET and --TEXT-f lei d. the i.nstruction In the --TEXT-field conta Ins a forward reference to a "taryet location" In the code section. Another entry. EIHRY N. in the sectlon def 11'111 Ion descrlptlor Is ge"erated Oy the compi IeI' to resol ve the forward relertlnce. ENTRY N's SECT/OFFSET Held will bel CS XXXXXX 09/01175 REIII e E~S AITKldUTES S~S/IPL LINKER section attributes. READ. HRIT~. EXECUTE. BINDING, combination of these. T~'ANSFER XXX NAMe: Is EIther ora elthar blank orIs the procedure wnich haJ the main attribute. I~entifler The "olher ::iES/IPL LIUKER recora" descriptions are Inter-mixed "I th Ih;> ""t?ct i\ln def ini t ion"' OescrlL't1 ons, aOO"3r- to the right of tno! ~f.F fi][,O= ] [,U=
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2011:06:27 18:52:15-08:00 Modify Date : 2011:06:27 19:07:54-07:00 Metadata Date : 2011:06:27 19:07:54-07:00 Producer : Adobe Acrobat 9.43 Paper Capture Plug-in Format : application/pdf Document ID : uuid:9ee4205b-3d6a-42a1-81d2-9840b7633106 Instance ID : uuid:821bbf4d-ee92-417f-8e96-652d0891effe Page Layout : SinglePage Page Mode : UseNone Page Count : 38EXIF Metadata provided by EXIF.tools