กลับไปหน้าบทความ

อ่าน 6 นาที

กอฟฟ์

ข้อกำหนด GOFF (Generalized Object File Format) ได้รับการพัฒนาสำหรับ ระบบปฏิบัติการ MVS ของ IBM เพื่อแทนที่ IBM OS/360 Object File Format เพื่อชดเชยจุดอ่อนในรูปแบบเก่า [ 1 ]

กอฟฟ์

ข้อกำหนดGOFF (Generalized Object File Format) ได้รับการพัฒนาสำหรับ ระบบปฏิบัติการMVS ของ IBM เพื่อแทนที่ IBM OS/360 Object File Formatเพื่อชดเชยจุดอ่อนในรูปแบบเก่า[ 1 ]

พื้นหลัง

รูปแบบไฟล์อ็อบเจ็กต์ IBM OS/360 ดั้งเดิมได้รับการพัฒนาขึ้นในปี 1964 สำหรับคอมพิวเตอร์เมนเฟรมIBM System/360 รุ่นใหม่ รูปแบบนี้ยังถูกใช้โดยผู้ผลิต เมนเฟรม แบบเสียบปลั๊กเข้ากันได้และแบบทำงานคล้ายกัน รวมถึงUnivac 90/60, 90/70 และ 90/80และ Fujitsu B2800 รูปแบบนี้ได้รับการขยายเพื่อเพิ่มระเบียนเชิงสัญลักษณ์และข้อมูลเพิ่มเติมเกี่ยวกับโมดูล รวมถึงการสนับสนุนสำหรับขั้นตอนและฟังก์ชันที่มีชื่อยาวกว่า 8 ตัวอักษร แม้ว่าสิ่งนี้จะช่วยได้ แต่ก็ยังไม่ให้ข้อมูลที่ได้รับการปรับปรุงซึ่งจำเป็นสำหรับภาษาการเขียนโปรแกรมที่ซับซ้อนกว่าในปัจจุบันและคุณสมบัติขั้นสูงกว่า เช่น อ็อบเจ็กต์ คุณสมบัติ และเมธอด การสนับสนุน Unicodeและเมธอดเสมือน

รูปแบบไฟล์ออบเจ็กต์ GOFF ได้รับการพัฒนาโดย IBM ประมาณปี 1995 เพื่อแก้ไขปัญหาเหล่านี้[ 2 ] การกล่าวถึงรูปแบบนี้ครั้งแรกสุดอยู่ในข้อมูลเบื้องต้นเกี่ยวกับแอสเซมเบลอร์ระดับสูงตัวใหม่[ 3 ] GOFF รองรับข้อมูลการดีบักแบบฝังตัวในรูปแบบข้อมูลที่เกี่ยวข้อง (ADATA) แต่ไม่รองรับเรคอร์ด SYM รุ่นเก่าที่สร้างโดยตัวเลือก TEST โปรดทราบว่ารูปแบบไฟล์ออบเจ็กต์ OS/360 ถูกแทนที่ด้วยรูปแบบ GOFF เท่านั้น ไม่ได้ถูกยกเลิก และยังคงใช้งานโดยแอสเซมเบลอร์และคอมไพเลอร์ภาษาที่ภาษานั้นสามารถทนต่อข้อจำกัดของรูปแบบเก่าได้

อนุสัญญา

บทความนี้จะใช้คำว่า "โมดูล" เพื่ออ้างถึงชื่อหรือสัญลักษณ์ที่เทียบเท่าใดๆ ที่ใช้เป็นตัวระบุสำหรับส่วนของโค้ดหรือข้อมูลที่อยู่นอกขอบเขตที่อ้างอิงถึง[]โมดูลอาจอ้างถึงซับรูทีน ฟังก์ชัน ข้อมูล Fortran Common หรือ Block Data อ็อบเจ็กต์หรือคลาส เมธอดหรือคุณสมบัติของอ็อบเจ็กต์หรือคลาส หรือรูทีนหรือตัวระบุที่มีชื่ออื่นๆ ที่อยู่นอกขอบเขตเฉพาะนั้นซึ่งอ้างอิงถึงชื่อภายนอก โปรดทราบว่าการใช้คำว่า "โมดูล" ในบทความนี้ใช้เพื่อให้เข้าใจหัวข้อได้ง่ายขึ้น แต่ไม่เหมือนกับความหมายที่ IBM ใช้คำว่า "โมดูล"

คำว่า "แอสเซมเบลอร์" หมายถึงโปรแกรมที่แปลงภาษาแอสเซมบลีเป็นรหัสเครื่องรวมถึง"การประกอบ"หมายถึงกระบวนการใช้โปรแกรมดังกล่าว และ"การคอมไพล์"หมายถึงกระบวนการใช้ " คอมไพเลอร์ " ซึ่งทำหน้าที่เดียวกันสำหรับภาษาโปรแกรมระดับสูง สำหรับบทความนี้ คำว่า "คอมไพล์" และ "คอมไพเลอร์" สามารถใช้แทนกันได้กับคำว่า "ประกอบ" และ "แอสเซมเบลอร์"

ตัวเลขที่ใช้ในบทความนี้แสดงในรูปแบบดังต่อไปนี้: เว้นแต่จะระบุว่าเป็นเลขฐานสิบหก (ฐาน 16) ตัวเลขทั้งหมดที่ใช้จะเป็นเลขฐานสิบ (ฐาน 10) เมื่อจำเป็นต้องแสดงตัวเลขในรูปแบบเลขฐานสิบหก จะใช้รูปแบบมาตรฐานของภาษาแอสเซมเบลอร์เมนเฟรม โดยใช้ตัวอักษร X ตัวใหญ่ นำหน้าตัวเลข แสดงตัวอักษรฐานสิบหกในตัวเลขด้วยตัวพิมพ์ใหญ่ และใส่เครื่องหมายอัญประกาศเดี่ยวครอบตัวเลข เช่น ตัวเลข 15deadbeef 16จะแสดงเป็น X'15DEADBEEF'

ในบทความนี้ "ไบต์" หมายถึง 8 บิต และเว้นแต่จะระบุไว้เป็นอย่างอื่น "ไบต์" กับ "อักขระ" คือสิ่งเดียวกัน อักขระในEBCDICก็มีขนาด 8 บิตเช่นกัน เมื่อโปรแกรมของผู้ใช้ใช้ชุดอักขระหลายไบต์ (เช่นยูนิโค้ด ) จะใช้สองไบต์ (หรือมากกว่า)

ข้อกำหนดและข้อจำกัด

รูปแบบนี้คล้ายกับรูปแบบไฟล์ออบเจ็กต์ OS/360 แต่เพิ่มข้อมูลเพิ่มเติมเพื่อใช้ในการสร้างแอปพลิเคชัน[ 4 ]

  • ไฟล์ GOFF อาจเป็นระเบียนที่มีความยาวคงที่หรือแปรผันได้
  • ระเบียน GOFF ต้องพอดีกับระเบียนเดียวของระบบไฟล์ พื้นฐานโดยสมบูรณ์ ไฟล์ GOFF ไม่ใช่ไฟล์ประเภทสตรีม
  • ระเบียนที่มีความยาวคงที่ต้องมีขนาด 80 ไบต์ ส่วนระเบียนที่มีความยาวแปรผันได้นั้น ขนาดขั้นต่ำคือ 56 ไบต์ ในกรณีของระเบียนที่มีความยาวคงที่ จะมีไบต์ที่ไม่ได้ใช้งานอยู่ท้ายระเบียน ไบต์เหล่านี้จะต้องถูกตั้งค่าเป็นเลขฐานสองศูนย์
  • โปรแกรมที่อ่าน (หรือเขียน) เรคอร์ด GOFF ไม่ควรตั้งสมมติฐานเกี่ยวกับรูปแบบภายในของเรคอร์ด ระบบปฏิบัติการนั้นถือว่าสามารถจัดเตรียมเรคอร์ดที่มีความยาวคงที่หรือแปรผันได้โดยที่โปรแกรมที่อ่านเรคอร์ดไม่จำเป็นต้องรับรู้ถึงการจัดการไฟล์ภายในของระบบปฏิบัติการ ความยาวของเรคอร์ดไม่ได้เป็นส่วนหนึ่งของตัวเรคอร์ดเอง
  • ค่าไบนารีจะถูกจัดเก็บใน รูปแบบ บิ๊กเอนเดียนเช่น ค่า 1 จะเป็น X'01' สำหรับค่า 8 บิต, X'0001' สำหรับค่า 16 บิต, X'00000001' สำหรับค่า 32 บิต และ X'0000000000000001' สำหรับค่า 64 บิต
  • บิตจะนับจากซ้ายไปขวา โดยบิตที่ 0 คือบิตซ้ายสุดในไบต์หรือเวิร์ด
  • ไฟล์ GOFF ที่ใช้งานบน ระบบUnixจำเป็นต้องมีระเบียนที่มีความยาวคงที่
  • สามารถบันทึกข้อมูลต่อเนื่องได้ในข้อมูลถัดไป ในกรณีที่บันทึกข้อมูลต่อเนื่อง จะต้องไม่มีบันทึกข้อมูลใดๆ คั่นอยู่ระหว่างบันทึกข้อมูลที่กำลังต่อเนื่องกับบันทึกข้อมูลต่อเนื่องนั้น
  • ไฟล์ออบเจ็กต์ GOFF เริ่มต้นด้วยเรคอร์ด HDR และสิ้นสุดด้วยเรคอร์ด END โดยเรคอร์ด END ควรระบุจำนวนเรคอร์ด GOFF (ไม่ใช่จำนวนเรคอร์ดจริง) ในไฟล์
  • คอมไพเลอร์หรือแอสเซมเบลอร์ของภาษาสามารถสร้างไฟล์ GOFF หลายไฟล์ในการคอมไพล์/แอสเซมบลีครั้งเดียวได้ แต่ไฟล์ GOFF แต่ละไฟล์ต้องแยกจากกัน หมายความว่า โมดูลหรือหน่วยการคอมไพล์ ซึ่งประกอบด้วยเรคอร์ด HDR, ESD, TXT และอื่นๆ ที่คั่นกลาง และจบด้วยเรคอร์ด END อาจตามด้วยหน่วยการคอมไพล์อื่นที่เริ่มต้นด้วย HDR และจบด้วย END เป็นต้น ตามความจำเป็น
  • ชื่อโมดูลและชื่อคลาสมีความไวต่อตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก โมดูลที่ชื่อว่า "exit" (ตามที่ใช้ใน ภาษา ซี ) ไม่จำเป็นต้องเหมือนกับ "EXIT" ที่ใช้ในภาษาฟอร์ทราน
  • ข้อกำหนดบางประการที่ใช้กับรูปแบบไฟล์ออบเจ็กต์ OS/360 จะถูกนำมาใช้กับรูปแบบไฟล์ออบเจ็กต์ GOFF ด้วย ซึ่งรวมถึง:
    • หากไม่ได้ระบุไว้เป็นอย่างอื่น อักขระทั้งหมดอยู่ใน ชุดอักขระ EBCDICยกเว้นชื่อภายนอกตามที่ระบุไว้ด้านล่าง
    • รายการ ESD (โปรแกรมหลัก, ซับรูทีน, ฟังก์ชัน, FORTRAN Common, เมธอด และคุณสมบัติในอ็อบเจ็กต์) ต้องมีการกำหนดหมายเลขเริ่มต้นที่ 1 และแต่ละรายการใหม่จะต้องมีหมายเลขถัดไปตามลำดับ โดยไม่มี 'ช่องว่าง' ในลำดับหมายเลข
    • ต้องมีการกำหนดรายการ ESD ก่อนที่ระเบียนอื่น (เช่น ระเบียน TXT หรือ RLD) จะอ้างอิงถึงรายการนั้น
    • แต่ละระเบียน ESD จะมีรายการ ESD เพียงรายการเดียวเท่านั้น (ซึ่งแตกต่างจากรูปแบบเดิมที่อนุญาตให้มีรายการ ESD ได้มากถึง 3 รายการในแต่ละระเบียน ESD)
    • บันทึก RLD (พจนานุกรมการย้ายถิ่นฐาน[ 5 ] ) อาจมีรายการตั้งแต่หนึ่งรายการขึ้นไป และบันทึก RLD อาจต่อเนื่องไปยังบันทึกถัดไป
    • เพื่อให้มั่นใจถึงความเข้ากันได้ในอนาคต ฟิลด์ที่ระบุว่า 'สงวนไว้' ควรตั้งค่าเป็นเลขฐานสองศูนย์
    • มาตรฐาน GOFF ไม่ได้กำหนดชุดอักขระที่ใช้สำหรับชื่อภายนอก แต่มีข้อกำหนดสำหรับไฟล์เพื่อระบุว่ากำลังใช้ชุดอักขระใด (เพื่อรองรับ ชื่อโมดูลแบบ Unicode ที่ใช้ชุดอักขระสองไบต์ ) อย่างไรก็ตาม ผลิตภัณฑ์ของ IBM บางอย่างอนุญาตให้ใช้อักขระสำหรับชื่อภายนอกและตัวระบุอื่นๆ ได้เฉพาะในช่วงที่จำกัด โดยทั่วไป (EBCDIC) จะเป็นค่าเลขฐานสิบหกตั้งแต่ X'41' ถึง X'FE' บวกกับอักขระเปลี่ยนตำแหน่งเข้าและออก คือ X'0F' และ X'0E' ตามลำดับ
  • รูปแบบใหม่นี้รองรับชื่อคลาส ซึ่งมีสองประเภท ได้แก่ ชื่อที่สงวนไว้และ ชื่อที่ผู้ใช้กำหนดหรือชื่อที่ไม่สงวนไว้ชื่อคลาสทุกชื่อมีความยาวสูงสุด 16 ตัวอักษร
  • ชื่อคลาสที่สงวนไว้ประกอบด้วยตัวอักษรตัวเดียว เครื่องหมายขีดล่าง และอักขระ 1 ถึง 14 ตัว ชื่อคลาสที่สงวนไว้ที่ขึ้นต้นด้วยB_สงวนไว้สำหรับตัวผูกข้อมูล ชื่อคลาสที่สงวนไว้ที่ขึ้นต้นด้วยC_ที่ทำเครื่องหมายว่าสามารถโหลดได้สงวนไว้สำหรับโปรแกรมที่สร้างขึ้นเพื่อใช้กับสภาพแวดล้อมภาษาของ IBM (LE) ชื่อคลาสที่ขึ้นต้นด้วยC_ที่ไม่ได้ทำเครื่องหมายว่าสามารถโหลดได้ รวมถึงคลาสที่ขึ้นต้นด้วยX_, Y_หรือZ_สามารถใช้งานได้ทั่วไปโดยไม่สงวนไว้
  • ชื่อคลาสที่ผู้ใช้กำหนดอาจเป็นตัวพิมพ์เล็กก็ได้
  • ชื่อคลาสไม่ใช่สัญลักษณ์ภายนอก
  • คู่มือของ IBM ไม่ได้ระบุว่ารูปแบบนี้ใช้โค้ดเพจ ใด แต่เพื่อจุดประสงค์ของบทความนี้ เราจะถือว่าคือ 037 แม้ว่านั่นไม่น่าจะส่งผลกระทบต่อคำสั่งเครื่องและข้อมูลที่จัดเก็บในรูปแบบนี้ก็ตาม
คลาสต่อไปนี้ที่ใช้โดยตัวผูกข้อมูลอาจถูกอ้างอิงหากจำเป็นสำหรับวัตถุประสงค์ในการคอมไพล์:
บี_อีเอสดีคลาสพจนานุกรมสัญลักษณ์ภายนอก
บี_เท็กซ์คลาสข้อความ
บีอาร์แอลดีพจนานุกรมการย้ายถิ่นฐาน
บี_SYMคลาสตารางสัญลักษณ์ภายใน
บี_ไอดีอาร์แอลคลาสข้อมูลระบุตัวตนตัวแปลภาษา
บี_พีอาร์วีคลาสรีจิสเตอร์เสมือน
บี_ไอดรูคลาสข้อมูลระบุตัวตนที่ผู้ใช้กำหนด
ชื่อคลาสต่อไปนี้ถูกสงวนไว้โดยตัวผูกข้อมูลและแอปพลิเคชันของผู้ใช้ไม่สามารถเข้าถึงได้:
บี_ไอดีอาร์บีข้อมูลแฟ้มเอกสาร
บี_ไอดีอาร์ซีข้อมูล SUPER-Zap
บี_อิมเพกซ์พีตารางนำเข้า-ส่งออก
บี_ลิทตารางข้อมูลการโหลด
บี_แมปข้อมูลการทำแผนที่
  • ข้อมูลตารางสัญลักษณ์ของไฟล์อ็อบเจ็กต์ SYM จากระเบียนรูปแบบไฟล์อ็อบเจ็กต์ 360 ไม่สามารถใช้งานได้กับไฟล์อ็อบเจ็กต์ GOFF ต้องใช้ระเบียน ADATA (ระเบียนย่อยของ TXT) แทน

ข้อจำกัดขนาด

ตามคู่มือผู้ใช้สำหรับz/OS XL C/C++ ระบุว่า "ขนาดสูงสุดของวัตถุ GOFF คือ 1 กิกะไบต์" [ 6 ]

ประเภทบันทึก

เช่นเดียวกับรูปแบบ OS/360 รุ่นเก่า ข้อมูลในไฟล์ออบเจ็กต์จะถูกแบ่งออกเป็น 6 ประเภท ได้แก่ ข้อมูลที่เพิ่มเข้ามา ข้อมูลที่ลบออก และข้อมูลที่แก้ไข:

  • การบันทึก HDR (ซึ่งเป็นคุณสมบัติใหม่) จะต้องเกิดขึ้นก่อน เนื่องจากเป็นการกำหนดส่วนหัวของไฟล์ออบเจ็กต์
  • ระเบียน ESD กำหนดโปรแกรมหลัก ซับรูทีน ฟังก์ชัน ส่วนดัมมี่ ฟอร์ทรานคอมมอน เมธอดและคุณสมบัติ และโมดูลหรือรูทีนใดๆ ที่สามารถเรียกใช้โดยโมดูลอื่นได้ ใช้เพื่อกำหนดโปรแกรมหรือส่วนของโปรแกรมที่ถูกคอมไพล์ในการทำงานของคอมไพเลอร์ครั้งนี้ และรูทีนภายนอกที่โปรแกรมใช้ (เช่น exit() ในภาษา C , CALL EXIT ในฟอร์ทราน ; new() และ dispose() ในภาษาปาสคาล ) ระเบียน ESD ควรอยู่ก่อนการอ้างอิงถึงสัญลักษณ์ ESD ใดๆ
  • ระเบียน TXT ได้รับการขยายขอบเขต โดยนอกเหนือจากการบรรจุคำสั่งเครื่องหรือข้อมูลที่โมดูลเก็บไว้แล้ว ยังบรรจุระเบียนข้อมูลระบุตัวตน (IDR) (มากกว่า 20 ประเภท) ระเบียนข้อมูลที่เกี่ยวข้อง (ADATA) และข้อมูลเพิ่มเติมที่เกี่ยวข้องกับโมดูลอีกด้วย
  • เรคอร์ด RLD ใช้สำหรับกำหนดตำแหน่งของแอดเดรสใหม่ ตัวอย่างเช่น โปรแกรมที่อ้างอิงแอดเดรสที่อยู่ภายในโมดูล 500 ไบต์ จะเก็บแอดเดรสไว้ภายในเป็น 500 แต่เมื่อโหลดโมดูลเข้าสู่หน่วยความจำ แอดเดรสนั้นอาจอยู่ที่ตำแหน่งอื่น ดังนั้นเรคอร์ด RLD จะแจ้งให้ตัวแก้ไขการเชื่อมโยงหรือตัวโหลดทราบว่าต้องเปลี่ยนแอดเดรสใดบ้าง นอกจากนี้ เมื่อโมดูลอ้างอิงถึงสัญลักษณ์ภายนอก โดยปกติแล้วจะตั้งค่าของสัญลักษณ์นั้นเป็นศูนย์ จากนั้นจึงเพิ่มรายการ RLD สำหรับสัญลักษณ์นั้นเพื่อให้ตัวโหลดหรือตัวแก้ไขการเชื่อมโยงสามารถเปลี่ยนแอดเดรสให้เป็นค่าที่ถูกต้องได้
  • บันทึก LEN เป็นบันทึกใหม่ที่ระบุข้อมูลความยาวที่แน่นอน
  • ระเบียน END ระบุจุดสิ้นสุดของโมดูล และอาจระบุจุดเริ่มต้นการทำงานของโปรแกรมด้วย ระเบียนนี้จะต้องเป็นระเบียนสุดท้ายในไฟล์

รูปแบบ

ระเบียน GOFF อาจมีความยาวคงที่หรือความยาวแปรผันได้ ความยาวขั้นต่ำเมื่อใช้ระเบียนความยาวแปรผันคือ 56 ตัวอักษร แม้ว่าระเบียนส่วนใหญ่จะยาวกว่านี้ก็ตาม ยกเว้นชื่อโมดูลและคลาส ตัวอักษรทั้งหมดอยู่ใน ชุดอักขระ EBCDICระบบที่ใช้ Unix ต้องใช้ระเบียนความยาวคงที่ (80 ไบต์) ระเบียนในไฟล์ความยาวคงที่ที่สั้นกว่าความยาวคงที่ควรเติมด้วยศูนย์ เพื่อแยกแยะระเบียน GOFF จากรูปแบบออบเจ็กต์ OS/360 รุ่นเก่า (ซึ่งไบต์แรกของระเบียนคือ X'02') หรือจากคำสั่งที่อาจมีอยู่ในไฟล์ ไบต์แรกของระเบียน GOFF แต่ละรายการจะเป็นค่าไบนารี X'03' เสมอ ในขณะที่คำสั่งต้องเริ่มต้นด้วยค่าอักขระอย่างน้อยช่องว่าง (X'40') ไบต์ถัดไป 2 ไบต์ของระเบียน GOFF ระบุประเภทระเบียน การต่อเนื่อง และเวอร์ชันของรูปแบบไฟล์ ไบต์ 3 ไบต์แรกนี้เรียกว่าฟิลด์ PTV

พีทีวี

ฟิลด์ PTV แสดงถึง 3 ไบต์แรกของทุกระเบียน GOFF

สนามพีทีวี
ไบต์ บิต ค่า วัตถุประสงค์
0 ทั้งหมด 03 บ่งชี้จุดเริ่มต้นของบันทึก GOFF
1 0-3 0 บันทึก ESD (สัญลักษณ์ภายนอก)
1 บันทึก TXT (ข้อความ)
2 บันทึก RLD (การย้ายที่อยู่)
3 บันทึก LEN (ความยาว)
4 สิ้นสุด (End) บันทึก
X'5'-X'E' ที่สงวนไว้
เอ็กซ์เอฟ บันทึก HDR (ส่วนหัว)
4-5 ที่สงวนไว้
6-7 00 บันทึกเริ่มต้นที่ไม่ถูกบันทึกต่อในบันทึกถัดไป ค่านี้ควรเป็นค่าเดียวที่ใช้สำหรับบันทึก GOFF ที่มีความยาวแปรผันได้
01 บันทึกเริ่มต้นซึ่งจะต่อเนื่องไปยังบันทึกถัดไป
10 บันทึกต่อเนื่องไม่ได้ถูกบันทึกต่อในบันทึกถัดไป
11 บันทึกต่อเนื่องซึ่งจะปรากฏในบันทึกถัดไป
2 ทั้งหมด 00 หมายเลขเวอร์ชันของรูปแบบไฟล์วัตถุ ค่าทั้งหมด ยกเว้น X'00' เป็นค่าสงวนไว้

เอชอาร์ดี

จำเป็นต้องบันทึกภาพ HDR และต้องเป็นภาพบันทึกแรก

บันทึก HDR
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0-2 3 พีทีวี X'03F000' ค่าที่อนุญาตเท่านั้น; ขณะนี้ไม่สามารถบันทึก HDR ต่อได้
3-47 45 0 ที่สงวนไว้
48-51 4 ระดับสถาปัตยกรรม เลขฐานสอง 0 หรือ 1 ระดับสถาปัตยกรรม GOFF; ค่าทั้งหมด ยกเว้น 0 และ 1 ถูกสงวนไว้
52-53 2 ขนาดคุณสมบัติของโมดูล ไบนารี ความยาวของช่องคุณสมบัติโมดูล
54-59 6 0 ที่สงวนไว้
60- 0+ คุณสมบัติของโมดูล รายการคุณสมบัติของโมดูล (ไม่บังคับ)

อีเอสดี

ระเบียน ESD ระบุชื่อสาธารณะสำหรับโมดูล โปรแกรมหลัก ซับรูทีน ขั้นตอน ฟังก์ชัน คุณสมบัติ หรือเมธอดในออบเจ็กต์ Fortran Common หรือจุดเริ่มต้นทางเลือก ระเบียน ESD สำหรับชื่อสาธารณะต้องมีอยู่ในไฟล์ก่อนที่จะมีการอ้างอิงถึงชื่อนั้นโดยระเบียนอื่นใด

บันทึก ESD
ไบต์ ขนาด สนาม ค่า (หรือบิต) วัตถุประสงค์
0-2 3 พีทีวี X'030000' บันทึก ESD ที่ไม่มีส่วนต่อขยาย
X'030100' บันทึก ESD ซึ่งจะต่อเนื่องในบันทึกถัดไป
3 1 ประเภทสัญลักษณ์ 00 SD - คำจำกัดความของส่วน (Section Definition); ใช้สำหรับค่า SD, CM (Common) และ PC (Private Code ซึ่งเป็น SD ที่ไม่มีชื่อ) เดิม ค่า ESDID "Parent" ต้องเป็น 0 ใช้สำหรับกำหนดโปรแกรมหลัก โปรแกรมย่อย หรือฟังก์ชันที่โค้ดเป็นส่วนหนึ่งของไฟล์นี้ นอกจากนี้ยังใช้สำหรับ Fortran Common ด้วย
01 ED - คำจำกัดความภายนอก (External Definition) ESDID "หลัก" ต้องไม่เป็นศูนย์ และต้องเป็นค่าของรายการ SD ที่อ้างอิงถึงสัญลักษณ์ภายนอกนี้ หากค่า RLD อ้างอิงถึงคลาสที่รายการนี้สังกัดอยู่ คลาสที่องค์ประกอบนี้อ้างอิงถึงจะต้องระบุไว้ในฟิลด์ชื่อภายนอก (External Name) ฟิลด์นี้ใช้สำหรับตั้งชื่อขั้นตอนหรือฟังก์ชันที่ถูกเรียกใช้
02 LD - การกำหนดป้ายกำกับ (Label Definition) ESDID "หลัก" ต้องไม่เป็นศูนย์ และเป็นค่าของรายการ SD ที่กำหนดสัญลักษณ์นี้ไว้ภายในตัวมันเอง สามารถใช้เพื่อสร้างชื่อแทนสำหรับโมดูล หรือเพื่อเปิดเผยส่วนหนึ่งของโมดูลเป็นรูทีนแยกต่างหาก ตัวอย่างเช่น ไลบรารีรันไทม์สำหรับภาษาโปรแกรมเฉพาะอาจมีคุณสมบัติบางอย่างที่ต้องใช้เอง แต่เป็นประโยชน์สำหรับโปรแกรมที่เขียนโดยใช้ภาษานั้น ดังนั้นจึงสามารถกำหนดป้ายกำกับให้กับคุณสมบัตินั้นเพื่อให้สามารถเรียกใช้ได้โดยตรง ตัวอย่างเช่น อาจมีแพ็คเกจคณิตศาสตร์ที่สมบูรณ์เป็นโมดูลเดียว และฟังก์ชันมาตรฐานทั้งหมด (ไซน์ โคไซน์ รากที่สอง ฯลฯ) สามารถตั้งชื่อเป็นจุดเริ่มต้นในโมดูลนั้นได้
03 PR - Part Reference หรือ Pseudo Register ระบุโดยฟิลด์ Name Space ID ESDID "Parent" ต้องไม่เป็นศูนย์ และต้องเป็นค่าของรายการ SD ที่กำหนดสัญลักษณ์นี้ไว้ภายในตัวมันเอง
04 ER และ WX - การอ้างอิงภายนอก / การอ้างอิงภายนอกแบบอ่อน แตกต่างกันโดยค่า "ความแข็งแรงของการผูกมัด" ในช่อง "คุณลักษณะ" WX ใช้ในกรณีที่อาจไม่มีรูทีนภายนอก ตัวอย่างเช่น หากโปรแกรมเครื่องคิดเลขมีชุดฟังก์ชันทางคณิตศาสตร์ที่มีประสิทธิภาพสูงซึ่งเป็นตัวเลือกเสริม ก็สามารถเรียกใช้เป็น WX ได้ และหากไม่มีหรือใช้งานไม่ได้ โปรแกรมก็อาจลดระดับไปใช้ชุดฟังก์ชันทางคณิตศาสตร์ที่ด้อยกว่า
4-7 4 เอสดีไอดี ไบนารี รหัส ESDID ที่ขึ้นต้นด้วย 1 โดย ESDID ใหม่แต่ละรหัสจะต้องสูงกว่ารหัสก่อนหน้าอยู่ 1 รหัสเสมอ
8-11 4 ผู้ปกครอง ESDID ไบนารี นี่คือ ESDID ของวัตถุที่กำหนดรายการนี้ หากเป็นส่วนหนึ่งของวัตถุอื่น หากไม่มีวัตถุแม่ ค่าจะเป็น 0
12-15 4 0 ที่สงวนไว้
16-19 4 ออฟเซ็ต ไบนารี ที่อยู่ของสัญลักษณ์นี้ภายใน ESDID หลักสำหรับรายการ LD หรือ ED; เป็นศูนย์สำหรับรายการอื่น ๆ
20-23 4 0 ที่สงวนไว้
24-27 4 ความยาว ไบนารี ความยาวของรายการนี้สำหรับประเภท ED และ PR; เป็นศูนย์สำหรับประเภทอื่น หากค่าความยาวจริงถูกเลื่อนออกไป ค่านี้จะถูกตั้งเป็น -1
28-31 4 คุณลักษณะเพิ่มเติม ESDID ไบนารี ESDID ขององค์ประกอบที่ประกอบด้วยข้อมูลคุณลักษณะเพิ่มเติมสำหรับประเภท ED และ LD โดยทั่วไปจะใช้ในกรณีที่ DLL รองรับสัญลักษณ์ที่ได้รับการแก้ไขในขณะรันไทม์ (เช่น เมธอดเสมือน) มิฉะนั้นจะเป็นศูนย์
32-35 4 ค่าชดเชยแอตทริบิวต์เพิ่มเติม ไบนารี ที่อยู่ซึ่งสามารถค้นหาคุณลักษณะเพิ่มเติมสำหรับฟิลด์ก่อนหน้าได้ ใช้สำหรับระเบียน ED และ LD ที่มีคุณลักษณะเพิ่มเติม มิฉะนั้นจะเป็นศูนย์
36-39 4 0 ที่สงวนไว้
40 1 รหัสเนมสเปซ ระบุเนมสเปซที่สิ่งนี้เป็นส่วนหนึ่ง
0 สงวนไว้สำหรับแฟ้มเอกสารการจัดการโครงการ
1 ชื่อปกติ
2 รีจิสเตอร์เสมือน
3 ส่วนประกอบ (พื้นที่จัดสรรสำหรับรายการภายนอก รวมถึงรายการที่มีข้อมูลคงที่ที่ได้รับการเริ่มต้นแล้ว)
41 1 ธง
เติมของขวัญ บิต 0 0 ไม่เติม
1 เติมไบต์ที่มีอยู่ (ใช้ได้เฉพาะกับประเภท ED เท่านั้น)
บิดเบี้ยว บิตที่ 1 0 สัญลักษณ์ไม่ถูกบิดเบือน
1 สัญลักษณ์อาจถูกบิดเบือน
เปลี่ยนชื่อได้ บิต 2 0 ไม่สามารถเปลี่ยนชื่อได้ (เช่นเดียวกับแฟล็ก 'mapped' ใน XOBJ)
1 สามารถเปลี่ยนชื่อสัญลักษณ์ได้ (สามารถเข้าร่วมในการเปลี่ยนชื่อประเภทสภาพแวดล้อมทางภาษา (LE))
คลาสที่ถอดได้ บิต 3 0 (ค่าเริ่มต้น) ไม่สามารถถอดออกได้
1 สามารถลบคลาสนี้ได้โดยไม่ส่งผลกระทบต่อการทำงานของโปรแกรม (ใช้ได้เฉพาะกับประเภท ED เท่านั้น)
บิต 4-6 ที่สงวนไว้
จองพื้นที่เพิ่มเติม บิต 7 0 ไม่มีการสำรองพื้นที่เพิ่มเติม
1 สงวนพื้นที่ 16 ไบต์ไว้ที่ส่วนต้นของคลาส (เฉพาะคลาส MRG ประเภท ED เท่านั้น)
42 1 ค่าเติม ค่าของไบต์เติม หากตั้งค่าแฟล็ก Fill Present ไว้
43 1 0 ที่สงวนไว้
44-47 4 ข้อมูลที่เกี่ยวข้อง ไบนารี ใช้สำหรับระบุสภาพแวดล้อมหรือพื้นที่คงที่สำหรับอุปกรณ์ LD โดยใช้ XLINK
48-51 4 ลำดับความสำคัญ ไบนารี ลำดับการจัดเรียงของรายการข่าวประชาสัมพันธ์
52-59 8 0 ที่สงวนไว้
60-69 10 คุณลักษณะด้านพฤติกรรม คุณลักษณะด้านพฤติกรรมสำหรับรายการนี้ (ดูตารางคุณลักษณะด้านพฤติกรรมด้านล่าง)
70-71 2 ชื่อ ความยาว ไบนารี ความยาวของชื่อรายการนี้ ต้องไม่เป็นศูนย์
72- ชื่อ ข้อความ ชื่อของรายการนี้ โดยตัดช่องว่างท้ายออก ต้องมีอย่างน้อยหนึ่งตัวอักษร รหัสส่วนตัวประกอบด้วยช่องว่างหนึ่งช่อง ชื่อต้องตรงตามตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
REM 0 ส่วนท้าย: พื้นที่ว่างที่ไม่ได้ใช้งาน หากจำเป็นสำหรับระเบียนที่มีขนาดคงที่ ต้องเติมค่าเป็นศูนย์ ไม่จำเป็นสำหรับระเบียนที่มีความยาวแปรผัน

ต่อเนื่อง

ในกรณีของระเบียนที่มีความยาวคงที่ซึ่งชื่อจำเป็นต้องมีระเบียนต่อเนื่อง จะใช้รูปแบบดังต่อไปนี้:

บันทึกความต่อเนื่องของ ESD
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0-2 3 พีทีวี X'030200' บันทึกการดำเนินการต่อของ ESD โดยไม่มีการดำเนินการต่อเพิ่มเติม
X'030300' บันทึกต่อเนื่องของ ESD ซึ่งจะต่อเนื่องไปยังบันทึกถัดไป
3- ชื่อ ข้อความ ส่วนที่เหลือของชื่อหากระเบียนนี้ไม่ต่อเนื่อง หรือ 77 ไบต์ถัดไปของชื่อหากต่อเนื่องกัน
REM 0 ส่วนที่เหลือสำหรับระเบียนความยาวคงที่ที่ยาวกว่าข้อมูลที่ให้มา โดยจะเก็บไบต์ส่วนท้ายหากเป็นระเบียนสุดท้ายสำหรับชื่อนี้ และชื่อนั้นสั้นกว่าขนาดของระเบียน ต้องกรอกค่าเป็น 0 ฟิลด์นี้ไม่มีในระเบียนความยาวแปรผัน

คุณลักษณะด้านพฤติกรรม

ช่องข้อมูลคุณลักษณะเชิงพฤติกรรม (ไบต์ที่ 60-69 ของระเบียน ESD)
ออฟเซ็ต ขนาด (ไบต์) บิต สนาม ค่า วัตถุประสงค์
0 1 การระบุที่อยู่ของอสังหาริมทรัพย์ โหมดการกำหนดแอดเดรสที่เชื่อมโยงกับสัญลักษณ์ภายนอกนี้ ค่าเหล่านี้จะถูกใช้โดย ฟิลด์ AMODEของระเบียน END ด้วยเช่นกัน
00 ไม่ได้ระบุ AMODE (ค่าเริ่มต้นคือ AMODE (24))
01 โหมด(24)
02 โหมด(31)
03 โหมด (ใดๆ) (24 หรือ 31)
04 โหมด(64)
10 AMODE(MIN) (ใช้ค่า AMODE ที่น้อยที่สุดที่โมดูลทั้งหมดใช้)
1 1 ที่พักพิง โหมดที่อยู่อาศัยที่เกี่ยวข้องกับสัญลักษณ์ภายนอก
00 ไม่ได้ระบุ RMODE (ค่าเริ่มต้นคือ RMODE (24))
01 RMODE(24)
03 RMODE(31) (เทียบเท่ากับ RMODE(ANY))
04 RMODE(64)
2 1 0-3 (4) รูปแบบบันทึกข้อความ รูปแบบข้อความสำหรับคลาสนี้ (เฉพาะประเภท ED และ PR) ข้อความทั้งหมดต้องใช้รูปแบบเดียวกัน
0000 เน้นไบต์
0001 ข้อมูลที่มีโครงสร้าง (เน้นการจัดเก็บในแฟ้มเอกสาร)
0010 ข้อมูลที่มีโครงสร้าง (กำหนดโดยผู้ใช้)
4-7 (4) อัลกอริทึมการผูกมัด วิธีการผูกข้อมูล
0000 นำรายการทั้งหมดมาต่อกันทีละรายการ
0001 ผสาน (รายการที่มีชื่อเหมือนกันทั้งหมดจะถูกจัดวางไว้ในพื้นที่เดียวกัน โดยใช้ขนาดที่ใหญ่ที่สุดตามที่กำหนด และการจัดเรียงที่เข้มงวดที่สุด) รายการที่มีชื่อแตกต่างกันจะถูกรวมเข้าด้วยกัน นี่เป็นวิธีปฏิบัติปกติสำหรับประเภท CM และ PR
3 1 0-2 (3) พฤติกรรมการมอบหมายงาน ระบุว่าโมดูลนั้นสามารถเรียกซ้ำได้หรือไม่ และ/หรือสามารถนำกลับมาใช้ใหม่ได้หรือไม่
000 ไม่ระบุ
001 ไม่สามารถนำกลับมาใช้ใหม่หรือเข้าซ้ำได้ (NON-REUS)
010 สามารถนำกลับมาใช้ซ้ำได้หลายครั้ง (REUS)
011 ผู้เช่าที่กลับเข้ามาใหม่ (RENT) ยังหมายความถึง (REUS) ด้วย
3 0 ที่สงวนไว้
4 อ่านอย่างเดียว 0 ไม่ใช่แบบอ่านอย่างเดียว
1 อ่านอย่างเดียว
5-7 (3) ไฟล์ปฏิบัติการ 000 ไม่ได้ระบุ
001 ไฟล์นี้ไม่สามารถเรียกใช้งานได้ (มีเฉพาะข้อมูล)
010 ไฟล์ปฏิบัติการ (โค้ด หรือโค้ดและข้อมูล)
4 1 0-1 (2) 0 ที่สงวนไว้
2-3 (2) ความรุนแรงของสัญลักษณ์ซ้ำ ระดับความคลาดเคลื่อนที่สัญลักษณ์ซ้ำควรแจ้ง (เฉพาะระเบียนประเภท PR เท่านั้น)
00 สารยึดเกาะเป็นตัวกำหนดความรุนแรง
01 ขั้นต่ำ 4 (คำเตือน)
10 ขั้นต่ำ 8 (ข้อผิดพลาด)
11 ที่สงวนไว้
4-7 (4) ความแข็งแรงในการยึดติด การอ้างอิงแบบอ่อนจะไม่ค้นหาในไลบรารีอื่น การอ้างอิงแบบแข็งจะค้นหาสัญลักษณ์ในไลบรารีอื่น คำจำกัดความแบบแข็งสามารถระบุไปยังการอ้างอิงใดก็ได้ ซึ่งเป็นค่าเริ่มต้น
0000 แข็งแกร่ง
0001 อ่อนแอ
5 1 0-1 (2) พฤติกรรมการโหลดคลาส กำหนดว่าองค์ประกอบของคลาสจะถูกโหลดหรือไม่ ในกรณีที่ระบบปฏิบัติการใช้คำขอ LOAD กับอ็อบเจ็กต์
00 โหลด - โหลดคลาสนี้
01 การโหลดแบบเลื่อนเวลา - คลาสนี้อาจจะถูกใช้งานและควรถูกโหลด
10 NOLOAD - ห้ามโหลดคลาสนี้
11 ที่สงวนไว้
2 ธงทั่วไป ถ้าเป็น 1 ให้ถือว่าเป็น CM-type COMMON แบบ "เก่า" โดยที่การอ้างอิงหลายรายการจะกำหนดขนาดให้เท่ากับพื้นที่ที่ใหญ่ที่สุดที่ใช้โดยการอ้างอิงใดๆ ประเภท SD ที่มีชื่อเดียวกันจะคงขนาดและข้อความไว้ ประเภทข้อความเดียวที่รองรับสำหรับกรณีนี้คือ B_TEXT
3 การอ้างอิงโดยตรงเทียบกับการอ้างอิงโดยอ้อม 0 การอ้างอิงโดยตรง (เพื่อวัตถุประสงค์ในการจัดทำแฟ้มเอกสาร)
1 สำหรับประเภท PR นี่คือตัวอธิบายการเชื่อมโยง สำหรับประเภท ER นี่คือการอ้างอิงถึงตัวอธิบายการเชื่อมโยง XPLINK
4-7 (4) ขอบเขตการผูกมัด 0000 ไม่ระบุ
0001 ขอบเขตของส่วน (“ท้องถิ่น”)
0010 ขอบเขตของโมดูล (“ทั่วโลก”)
0011 ขอบเขตของห้องสมุด
0100 ขอบเขตการนำเข้า-ส่งออก
6 1 0-1 (2) ที่สงวนไว้
2 ประเภทการเชื่อมโยง สำหรับประเภท ER, LD, PD และ PR
0 การเชื่อมต่อ O/S มาตรฐาน (ค่าเริ่มต้น)
1 การเชื่อมโยง XPLINK
3-7 (5) การจัดแนว การจัดเรียงโดยนัยของรายการนี้
00000 ไบต์
00001 ฮาล์ฟเวิร์ด
00010 ฟูลเวิร์ด
00011 ดับเบิลเวิร์ด
00100 ควอดเวิร์ด
00101 หน้าขนาด 4KB
รูปแบบการจัดวางทั้งหมดที่แสดงไว้ สามารถใช้ได้กับทั้งแบบ ED และ PR ยกเว้นแบบ PR ที่ไม่สามารถใช้การจัดวางหน้าได้
7-9 3 ที่สงวนไว้

บันทึกข้อมูล ADATA

ระเบียน ADATA ("ข้อมูลที่เกี่ยวข้อง") ใช้สำหรับให้ข้อมูลสัญลักษณ์เพิ่มเติมเกี่ยวกับโมดูล โดยเข้ามาแทนที่ระเบียน SYM แบบเก่าในรูปแบบไฟล์ออบเจ็กต์ 360 ในการสร้างระเบียน ADATA

  • สร้างระเบียน ESD ประเภท ED สำหรับชื่อคลาสที่ระเบียนเหล่านั้นเป็นส่วนหนึ่ง
  • ตั้งค่าฟิลด์ทั้งหมดใน บันทึก คุณลักษณะพฤติกรรมเป็น 0 ยกเว้นฟิลด์ 0
    • การโหลดคลาส (บิต 0-1 ของไบต์ 5) คือ X'10'
    • อัลกอริทึมการผูกคือ 0
    • รูปแบบบันทึกข้อความ (บิต 0-3 ของไบต์ 2) คือ X'0010'
    • สามารถตั้ง ค่า แบบอ่านอย่างเดียว (บิตที่ 4 ของไบต์ที่ 3) และ แบบ ไม่สามารถเรียกใช้งานได้ (บิตที่ 5-7 ของไบต์ที่ 3) ได้ตามความเหมาะสม
  • สร้างระเบียน TXT สำหรับแต่ละรายการใน ADATA
    • Element ESDIDคือค่าของระเบียน ADATA ED สำหรับรายการ ADATA นั้นๆ
    • ค่าออฟเซ็ตเป็นศูนย์
    • ความยาวข้อมูลคือ ความยาวของระเบียนข้อมูล ADATA
    • ช่อง ข้อมูลนี้ประกอบด้วยข้อมูลบันทึก ADATA จริง ๆ

ข้อมูลใน ADATA จะถูกเพิ่มต่อท้ายคลาสตามลำดับที่ประกาศไว้

ชื่อคลาสที่กำหนดให้กับระเบียน ADATA จะถูกแปลงโดยโปรแกรมของ IBM โดยการ แปลง ค่าไบนารีเป็นข้อความแล้วต่อท้ายชื่อC_ADATAดังนั้น รายการที่มีหมายเลข X'0033' จะกลายเป็นสตริงข้อความC_ADATA0033

ประเภทบันทึก ADATA
พิมพ์ คำอธิบาย
X'0000' - X'7FFF'บันทึกตัวแปล (โปรดทราบว่าค่าบางค่าในช่วง 0-X'0130' ถูกใช้งานโดยผลิตภัณฑ์ตัวแปลภาษาของ IBM บางตัว รวมถึง Assembler, CobolและPL/I )
X'8000' - X'8FFF'บันทึกการจัดการโครงการ
X'9000' - X'DFFF'ที่สงวนไว้
X'E000' - X'EFFF'สงวนไว้สำหรับคอมไพเลอร์และแอสเซมเบลอร์ที่ไม่ได้เผยแพร่โดย IBM
X'F000' - X'FFFF'มีให้สำหรับบันทึกข้อมูลผู้ใช้ IBM จะไม่นำค่าเหล่านี้ไปใช้

TXT

ระเบียน TXT ระบุคำสั่งรหัสเครื่องและข้อมูลที่จะวางไว้ในตำแหน่งที่อยู่เฉพาะในโมดูล โปรดทราบว่าทุกครั้งที่ต้องระบุ "ความยาว" สำหรับระเบียนนี้ ค่าความยาวจะต้องรวมส่วนต่อขยายใดๆ ของระเบียนนี้ด้วย

บันทึก TXT
ไบต์ ขนาด สนาม บิต ค่า วัตถุประสงค์
0-2 3 พีทีวี X'031000' บันทึก TXT ที่ไม่มีส่วนต่อขยาย
X'031100' บันทึก TXT ซึ่งต่อเนื่องไปยังบันทึกถัดไป
3 1 0-3 (4) ที่สงวนไว้
สไตล์ 4-7 (4) ค่าอื่นๆ ทั้งหมดสงวนไว้
0000 ข้อมูลเชิงไบต์
0001 ข้อมูลที่มีโครงสร้าง (ปัจจุบันรองรับเฉพาะข้อมูลที่มีโครงสร้างขนาด 19 ไบต์เท่านั้น โปรดดูตารางข้อมูล IDR )
0010 ข้อมูลที่ไม่มีโครงสร้าง
4-7 4 องค์ประกอบ ESDID เลขฐานสอง ESDID ระบุว่าเนื้อหาในบันทึกนี้เป็นของ
8-11 4 ที่สงวนไว้
12-15 4 ออฟเซ็ต ที่อยู่ไบนารี ที่อยู่ภายใน ESDID ที่จะจัดเก็บข้อมูลนี้ ควรเป็น 0 สำหรับข้อมูลที่มีโครงสร้างและไม่มีโครงสร้าง
16-19 4 ความยาวจริงของช่องข้อความ ค่าไบนารี: 0 หรือขนาดเต็มหลังจากขยาย ถ้าช่อง Text Encoding เป็น 0 ค่าในช่องนี้ต้องเป็น 0 เช่นกัน มิฉะนั้น ค่าในช่องนี้จะเป็นขนาดเต็มของข้อความหลังจากการบีบอัดหรือคลายไฟล์
20-21 2 การเข้ารหัสข้อความ ค่าไบนารี 0 หากข้อความไม่จำเป็นต้องทำซ้ำ แยก หรือถอดรหัส; ค่าที่ไม่ใช่ศูนย์เพื่อระบุว่าข้อความต้องได้รับการถอดรหัส แยก หรือขยาย; ดูตารางการบีบอัด
22-23 2 ความยาวข้อมูล ค่าไบนารีมากกว่าศูนย์ ความยาวทั้งหมดของข้อมูลในระเบียนนี้เป็นไบต์ในรูปแบบค่าที่ไม่ติดลบ และต้องไม่เป็นศูนย์ อย่างไรก็ตาม ค่านี้อาจไม่ถูกต้องทั้งหมด ดังที่ระบุไว้ด้านล่างในหัวข้อ ข้อ ควร ระวัง
24- ข้อมูล รหัสเครื่องและ/หรือข้อมูลที่จะแทรก หากมีการรวมข้อมูล IDR จะต้องเป็นไปตามกฎและข้อกำหนดพิเศษ โปรดดูตารางข้อมูล IDR
REM ไม่มีในระเบียนที่มีความยาวแปรผัน ไบต์ที่เหลือสำหรับระเบียนคงที่ซึ่งยาวกว่าข้อมูลที่เหลือ ต้องเป็นเลขศูนย์ไบนารี

คำเตือน

ความยาวของข้อมูลในไบต์ที่ 22-23 ซึ่งเป็นค่าที่ไม่ติดลบ อาจไม่ถูกต้อง ตามคำอธิบายในส่วนของตัวสร้าง GOFF ในชุดคอมไพเลอร์ LLVM

"จำนวนไบต์สูงสุดที่สามารถรวมอยู่ในเรคอร์ด RLD หรือ TXT และส่วนต่อขยายของเรคอร์ดเหล่านั้นคือจำนวนเต็ม 16 บิตแบบมีเครื่องหมาย แม้ว่าข้อกำหนดจะระบุไว้เป็นอย่างอื่นก็ตาม จำนวนไบต์ที่เราอนุญาตให้แนบกับการ์ดจึงถูกจำกัดโดยพลการไว้ที่ 32K-1 ไบต์" [ 7 ]

ต่อเนื่อง

บันทึกการต่อท้าย TXT
ไบต์ ขนาด สนาม บิต ค่า วัตถุประสงค์
0-2 3 พีทีวี X'031200' บันทึกต่อเนื่องที่ไม่มีการบันทึกต่อเนื่องเพิ่มเติม
X'031300' บันทึกต่อเนื่องซึ่งต่อเนื่องไปยังบันทึกถัดไป
3- ข้อมูลต่อเนื่องจากบันทึกก่อนหน้า
REM ถ้าส่วนที่เหลือของบันทึกยาวกว่าข้อมูล ให้เติมด้วยเลขศูนย์

ตารางการบีบอัด

จะใช้ตารางการบีบอัดข้อมูลหากไบต์ที่ 20-21 ของระเบียน TXT ไม่เป็นศูนย์ ค่า R ใช้เพื่อกำหนดจำนวนครั้งที่จะทำซ้ำสตริง ส่วนค่า L ระบุความยาวของข้อความที่จะทำซ้ำ "R" ครั้ง วิธีการนี้สามารถใช้สำหรับการกำหนดค่าเริ่มต้นให้กับตารางหรืออาร์เรย์เป็นค่าว่างหรือศูนย์ หรือเพื่อวัตถุประสงค์อื่นใดที่การแสดงข้อมูลที่ทำซ้ำเป็นจำนวนครั้งและค่ามีประโยชน์

ตารางการบีบอัด
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
ถ้าค่าในไบต์ที่ 20-21 ของระเบียน TXT นี้คือ 0001
0-1 2 อาร์ จำนวนครั้งที่ทำซ้ำ (Repeat Count) เป็นจำนวนเต็มที่ไม่ติดลบและมากกว่า 0 จำนวนครั้งที่จะทำซ้ำสตริง โดยเริ่มต้นที่ไบต์ที่ 4
2-3 2 แอล ความยาวไบนารี คือจำนวนเต็มที่ไม่ติดลบซึ่งมากกว่า 0 ความยาวของสตริงเริ่มต้นที่ไบต์ที่ 4
4- สตริง สตริงที่มีความยาว "L" ซึ่งจะต้องทำซ้ำ "R" ครั้ง
ค่าอื่นๆ ทั้งหมดสำหรับไบต์ที่ 20-21 ถูกสงวนไว้

ตารางข้อมูล IDR

ตาราง IDR ซึ่งอยู่ที่ไบต์ที่ 24 ของระเบียน TXT จะระบุคอมไพเลอร์หรือแอสเซมเบลอร์ (และหมายเลขเวอร์ชัน) ที่สร้างไฟล์ออบเจ็กต์นี้

ฟิลด์ IDR
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0 1 x'00' ที่สงวนไว้
1 1 พิมพ์ ประเภทของฟิลด์ IDR (โปรดทราบว่า การระบุตัวตนหลักและการระบุตัวตนรอง หมายถึง ฟิลด์การระบุตัวตนแรกและฟิลด์การระบุตัวตนที่สอง ตามลำดับ ที่ปรากฏบนการ์ด END ในรูปแบบไฟล์โมดูลออบเจ็กต์ OS/360 เดิม)
00 รหัสประจำตัวหลัก; รูปแบบ IDR เก่า 1
01 การระบุตัวตนรอง; รูปแบบ IDR เก่า 1
02 รหัสประจำตัวเพิ่มเติม; รูปแบบ IDR 2
03 รหัสประจำตัวหลัก; รูปแบบ IDR 3
04 การระบุตัวตนรอง; รูปแบบ IDR 3
2-3 2 ความยาว เลขฐานสอง ความยาวของข้อมูล IDR เป็นจำนวนเต็มที่ไม่ติดลบและมากกว่าศูนย์
4+ ข้อมูล IDR ตามรูปแบบที่ระบุในไบต์ที่ 1 ของฟิลด์นี้ โปรดดู ตาราง รูปแบบ IDR ที่เกี่ยวข้อง สำหรับรายละเอียดเพิ่มเติม

รูปแบบ IDR 1

โปรดทราบว่า ต่างจากค่าตัวเลขส่วนใหญ่ที่จัดเก็บในไฟล์ GOFF ค่า "version", "release" และ "trans_date" เป็นตัวเลขในรูปแบบข้อความ ไม่ใช่เลขฐานสอง

รูปแบบที่ 1 (รูปแบบเก่า)
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0-9 10 นักแปล ข้อความใดๆ ค่านี้คือค่าที่แอสเซมเบลอร์หรือคอมไพเลอร์ใช้ระบุตัวตนของมันเอง IBM เรียกค่านี้ว่า "ค่า PID" หรือ "ค่ารหัสโปรแกรม" ตามหมายเลขแคตตาล็อกของโปรแกรมต่างๆ ของ IBM เช่น คอมไพเลอร์ Cobol สำหรับ OS/VS1 เรียกว่า "IKFCBL00"
10-11 2 เวอร์ชั่น สองหลัก นี่คือหมายเลขเวอร์ชันของแอสเซมเบลอร์หรือคอมไพเลอร์ ซึ่งมีค่าตั้งแต่ 0 ถึง 99
12-13 2 ปล่อย สองหลัก นี่คือหมายเลขรุ่นย่อยของหมายเลขเวอร์ชันด้านบน ซึ่งมีค่าตั้งแต่ 0 ถึง 99
14-18 5 วันที่ทำรายการ YYDDD ประกอบด้วยอักขระข้อความ 5 ตัวที่ระบุปี 2 หลัก และวัน 3 หลักของปีที่โมดูลนี้ถูกคอมไพล์หรือประกอบขึ้น โดยปี 01-65 ถือว่าอยู่ในศตวรรษที่ 21 ขณะที่ปี 00 หรือปีที่มากกว่า 65 ถือว่าอยู่ในศตวรรษที่ 20 เช่น ปี 2000 หรือปี 1966-1999 วัน 3 หลักเริ่มต้นที่ 001 สำหรับวันที่ 1 มกราคม; 032 สำหรับวันที่ 1 กุมภาพันธ์; 060 คือวันที่ 1 มีนาคมในปีปกติและวันที่ 29 กุมภาพันธ์ในปีอธิกสุรทิน; และต่อเนื่องไปจนถึง 365 สำหรับวันที่ 31 ธันวาคมในปีปกติและ 366 สำหรับปีอธิกสุรทิน

รูปแบบ IDR 2

โดยปกติแล้ว คอมไพเลอร์และแอสเซมเบลอร์จะไม่สร้างเรคอร์ดรูปแบบนี้ขึ้นมา โดยทั่วไปแล้วเรคอร์ดนี้จะถูกสร้างขึ้นโดยโปรแกรมผูกไฟล์ (binder)

รูปแบบที่ 2
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0-3 4 วันที่ รูปแบบเลขฐานสิบแบบแพ็ค YYYYDDDF โมดูลวันที่ถูกประกอบหรือรวบรวม โดยระบุปีและวันของปี
4-5 2 ความยาวข้อมูล ค่าไบนารี ความยาวจริงของฟิลด์ถัดไป ซึ่งเป็นค่าที่ไม่ติดลบและไม่ใช่ศูนย์
6-85 80 ข้อมูล IDR รูปแบบของข้อมูลนี้ยังไม่ได้รับการเปิดเผย

รูปแบบ IDR 3

ข้อความทั้งหมดในเอกสารนี้เป็นข้อมูลตัวอักษร ไม่มีการใช้ข้อมูลไบนารี

รูปแบบที่ 3
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0-9 10 นักแปล ค่าข้อความใดๆ ที่ผู้เขียนคอมไพเลอร์/แอสเซมเบลอร์ต้องการใช้เพื่อระบุตัวตน (ดูช่อง Translator ในรูปแบบ IDR เก่า 1ด้านบน)
10-11 2 เวอร์ชั่น 00 ถึง 99 หมายเลขเวอร์ชันของแอสเซมเบลอร์หรือคอมไพเลอร์
12-13 2 ปล่อย 00 ถึง 99 หมายเลขรุ่นของเวอร์ชันข้างต้น
14=20 7 วันที่คอมไพล์ YYYYDDD ปีและวันในรอบปีที่โปรแกรมถูกรวบรวมหรือประกอบขึ้น (รูปแบบจะเหมือนกับช่อง 'วันที่ทำรายการ' จากแบบฟอร์ม IDR รูปแบบที่ 1ด้านบน ยกเว้นปีจะเป็นปีแบบเต็ม 4 หลัก)
21-29 9 เวลาคอมไพล์ เอชเอชเอ็มเอ็มเอสเอสทีทีที ชั่วโมง นาที วินาที และเศษส่วนของวินาทีที่โปรแกรมถูกคอมไพล์หรือประกอบขึ้น

อาร์แอลดี

ระเบียน RLD ช่วยให้โมดูลสามารถแสดงตำแหน่งที่อ้างอิงถึงที่อยู่ที่ต้องย้าย เช่น การอ้างอิงถึงตำแหน่งเฉพาะภายในตัวมันเอง หรือการอ้างอิงถึงโมดูลภายนอก

รายชื่อสถานที่ย้ายถิ่นฐาน
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0-2 3 พีทีวี X'032000' บันทึกไม่ต่อเนื่อง
X'032100' สถิติยังคงดำเนินต่อไปในสถิติถัดไป
3 1 ที่สงวนไว้
4-5 2 ความยาว เลขฐานสอง ขนาดของข้อมูลการย้ายตำแหน่ง; ไม่มีเครื่องหมายและต้องมากกว่าศูนย์
6- ข้อมูลการย้ายที่อยู่ ข้อมูลการย้ายที่อยู่ โปรดดูตาราง ข้อมูลการย้ายที่อยู่
REM ไม่มีในระเบียนที่มีความยาวแปรผัน ส่วนที่เหลือของระเบียนหากระเบียนยาวกว่าข้อมูล จะต้องเติมด้วยเลขศูนย์

ข้อมูลการย้ายถิ่นฐาน

รายการข้อมูลการย้ายที่อยู่
ไบต์ ขนาด สนาม ค่า วัตถุประสงค์
0-5 6 ธง เครื่องหมายที่เกี่ยวข้องกับรายการนี้ โปรดดู ตาราง เครื่องหมายสำหรับค่าต่างๆ
6-7 2 ที่สงวนไว้
8-11 4 R_Pointer รหัส ESDID ของโมดูล (ประเภท ED หรือ ER) ที่จะใช้เป็นเป้าหมายในการย้ายตำแหน่ง นี่คือที่อยู่ "ระยะไกล" ซึ่งอาจอยู่ในโมดูลเดียวกันหรือต่างกัน ที่โปรแกรมต้องการให้ระบุ ฟิลด์นี้จะถูกละเว้นหากบิตที่ 0 ของไบต์ที่ 0 ใน ฟิลด์ Flagsเป็น 1
12-15 [A]4 พี_พอยน์เตอร์ ESDID ของโมดูลที่ต้องการย้ายที่อยู่ นี่คือโมดูลที่ต้องการแก้ไขการอ้างอิงถึงตัวระบุระยะไกลให้เป็นค่าที่ถูกต้อง ฟิลด์นี้จะถูกละเว้นหากบิตที่ 1 ของไบต์ที่ 0 ใน ฟิลด์ Flagsเป็น 1
16-19 [B]4 ออฟเซ็ต ตำแหน่งภายในโมดูลที่ระบุโดย P_Pointer ซึ่งเป็นที่ตั้งของที่อยู่ที่จะทำการปรับเปลี่ยน นี่คือที่อยู่ที่จะย้าย หากบิตที่ 2 ของไบต์ที่ 0 ใน ฟิลด์ Flagsเป็น 1 ฟิลด์นี้จะถูกละเว้น
20-23 [C]4 ที่สงวนไว้
24-27 [C]4 ที่สงวนไว้

[A] หาก ละเว้นR_Pointer (บิตที่ 0 ของไบต์ที่ 0 ของ ฟิลด์ Flags เป็น 1) ฟิลด์นี้จะเริ่มต้นต่ำลง 4 ไบต์ ในไบต์ที่ 8-11 [B]หากละเว้น R_Pointerหรือ P_Pointer (บิตที่ 1 ของไบต์ที่ 0 ของ ฟิลด์ Flagsเป็น 1) ฟิลด์นี้จะเริ่มต้นต่ำลง 4 ไบต์ ในไบต์ที่ 12-15 หากละเว้นทั้งสอง ฟิลด์ ฟิลด์นี้จะเริ่มต้นต่ำลง 8 ไบต์ ในไบต์ที่ 8-11 [C]หากละเว้น R_Pointer, P_Pointerหรือ Offset (บิตที่ 2 ของไบต์ที่ 0 ของ ฟิลด์ Flagsเป็น 1) ฟิลด์นี้จะเริ่มต้นต่ำลง 4 ไบต์ หากละเว้นสองตัวใดตัวหนึ่ง ฟิลด์นี้จะเริ่มต้นต่ำลง 8 ไบต์ หากละเว้น ทั้งหมด ฟิลด์นี้จะเริ่มต้นต่ำลง 12 ไบต์

เพื่อความชัดเจน หากโมดูลในโปรแกรมภาษาซีชื่อ "Basura" เรียกใช้ฟังก์ชัน "exit" เพื่อยุติการทำงาน ที่อยู่ของ R_Pointer จะเป็น ESDID ของรูทีน "exit" ในขณะที่ P_Pointer จะเป็น ESDID ของ "Basura" หากที่อยู่ดังกล่าวอยู่ในโมดูลเดียวกัน (เช่น ซับรูทีนภายใน หรือการอ้างอิงถึงข้อมูลภายในโมดูลเดียวกัน) R_Pointer และ P_Pointer จะมีค่าเดียวกัน

ธง

แฟล็กรายการ RLD
ไบต์ ขนาด สนาม บิต วัตถุประสงค์
0 1 รหัส R เดียวกัน 0 1. ถ้าค่า R_Pointer สำหรับรายการนี้เหมือนกับรายการก่อนหน้าในระเบียนนี้ ค่า R_Pointer จะถูกละเว้นจากรายการนี้
รหัส P_ID เดียวกัน 1 1. ถ้าค่า P_Pointer สำหรับรายการนี้เหมือนกับรายการก่อนหน้าในระเบียนนี้ ค่า P_Pointer จะถูกละเว้นจากรายการนี้
ออฟเซ็ตเดียวกัน 2 1. ถ้าค่า Offset สำหรับรายการนี้เหมือนกับรายการก่อนหน้าในระเบียนนี้ ค่า Offset จะถูกละเว้นจากรายการนี้
3-4 ที่สงวนไว้
5 ที่สงวนไว้
ความยาวออฟเซ็ต 6 0 เพื่อระบุความยาว 4 ไบต์
ความไวของโหมดการกำหนดที่อยู่ 7 0 ไม่มีความไว
1. ตั้งค่าบิตสูงของแอดเดรสให้เหมือนกับโหมดการกำหนดแอดเดรสแบบ R ของแอดเดรส R_Pointer (ใช้ได้เฉพาะกับแอดเดรสประเภท V เท่านั้น)
1 1 ตัวบ่งชี้ R_Pointer_Indicators 0-3 ประเภทข้อมูลของตัวดำเนินการที่สองของที่อยู่ย้ายถิ่นฐาน
0 - ที่อยู่ R
1 - ค่าออฟเซ็ตจากจุดเริ่มต้นของแอดเดรส R
2 - ความยาว R (0 สำหรับสินค้า LD)
6 - ความสัมพันธ์โดยตรงแบบสัมพัทธ์ (เพื่ออนุญาตให้คำสั่งอ้างอิงถึงสัญลักษณ์ภายนอก)
7 - ค่าคงที่ R (พื้นที่ข้อมูลที่ไม่ใช้ร่วมกัน)
ที่อยู่การเลื่อนตำแหน่งยาว 9-20 บิต
ค่าอื่นๆ ทั้งหมดสงวนไว้
4-7 ประเภทของรายการที่อ้างอิงถึงมูลค่าที่ต้องย้ายที่ตั้ง
0 - ป้ายกำกับ, R-ID ถูกจำกัดไว้เฉพาะ LD
1 - องค์ประกอบ R-ID ถูกจำกัดไว้เฉพาะ ED
2 - คลาส R-ID ถูกจำกัดไว้เฉพาะ ED เท่านั้น คลาสไม่มีชื่อภายนอก ดังนั้นจึงไม่มี ESDID
3 - ส่วน R-ID จำกัดเฉพาะ PR เท่านั้น
ค่าอื่นๆ ทั้งหมดสงวนไว้
2 1 การกระทำหรือการดำเนินการ 0-6 ประเภทของการดำเนินการที่จะใช้กับตัวถูกดำเนินการตัวที่สอง (ตัวถูกดำเนินการตัวแรกจะเป็น 0) ผลลัพธ์ที่ได้คือค่าแบบมีเครื่องหมาย 32 บิต ซึ่งจะแทนที่ตัวถูกดำเนินการตัวแรก
0 - เพิ่มตัวถูกดำเนินการตัวที่สองเข้ากับตัวแรก
1 - ลบตัวถูกดำเนินการตัวที่สองออกจากตัวแรก
ค่าอื่นๆ ทั้งหมดสงวนไว้
แก้ไขการดึง/จัดเก็บเป้าหมาย 7 ระบุว่าจะใช้หรือละเว้นค่าเป้าหมาย
0 - ใช้ฟิลด์ fixup/target เป็นตัวดำเนินการตัวแรก
1 - ไม่สนใจค่าของฟิลด์เป้าหมาย ใช้ค่าที่แก้ไขแล้วเป็นตัวดำเนินการตัวแรก หากไม่มีค่าที่แก้ไขแล้ว ให้ใช้ 0
3 1 ที่สงวนไว้
4 1 ความยาวเป้าหมาย ความยาวของฟิลด์เป้าหมาย (หน่วยเป็นไบต์) ที่ไม่มีเครื่องหมาย
5 1 ที่สงวนไว้

เลน

ระเบียน LEN ใช้สำหรับประกาศความยาวของโมดูลในกรณีที่ไม่ทราบความยาวในขณะที่สร้างระเบียน ESD เช่น สำหรับคอมไพเลอร์แบบผ่านครั้งเดียว

สนาม ออฟเซ็ต ขนาด คำอธิบาย
พีทีวี 0-2 3 ประเภทบันทึก X'033000'
3-5 3 ที่สงวนไว้
ความยาว 6-7 2 ความยาวของรายการที่อยู่ถัดจากช่องนี้ ค่าต้องไม่ใช่ศูนย์
องค์ประกอบ 8- ข้อมูลความยาวขององค์ประกอบ โปรดดูตาราง องค์ประกอบ ด้านล่าง
REM ข้อมูลส่วนท้ายสุดของระเบียนสำหรับระเบียนที่มีความยาวคงที่ ต้องมีเลขฐานสองเป็นศูนย์ แต่จะไม่มีในระเบียนที่มีความยาวแปรผัน

องค์ประกอบ

ไม่สามารถต่อหรือแบ่งรายการองค์ประกอบที่มีความยาวที่กำหนดไว้ล่วงหน้าได้

สนาม ออฟเซ็ต ขนาด คำอธิบาย
เอสดีไอดี 0-3 4 ESDID ขององค์ประกอบที่ค่านี้ใช้บังคับ
4-7 4 ที่สงวนไว้
ความยาว 8-11 4 ความยาวของรายการที่อ้างอิง

จบ

END ต้องเป็นเรคอร์ดสุดท้ายสำหรับโมดูล 'จุดเริ่มต้น' (Entry Point) ใช้เมื่อต้องการใช้ที่อยู่ที่ไม่ใช่จุดเริ่มต้นของโมดูลเป็นจุดเริ่มต้นในการดำเนินการ อาจใช้เนื่องจากโปรแกรมมีข้อมูลที่ไม่สามารถเรียกใช้งานได้ปรากฏอยู่ก่อนเริ่มต้นโมดูล (พบได้บ่อยในโปรแกรมเมอร์ภาษาแอสเซมบลีรุ่นเก่า เนื่องจากแอสเซมเบลอร์เวอร์ชันเก่าทำงานช้ากว่ามากในการประกอบข้อมูลที่เก็บไว้ในโปรแกรมเมื่อมีการระบุคำสั่งแล้ว)

สนาม ออฟเซ็ต ขนาด บิต คำอธิบาย
พีทีวี 0-2 3 X'034000' - ไม่ต่อ
X'034100' - ต่อในบันทึกถัดไป
3 0-5 6 ที่สงวนไว้
ธง 6-7 2 คำประกาศเกี่ยวกับการมีหรือไม่มีจุดทางเข้า
00 - ไม่ได้ระบุจุดเริ่มต้น; ค่าอื่นๆ ทั้งหมดในระเบียนนี้ไม่ถูกต้อง
01 - จุดเข้าที่ระบุโดย ESDID
10 - จุดเริ่มต้นที่ระบุด้วยชื่อ
11 - สำรองที่นั่ง
โหมด 4 1 ค่าโหมดการกำหนดที่อยู่ของจุดเริ่มต้น; ค่าต่างๆ จะเป็นไปตามที่ระบุไว้ในช่อง 0 ของ ตาราง คุณลักษณะพฤติกรรมในบันทึก ESD
5-7 3 ที่สงวนไว้
จำนวนบันทึก 8-11 4 จำนวนระเบียน GOFF ในโมดูลนี้ (นี่คือจำนวนระเบียน "เชิงตรรกะ" กล่าวคือ ไม่นับรวมส่วนต่อขยาย)
เอสดีไอดี 12-15 4 ค่าของ ESDID หากจุดเริ่มต้นถูกอ้างอิงโดย ESDID; ค่าศูนย์ไบนารีหากถูกอ้างอิงโดยชื่อ
16-19 4 ที่สงวนไว้
ออฟเซ็ต 20-23 4 ค่าชดเชยที่อยู่ของจุดเริ่มต้นโมดูล; ไม่สามารถระบุค่านี้สำหรับจุดเริ่มต้นภายนอก (ER) ได้
ชื่อ ความยาว 24-25 2 ความยาวของชื่อ ต้องเป็นศูนย์หากจุดเริ่มต้นถูกระบุโดย ESDID
ชื่อ 26- ชื่อของสัญลักษณ์ภายนอกที่ใช้เป็นจุดเริ่มต้นสำหรับโมดูลนี้ จะเป็นเลขศูนย์ไบนารีหากจุดเริ่มต้นถูกระบุโดย ESDID หากบันทึกนี้ต่อเนื่องกัน นี่คืออักขระ 54 ตัวแรกของชื่อ นี่เป็นค่าที่ไม่ใช่ไบนารีเพียงค่าเดียวในบันทึก ซึ่งจะเป็นช่องข้อความที่แสดงชื่อสาธารณะสำหรับจุดเริ่มต้น
REM ส่วนท้ายของข้อมูลควรเป็นเลขศูนย์ไบนารีจนถึงท้ายข้อมูลสำหรับข้อมูลที่มีความยาวคงที่ และละเว้นสำหรับข้อมูลที่มีความยาวแปรผัน

ต่อเนื่อง

หากชื่อจุดเริ่มต้นที่ระบุในระเบียน END ที่มีความยาวคงที่นั้นยาวเกิน 54 ไบต์ หรือ (หากระเบียนนี้มีการต่อเติมด้วย) ยาวเกิน 77 ไบต์เพิ่มเติม จะใช้ระเบียนต่อเติมถัดไป

สนาม ออฟเซ็ต ขนาด คำอธิบาย
พีทีวี 0-2 3 X'034200' - บันทึกต่อเนื่องนี้ไม่ต่อเนื่อง
X'034300' - บันทึกต่อเนื่องนี้ต่อเนื่องไปยังบันทึกถัดไป
ชื่อ 3- ส่วนที่เหลือของชื่อจุดเริ่มต้น เว้นแต่ว่าระเบียนนี้จะถูกสานต่อ ในกรณีนั้นจะเป็นอักขระ 77 ตัวถัดไปของชื่อ
REM หากข้อมูลนี้ไม่ต่อเนื่อง ส่วนนี้จะเป็นส่วนท้ายของข้อมูลสำหรับข้อมูลที่มีความยาวคงที่ และควรเป็นเลขศูนย์ไบนารี ส่วนข้อมูลที่ไม่มีในส่วนนี้จะเป็นส่วนท้ายของข้อมูลที่มีความยาวแปรผัน

หมายเหตุ

  1. ^การใช้งานนี้แตกต่างจากการใช้งานของ IBM ซึ่งโมดูลออบเจ็กต์ (หน่วยการคอมไพล์) อาจประกอบด้วยซับรูทีนหลายตัว เป็นต้น และโมดูลโหลดอาจประกอบด้วยซับรูทีน เป็นต้น จากโมดูลออบเจ็กต์หลายตัว
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=GOFF&oldid=1345996964 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ กอฟฟ์

ข้อกำหนด GOFF (Generalized Object File Format) ได้รับการพัฒนาสำหรับ ระบบปฏิบัติการ MVS ของ IBM เพื่อแทนที่ IBM OS/360 Object File Format เพื่อชดเชยจุดอ่อนในรูปแบบเก่า [ 1 ]

พื้นหลัง

รูปแบบไฟล์อ็อบเจ็กต์ IBM OS/360 ดั้งเดิมได้รับการพัฒนาขึ้นในปี 1964 สำหรับ คอมพิวเตอร์เมนเฟรม IBM System/360 รุ่นใหม่ รูปแบบนี้ยังถูกใช้โดยผู้ผลิต เมนเฟรม แบบเสียบปลั๊กเข้ากันได้ และแบบทำงานคล้ายกัน รวมถึง Univac 90/60, 90/70 และ 90/80 และ Fujitsu B2800...

อนุสัญญา

บทความนี้จะใช้คำว่า "โมดูล" เพื่ออ้างถึงชื่อหรือสัญลักษณ์ที่เทียบเท่าใดๆ ที่ใช้เป็นตัวระบุสำหรับส่วนของโค้ดหรือข้อมูลที่อยู่นอก ขอบเขต ที่อ้างอิงถึง [ ก ] โมดูลอาจอ้างถึงซับรูทีน ฟังก์ชัน ข้อมูล Fortran Common หรือ Block Data อ็อบเจ็กต์หรือคลาส...

ข้อกำหนดและข้อจำกัด

รูปแบบนี้คล้ายกับรูปแบบไฟล์ออบเจ็กต์ OS/360 แต่เพิ่มข้อมูลเพิ่มเติมเพื่อใช้ในการสร้างแอปพลิเคชัน [ 4 ]