MS-DOS และโปรแกรมโหมดข้อความอื่นสามารถแสดงตัวอักษร CJK กว้างสองเท่าได้อย่างไร?


9

ฉันเห็นหน้าจอการตั้งค่า BIOS โหมดข้อความมากมายในภาษาญี่ปุ่นและจีน เมื่อเร็ว ๆ นี้ฉันเคยเห็นการติดตั้ง Windows XP เป็นภาษาญี่ปุ่น MS-DOS มีเวอร์ชั่นภาษาญี่ปุ่นด้วย โหมด Real DOSไม่ใช่พรอมต์คำสั่งของ Windows!

ตั้งค่า BIOS ของญี่ปุ่น

ญี่ปุ่น MS-DOS 6.2

หน้าจอโหมดข้อความหนึ่งทั่วไปมีขนาดของ80x25 เมื่อตัวอักษรภาษาญี่ปุ่นมีขนาดใหญ่เท่ากับความกว้างของตัวอักษรละตินปกติจำนวนสูงสุดของตัวอักษรญี่ปุ่นที่สามารถแสดงในเวลาเดียวกันบนหน้าจอคือประมาณ 1,000 ดังนั้นเราจึงต้องการจุดรหัส 2000เพื่อแสดงส่วนด้านซ้ายและขวาของตัวละคร

เนื่องจากโหมดข้อความเริ่มต้นสามารถแสดงได้เพียง 256 ตัวอักษร แต่ 128 ตัวแรกใช้สำหรับ ASCII ดังนั้นโหมดข้อความที่ใช้งานได้จะถูก จำกัด ไว้ที่ 128 รหัสจุดสูงสุด หากจำเป็นเราสามารถขยายเป็น 512 แต่ยังไม่สามารถรองรับจุดรหัสเพียงพอสำหรับการแสดงผล ฉันสงสัยอยู่เสมอว่าพวกเขาจะแสดงชุดอักขระขนาดใหญ่ด้วยจำนวนอักขระที่ จำกัด ได้อย่างไร

[ โปรแกรมติดตั้ง XP ของญี่ปุ่น] 8]

โหมดข้อความใน Linux ดูเหมือนว่าจะใช้ไดรเวอร์โหมดกราฟิกเพราะสามารถแสดง Unicode และมีสีได้มากขึ้น แต่ฉันไม่สามารถอธิบายได้ว่าพวกเขาทำได้อย่างไรในหน้าจอการตั้งค่า MS-DOS และ BIOS


แก้ไข: ฉันยังพบการป้อนข้อความภาษาญี่ปุ่นสำหรับ DOS

IME ญี่ปุ่น

มีภาษาเกาหลีในโหมดข้อความด้วย!

เกาหลี

VMWare Korean DOS


คุณอาจไม่ได้ดู "ตัวละคร" ภาษาญี่ปุ่นเช่นตัวอักษรคันจิแต่เป็นแบบฮิระงะนะหรือคาตาคานะซึ่งมีการจับคู่แบบ Unicode
ขี้เลื่อย

@sawdust: ดูรูปด้านบนและคุณจะเห็นว่ามันสามารถแสดงไม่เพียง แต่ kana ทั้งหมด แต่ยัง Kanji
phuclv

1
โปรดทราบว่าหน้าเว็บที่คุณอาจจับภาพหน้าจอตัวติดตั้ง OS / 2 จากด้านขวาถัดจากภาพหน้าจอว่า "การสนับสนุนโหมดข้อความกราฟิกเริ่มต้นได้เกือบจะทันทีเมื่อบูตระบบปฏิบัติการ / 2" คำสำคัญแบบกราฟิก
CVN

@ MichaelKjörlingไม่เพียง แต่เป็น OS / 2 เท่านั้น แต่โปรแกรมการตั้งค่า MS-DOS และ BIOS มีความสามารถในโหมดข้อความด้วยเช่นกัน
phuclv

คำตอบ:


6

โหมด "80x25 ตัวอักษร" ปกติคือ 720x350 พิกเซลจริง (หมายถึงเซลล์อักขระแต่ละตัวมีความกว้าง 9 พิกเซลสูง 14 พิกเซล) โหมดตัวอักษรความกว้างสองเท่า ("40x25") สามารถเพิ่มความกว้างให้ใหญ่ขึ้นได้โดยการเพิ่มแต่ละคอลัมน์เป็นสองเท่าเพื่อบันทึกในหน่วยความจำเนื้อหาวิดีโอ (ลดจำนวนหน่วยความจำเนื้อหาวิดีโอที่ต้องการครึ่งหนึ่ง) หรือใช้หน่วยความจำ glyph เพิ่มเติมและเหมือนกัน จำนวนหน่วยความจำเนื้อหาวิดีโอเพื่อเพิ่มเซลล์อักขระเป็น 18 * 14 พิกเซล

ค่อนข้างเร็ว (ฉันคิดว่ามันทำเมื่อเปิดตัวEGA ) รองรับการเพิ่ม glyphs อักขระที่ผู้ใช้กำหนดเองถูกเพิ่มในโหมดการแสดงข้อความของ IBM PC

โหมดข้อความปกติของ IBM PC นั้นเป็นเพียง RAM ลำดับเนื้อหาวิดีโอ 4000 ไบต์ตามที่อยู่เฉพาะ สิ่งเหล่านี้ถูกอ่านเป็นหนึ่งไบต์ของคุณลักษณะของตัวอักษร (แต่เดิมกะพริบเป็นตัวหนาขีดเส้นใต้ ฯลฯ ภายหลังใช้ใหม่สำหรับพื้นหน้าและสีพื้นหลังและกระพริบ / ไฮไลต์ดังนั้นข้อ จำกัด ถึง 16 สีในโหมดข้อความ) และหนึ่งไบต์อธิบายอักขระ จะปรากฏขึ้น สัญลักษณ์จริงที่จะแสดงสำหรับค่าไบต์ของอักขระแต่ละตัวจะถูกเก็บไว้ที่อื่น

ซึ่งหมายความว่าตราบใดที่คุณสามารถทำได้ด้วย 256 glyphs ที่แตกต่างกันบนหน้าจอในแต่ละครั้งและ glyph แต่ละอันสามารถแสดงเป็นบิตแมปขนาด 9x14 หนึ่งบิตคุณสามารถแทนที่ glyphs ในหน่วยความจำเพื่อให้ตัวละครปรากฏต่างออกไป . ในส่วนนี้เป็นส่วนหนึ่งของสิ่งที่mode con codepage selectทำใน DOS นี่เป็นเรื่องเล็กน้อย

หากคุณต้องการร่ายมนตร์ที่แตกต่างกันมากกว่า 256 ตัว แต่สามารถใช้ชีวิตกับจำนวนร่ายมนตร์ที่ลดลงบนหน้าจอคุณสามารถใช้รูปแบบ 40x25 ที่มีความกว้างสองเท่า (18 พิกเซลกว้าง) ร่ายมนตร์ สมมติว่าจำนวนรวมของเนื้อหาวิดีโอ RAM ได้รับการแก้ไขและสมมติว่าคุณสามารถเพิ่มหน่วยความจำ glyph บิตแมปคุณสามารถย้ายไปใช้สองไบต์จากทุกสี่ไบต์เพื่อเป็นตัวแทนของสัญลักษณ์บนหน้าจอเดียวทำให้คุณเข้าถึง 2 ^ 16 = ร่ายมนตร์ที่แตกต่างกัน 65,536 (รวมถึงร่ายมนตร์ว่าง) หากคุณรู้สึกกล้าคุณสามารถข้ามแอตทริบิวต์ที่สองของไบต์ซึ่งให้ร่ายมนตร์ที่แตกต่างกัน 2 ^ 24 ~ 16.7M ทั้งสองวิธีใช้การสนับสนุนซอฟต์แวร์พิเศษ แต่ส่วนฮาร์ดแวร์และเฟิร์มแวร์น่าจะทำได้ง่าย 65,536 glyphs ที่ 18x14 พิกเซลหนึ่งบิตใช้งานได้ประมาณ 2 MiB ซึ่งเป็นหน่วยความจำขนาดใหญ่ แต่ไม่สามารถเอาชนะได้ในเวลานั้น

ภาษาอังกฤษแบบพื้นฐานของสหรัฐอเมริกาต้องการอย่างน้อย 62 ร่ายมนตร์เฉพาะ (หมายเลข 0-9 ตัวอักษร AZ ในตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก) ดังนั้นคุณจึงมีสิ่งที่ชอบ 180-190 ร่ายมนตร์เพื่อเล่นถ้าคุณต้องการที่จะแสดงข้อความภาษาอังกฤษแบบสหรัฐอเมริกาด้วย เวลาและไปกับ 8 bits ต่อ glyph หากคุณสามารถอยู่ได้โดยปราศจากการสนับสนุนภาษาอังกฤษแบบสหรัฐอเมริกาพร้อมกันซึ่งคุณอาจเลือกที่จะทำในสภาพแวดล้อมที่ จำกัด ทรัพยากรเช่นสถาปัตยกรรมพีซี IBM ยุคแรกคุณสามารถเข้าถึง glyphs ได้ทั้งหมด

ด้วยเล่ห์เหลี่ยมบางอย่างคุณอาจผสมและจับคู่สองรูปแบบได้เช่นกัน

ฉันไม่รู้ว่ามันทำอย่างไรจริง ๆแต่ทั้งสองอย่างนี้เป็นโครงร่างที่ใช้งานได้สำหรับวิธีการรับตัวอักษร "แฟนซี" นับจำนวน จำกัด โดยเฉพาะบนหน้าจอ IBM PC ธรรมดาในโหมดข้อความที่ฉันสามารถนั่งด้านหน้า ของ Stack Exchange สักครู่ เป็นไปได้อย่างสมบูรณ์แบบที่มีโหมดกราฟิกเพิ่มเติมที่ทำให้การปฏิบัติง่ายขึ้น

นอกจากนี้ยังเก็บไว้ในใจความแตกต่างระหว่างโหมดข้อความและโหมดกราฟิกแสดงข้อความ หากคุณอยู่ในโหมดกราฟิกบางทีผ่าน VESA ซึ่งได้รับการสนับสนุนอย่างกว้างขวางในระดับสากลคุณก็สามารถวาดรูปสัญลักษณ์ของตัวละครได้เอง แต่คุณยังมีอิสระในการวาดภาพมากขึ้น ตัวอย่างเช่นฉันค่อนข้างมั่นใจว่าส่วนประกอบข้อความของ Windows NT (ซึ่งเป็นตระกูลผลิตภัณฑ์ Windows XP เป็นของ) ใช้โหมดกราฟิกเพื่อแสดงข้อความรวมถึงหน้าจอบูต Windows NT 4.0 และ BSOD


คุณอาจเห็นว่ามีตัวอักษรละตินความกว้างปกติด้านข้างความกว้างสองเท่าเป็นภาษาญี่ปุ่น / เกาหลีดังนั้นจึงไม่สามารถเป็นโหมดความกว้างสองเท่า 40x25 ดังนั้นคุณไม่สามารถรวม 2 ไบต์ของทุก ๆ 4 ไบต์เพื่อแสดงสัญลักษณ์ การใช้บิต 3 ของสีพื้นหน้าคุณสามารถเป็นตัวแทนของ glyphs 512 ในเวลาเดียวกัน แต่ก็ยังไม่เพียงพอหากตัวอักษรเต็มหน้าจอส่วนใหญ่en.wikipedia.org/wiki/VGA-compatible_text_mode#Fonts
phuclv

@ LưuVĩnhPhúcคุณสามารถ repossess บิตสูงหรือใช้เทคนิคอื่น ๆ ที่เป็นไปได้จำนวนมากเพื่อผสมอักขระที่ต้องใช้หลายไบต์กับอักขระไบต์เดียว ฉันยังคิดว่าคำตอบคือการรับรู้คำสั่งในย่อหน้าที่เปิด: แม้ในขณะที่แสดงตัวละครในระดับที่คุณยังคงเกี่ยวข้องกับพิกเซลและพิกเซลเหล่านั้นสามารถทำงานได้แม้ว่าจะไม่ได้โดยตรง
CVn

ฉันรู้ว่าสิ่งที่เป็นข้อความและกราฟิกโหมดการแสดงข้อความเพียงแค่สับสนว่าพวกเขามีจุดรหัสเพียงพอสำหรับมัลติไบต์เป็นส่วนซ้ายและขวาต้องใช้ 2 จุดรหัส แต่จากสิ่งที่คุณพูดฉันคิดว่าจะทำอีกวิธีหนึ่ง ผมคิดว่าคำตอบของคุณเป็นที่ยอมรับ
phuclv

1

นี่เป็นการลดความซับซ้อนของสิ่งที่ @Michael Kjörlingพูด

ในโหมดข้อความคุณมี "หน่วยความจำหน้าจอ" ที่มี 1 ไบต์ต่ออักขระบนหน้าจอที่บอกอะแดปเตอร์ว่าอักขระใดปรากฏในตำแหน่งหน้าจอแต่ละตำแหน่ง (นอกจากนี้ยังมี "แอตทริบิวต์" ไบต์ที่บอกอะแดปเตอร์ว่าสีและสิ่งที่ต้องการขีดเส้นใต้กระพริบ ฯลฯ )

อะแดปเตอร์ใช้ไบต์นี้เพื่อจัดทำดัชนีลงในอีก "ตารางอักขระ" ที่มีขนาดเล็ก 8x12 หรือบิตแมปใด ๆ ของอักขระ DOS เรียกใช้โค้ดเพจของตารางอักขระนี้

เริ่มต้นด้วย CGA คุณสามารถบอกให้อแด็ปเตอร์รับตารางอักขระ ณ สถานที่เฉพาะใน RAM ของอแด็ปเตอร์ อะแดปเตอร์แต่ละตัวมี ROM อักขระที่มี "ฟอนต์" เริ่มต้นสำหรับการ์ดนั้น (ซึ่งเป็นฟอนต์ IBM มาตรฐาน) แต่คุณสามารถบอกให้อแด็ปเตอร์เปลี่ยนไปที่ตำแหน่งใน RAM และวางภาพของคุณเองที่นั่น

ตราบใดที่ซอฟต์แวร์รู้ว่าเกิดอะไรขึ้นรหัสในหน่วยความจำหน้าจอที่ชี้ไปที่รูปภาพในตารางอักขระจะไม่สอดคล้องกับรหัส ASCII ใด ๆ ถึงแม้ว่าจะง่ายกว่าก็ตาม คุณจะสังเกตเห็นมีรหัสหน้าจอหน่วยความจำ (และรูปร่างตารางตัวอักษร) สำหรับ 1-31 ซึ่งเป็นอักขระ ASCII unprintable - แต่โดยการเขียนหน่วยความจำหน้าจอโดยตรง (ความทรงจำรักDEFSEG = &HB800 : POKE 0,1ใน GW-ขั้นพื้นฐานในการเปลี่ยนแปลงตัวละครมากที่สุดบนเพื่อยิ้มมา ใจ) คุณยังสามารถแสดงได้

ดังนั้นการแสดงภาษาอื่น ๆ ก็ใช้ได้ถ้าคุณสามารถใส่รูปภาพที่เหมาะสมลงใน RAM ของอะแดปเตอร์และมีซอฟต์แวร์ที่จำเป็นรองรับ


มันเร็วเท่า CGA หรือเปล่า? ฉันต้องแก่ขึ้น (เพื่อการป้องกันของฉันฉันได้เขียนคำตอบนั้นส่วนใหญ่มาจากความทรงจำและไม่ได้ใช้เทคนิคเหล่านั้นจริง ๆ เพื่อความสนุกสนานอย่างที่ไม่เคยเกิดขึ้นมาก่อน)
CVN

ฉันคิดว่าคุณถูกต้องหลังจากตรวจสอบมันเป็น EGA
LawrenceC

ฉันรู้ว่าเราสามารถเปลี่ยนแบบอักษรของข้อความโดยการเปลี่ยนตัวชี้ฉันได้เรียนรู้วิธีการทำหลายปีก่อน แต่ไม่รู้ว่าพวกเขาสามารถแสดงชุดอักขระไบต์คู่ได้อย่างไรเนื่องจากจุดรหัส 256 หรือ 512 ไม่สามารถเก็บได้ จำนวนสูงสุดของอักขระที่แตกต่างกันบนหน้าจอเพียงพอที่จะไม่นับชุดอักขระที่ซับซ้อนทั้งหมด
phuclv

1

ฉันพบบางสิ่งในหน้า "โหมดข้อความที่เข้ากันได้กับ VGA" ใน Wikipedia และในหนังสือการเขียนโปรแกรม VGA บางเล่ม:

ทั้งโหมดข้อความ EGA และ VGA ช่วยให้สามารถแสดงภาพบนหน้าจอได้ถึง 512 glyphs หรือ 2 ธนาคารที่มี 256 glyphs ในแต่ละภาพ บิตแอททริบิว 3 (ความเข้มของสีพื้นหน้า) ยังสามารถเลือกระหว่างธนาคาร A หรือ B สิ่งที่เกิดขึ้นตามปกติคือโดยค่าเริ่มต้นตัวอักษร A และ B ทั้งสองจะชี้ไปยังที่อยู่เดียวกันโดยให้ 256 glyphs เท่านั้น ดังนั้นเพื่อให้ใช้งานได้คุณต้องตั้งค่า Font Registers เป็น adress ที่ถูกต้อง

แต่ละธนาคารมี 8192 ไบต์และหนึ่งใน 256 ร่ายมนตร์ในธนาคารแต่ละแห่งมี 32 ไบต์ (กว้าง 8 พิกเซลและสูง 32 พิกเซล) คุณสามารถตั้งค่า Scanline Count register เพื่อบอกความสูงที่ถูกต้องของตัวละครของคุณ การ์ด VGA พิมพ์ 400 scanlines บนหน้าจอในขณะที่ EGA พิมพ์ 350 scanlines บนหน้าจอดังนั้นเพื่อให้ 25 แถวอักขระคุณจะตั้งค่าความสูงของอักขระเป็น 16 และ 14 บรรทัดตามลำดับ นอกจากนี้ใน VGA แต่ละสัญลักษณ์สามารถมีความกว้างได้ 8 หรือ 9 จุด แต่คอลัมน์ที่ 9 นั้นว่างเปล่าหรือเป็นเพียงการทำซ้ำคอลัมน์ที่ 8 ร่ายมนตร์เหล่านี้ทั้งหมดในธนาคารทั้งสองสามารถกำหนดโดยผู้ใช้

คุณจะได้รับอักขระบนหน้าจอมากกว่า 256 ตัวในบางภาษาได้อย่างไร ในตัวอย่างข้างต้นอักขระพิเศษต่างประเทศแต่ละตัวทำจากร่ายมนตร์สองตัว (ซ้ายและขวา) หรือมากกว่า คุณสามารถตั้งค่าแรกพูด 128 glyphs จากธนาคาร A นอกเหนือจากข้อความ ASCII และคุณยังคงมี 128 glyphs จากธนาคาร A + 256 glyphs จากธนาคาร B = 384 glyphs เพื่อให้คุณปรับแต่ง

นอกจากนี้คุณสามารถรวมด้านซ้ายและขวาที่แตกต่างกันเพื่อสร้างชุดตัวละครที่ยิ่งใหญ่! ตัวอย่างเช่นสมมติว่าจากร่ายมนตร์ที่กำหนดโดยผู้ใช้ 384 คุณต้องการสำรอง 184 สำหรับด้านซ้ายและ 200 สำหรับด้านขวา: คุณสามารถมีอักขระที่แตกต่างกัน 184 * 200 = 36800 ตัว! (แน่นอนว่าส่วนใหญ่อาจเป็นอักขระที่ไม่ถูกต้องสำหรับภาษานั้น แต่คุณยังคงได้รับชุดค่าผสมที่ถูกต้องจำนวนมาก)

ในตัวอย่างภาษาญี่ปุ่นด้านบนคุณมีอักขระ "ha" และ "ba" ที่ใช้ร่วมกันสัญลักษณ์ด้านซ้าย เช่นเดียวกันสำหรับ charaters "si" และ "zi" "ko" และ "ni" ทางด้านขวามีความคล้ายคลึงกันมากดังนั้นพวกเขาสามารถแบ่งปันร่ายมนตร์ด้านขวาเดียวกันได้ อาจกล่าวได้เช่นเดียวกันกับอักขระ "ru" และ "ro" ด้วยการออกแบบที่ดีคุณสามารถขยายชุดตัวละครของคุณได้เป็นอย่างดี สัญลักษณ์ทางด้านขวาของอักขระ "le" ปรากฏที่ด้านบนซ้ายของหน้าจอ (เป็นสีเทา) และในแถบเลื่อนแนวตั้งปุ่มขึ้นและลงก็เปลี่ยนไปเช่นกันซึ่งหมายความว่าอย่างน้อยส่วนหนึ่งของธนาคาร A ก็ใช้เพื่อรองรับร่ายมนตร์ใหม่

โดยสรุปฟังก์ชั่นสตริง BIOS ในยุคพีซีตอนต้นไม่ได้เป็น Unicode ที่รู้ตัว แต่ก็ไม่จำเป็นต้องเป็น สิ่งที่คุณต้องทำคือปรับแต่งสัญลักษณ์ร่ายมนตร์ 512 และตั้งค่า EGA หรือ VGA ที่ถูกต้อง ตัวอย่างเช่นคุณสามารถปรับแต่ง "! @" "# $" "% ^" "& *" "çé" "ñÑ" ร่ายมนตร์เป็นอักขระต่างประเทศของคุณ (ในธนาคาร A หรือ B) จากนั้นทำการพิมพ์ BIOS "! @ # S% ^ & * çéñÑ "สตริงในครั้งเดียว BIOS จะไม่ตรวจสอบร่ายมนตร์ คุณไม่สามารถใช้ฟังก์ชัน BIOS ได้เลยเนื่องจากคุณสามารถเขียนลงในหน่วยความจำวิดีโอได้โดยตรง หากต้องการใช้สัญลักษณ์จากธนาคาร B เพียงตั้งค่าแอตทริบิวต์ Foreground Color ให้เป็นค่าระหว่าง 8 ถึง 15 (สีสดใส)

(ขอโทษด้วยภาษาอังกฤษที่ไม่ดีของฉัน)


ฉันรู้ว่าเราสามารถมี 512 ตัวอักษรตามที่กล่าวถึงในคำถาม อย่างไรก็ตามสิ่งเหล่านี้คือโปรแกรมเหล่านั้นกำลังแสดงตัวอักษรคันจิตัวจริงไม่ใช่ Kana ซึ่งเพิ่มจำนวนของสิ่งที่แสดงในเวลาเดียวกันอย่างมีนัยสำคัญ ในระบบที่มีการเข้ารหัสแบบครึ่งความกว้าง Katakana จะถูกใช้ซึ่งแยก maru และ tenten ดังนั้นรหัสจุดเดียวกันนี้สามารถใช้ได้ทั้งしและじ, หรือはและばโดยไม่ต้องแบ่งปันส่วนซ้ายและขวา
phuclv

0

ฉันทำการค้นคว้าบางอย่างและตามที่คาดไว้คุณต้องใช้โหมดกราฟิกหรือต้องการการสนับสนุนฮาร์ดแวร์พิเศษเนื่องจากไม่มีวิธีใช้อักขระมากกว่า 512 ตัวในโหมดข้อความ VGA

ดีโอตัวเองไม่สามารถพิมพ์ในชุดอักขระเกิน 1 ไบต์ต่อถ่านเพราะมันใช้ฟังก์ชั่น BIOS ซึ่งจะใช้ฮาร์ดแวร์ VGA ซึ่งไม่สามารถมีแบบอักษรขนาดตัวอักษรมากกว่า 2 x 256 ตัว ดังนั้นสิ่งนี้จึงดูเหมือนเป็นงานสำหรับ DRIVER ซึ่งใช้โหมดกราฟิกเพื่อแสดงแบบอักษรที่หลากหลาย เราได้รับการสนับสนุนสำหรับฟอนต์ Unicode ในตัวแก้ไขข้อความ DOS แบบกราฟิกสองสามอันและที่คล้ายกัน (ขอบคุณ :-)) และไม่ว่าจะใช้ DBCS หรือ UTF-8 ทั้งสองแบ่งปัน "ขนาดของตัวละครสามารถเป็นหนึ่งหรือหลายไบต์" จัดการ "ความผิดปกติ" .

จะมีการสนับสนุนอย่างเป็นทางการสำหรับภาษาญี่ปุ่นใน FreeDOS หรือไม่?

เวอร์ชั่นญี่ปุ่นของดอส (DOS / V)ใช้วิธีแรกและจำลองโหมดข้อความโดยการแสดงผลตัวอักษรในโหมดกราฟิกโดยใช้โปรแกรมควบคุมพิเศษ ไดรเวอร์ดังต่อไปนี้มาตรฐาน IBM V-Text ซึ่งเป็นกลไกสำหรับขยายความสามารถในการแสดงข้อความของ DOS คุณสามารถเลือกระหว่างแบบอักษร 16/24/32/48 จุดที่หลากหลายเช่นนี้

แบบอักษร DOS / V

ระบบข้อความอื่น ๆ บางระบบใช้เทคนิคเดียวกัน ใน FreeDOS คุณสามารถโหลดไดร์เวอร์พิเศษเพื่อรองรับภาษาญี่ปุ่น

FreeDOS ไดรเวอร์ภาษาญี่ปุ่น

โหมดแสดงภาพจะสกัดกั้นการโทรภายในเวลา 10 ชั่วโมงและ 21 ชั่วโมงและวาดข้อความด้วยตนเองดังนั้นจึงสามารถใช้งานได้กับโปรแกรมภาษาอังกฤษทั่วไป แต่มันจะไม่ทำงานสำหรับโปรแกรมที่เขียนไปยังหน่วยความจำ VGA โดยตรง สำหรับการพิมพ์ตัวอักษรภาษาญี่ปุ่น int 5h และ 17h int จะติดกัน

ตามคู่มือDOS / V ในภายหลัง IBM BIOS ยังเพิ่มการรองรับ V-Text ผ่าน int 15h ด้วยฟังก์ชันใหม่ 4 รายการด้านล่าง

5010H Video extension information acquisition
5011H Video extension function registration
5012H Video extension driver release
5013H Video extension driver lock setting

ฉันคิดว่านี่เป็นเหตุผลที่ฉันเห็นการสนับสนุนภาษาญี่ปุ่นใน BIOS ของพีซีเครื่องเก่า

อย่างไรก็ตามความเชื่องช้าของโหมดกราฟิกอาจทำให้เกิดข้อบกพร่องในขณะที่เลื่อนซึ่งต้องการการจัดการเป็นพิเศษ

DOS / V เป็นโซลูชันซอฟต์แวร์ตัวแรกสำหรับโหมดข้อความภาษาญี่ปุ่น

ในขณะเดียวกันการวิจัยอย่างจริงจังเกิดขึ้นที่ IBM Japan ตั้งแต่ต้นทศวรรษ 1980 เพื่อผลิตโซลูชันซอฟต์แวร์สำหรับปัญหาการแสดงตัวอักษรญี่ปุ่น ด้วยการมาถึงของจอภาพ VGA ความละเอียดสูงตัวประมวลผลที่เร็วขึ้นและความทรงจำและฮาร์ดไดรฟ์ที่มีขนาดใหญ่ขึ้นนักออกแบบของห้องปฏิบัติการวิจัย Fujisawa และ Yamato ของ IBM ตระหนักว่าข้อมูลเกี่ยวกับรูปร่างและขนาดของตัวอักษรคันจิสามารถเก็บไว้ในดิสก์ และแสดงผลผ่าน VRAM ในโหมดกราฟิก (โดยปกติแล้ว "V" ใน DOS / V นั้นมาจากหน้าจอ VGA ที่จำเป็นสำหรับการแสดงตัวอักษรญี่ปุ่นผ่านทางซอฟต์แวร์)

DOS / V: ปัญหาเกี่ยวกับซอฟท์แวร์ (พัสดุ) ถึงฮาร์ด (เครื่อง)

อ้างอิงจากบทความเดียวกันก่อนที่จะมีการคิดค้นระบบอื่น ๆ ของ DOS / V ทุกคนต้องมี Kanji ROM ในฮาร์ดแวร์

คอมพิวเตอร์ทุกยี่ห้อใช้วิธีแก้ไขปัญหาฮาร์ดแวร์เพื่อจัดการกับการแสดงตัวอักษรญี่ปุ่นจัดเก็บข้อมูลสำหรับตัวละครทั้งหมดบนชิปพิเศษที่รู้จักกันในชื่อ kanji ROMs วิธีนี้ต้องใช้รหัสดับเบิลไบต์สำหรับอักขระแต่ละตัวของคีย์บอร์ดที่จะถูกส่งไปยัง CPU ซึ่งจะดึงอักขระที่สอดคล้องกันจากตัวอักษรคันจิ ROM และส่งไปยังหน้าจอผ่านทาง VRAM โหมดข้อความ การใช้ตัวอักษรคันจิของ ROM หมายความว่ารูปร่างของตัวละครแต่ละตัวได้รับการแก้ไขในขณะที่การใช้โหมดข้อความ VRAM ตั้งค่าขนาด 16x16 จุดมาตรฐานสำหรับตัวละครแต่ละตัว

ตัวอย่างเช่นIBM Personal System / 55ซึ่งใช้อะแด็ปเตอร์กราฟิกพิเศษที่มีฟอนต์ภาษาญี่ปุ่นดังนั้นพวกเขาจึงได้รับโหมดข้อความจริง

ในช่วงต้นทศวรรษ 1980 ไอบีเอ็มญี่ปุ่นเปิดตัวคอมพิวเตอร์ส่วนบุคคลที่ใช้ x86 สองบรรทัดสำหรับภูมิภาคเอเชียแปซิฟิก IBM 5550 และ IBM JX แบบอักษร 5550 อ่านคันจิจากดิสก์และดึงข้อความเป็นอักขระกราฟิกบนจอภาพความละเอียดสูง 1024 x 768

https://en.wikipedia.org/wiki/DOS/V#History

คล้ายกับ IBM 5550 โหมดข้อความคือ 1040x725 พิกเซล (12x24 และ 24 x 24 พิกเซลตัวอักษร 80x25 ตัวอักษร) ใน 8 สีสามารถแสดงตัวอักษรญี่ปุ่นอ่านจากอักษร ROM

สถาปัตยกรรม AXใช้อะแดปเตอร์ JEGA พิเศษแทนการ EGA มาตรฐาน

AX (Architecture eXtended) เป็นความคิดริเริ่มด้านคอมพิวเตอร์ของญี่ปุ่นที่เริ่มต้นในปีพ. ศ. 2529 เพื่ออนุญาตให้พีซีจัดการข้อความภาษาญี่ปุ่นแบบดับเบิลไบต์ (DBCS) ผ่านชิปฮาร์ดแวร์พิเศษขณะที่อนุญาตให้เข้ากันได้กับซอฟต์แวร์ที่เขียนสำหรับพีซี IBM ในต่างประเทศ

...

ในการแสดงตัวอักษรคันจิด้วยความคมชัดที่เพียงพอเครื่อง AX มีหน้าจอ JEGA (ja) ที่มีความละเอียด 640x480 มากกว่าความละเอียด EGA มาตรฐาน 640x350 ที่แพร่หลายในที่อื่น โดยทั่วไปผู้ใช้สามารถสลับระหว่างโหมดญี่ปุ่นและอังกฤษได้โดยพิมพ์ 'JP' และ 'US' ซึ่งจะเรียกใช้ AX-BIOS และ IME เพื่อให้สามารถป้อนอักขระภาษาญี่ปุ่นได้

รุ่นที่ใหม่กว่ายังเพิ่มฮาร์ดแวร์ AX-VGA / H พิเศษและ AX-VGA / S สำหรับซอฟต์แวร์การจำลองบน VGA

อย่างไรก็ตามไม่นานหลังจากการเปิดตัว AX แล้วไอบีเอ็มได้ปล่อยมาตรฐาน VGA ซึ่ง AX นั้นเห็นได้ชัดว่าเข้ากันไม่ได้ (พวกเขาไม่ใช่คนเดียวที่ส่งเสริมการขยาย "super EGA" ที่ไม่ได้มาตรฐาน) ดังนั้นกลุ่ม AX จึงต้องออกแบบ AX-VGA (ja) ที่เข้ากันได้ AX-VGA / H เป็นการใช้งานฮาร์ดแวร์กับ AX-BIOS ในขณะที่ AX-VGA / S เป็นการจำลองซอฟต์แวร์

เนื่องจากซอฟต์แวร์และปัญหาอื่น ๆ ที่มีอยู่น้อย AX จึงล้มเหลวและไม่สามารถทำลาย PC-9801 ในญี่ปุ่นได้ ในปี 1990 IBM ญี่ปุ่นเปิดตัว DOS / V ซึ่งเปิดใช้งาน IBM PC / AT และโคลนเพื่อแสดงข้อความภาษาญี่ปุ่นโดยไม่ต้องใช้ฮาร์ดแวร์เพิ่มเติมใด ๆ โดยใช้การ์ด VGA มาตรฐาน หลังจากนั้นไม่นาน AX ก็หายไปและการลดลงของ NEC PC-9801 ก็เริ่มขึ้น

NEC PC-98 ชุดยังมีรอมตัวอักษรในการควบคุมการแสดงผล

PC-98 มาตรฐานมีตัวควบคุมการแสดงผล µPD7220 สองตัว (ตัวหลักและตัวรอง) พร้อมหน่วยความจำหลัก 12 KB และ RAM วิดีโอ 256 KB ตามลำดับ คอนโทรลเลอร์การแสดงผลหลักจัดการกับฟอนต์ ROM แสดง JIS X 0201 (7x13 พิกเซล) และ JIS X 0208 (15x16 พิกเซล) อักขระ

ฉันไม่รู้สถานการณ์ของจีนและเกาหลี แต่ฉันคิดว่าใช้เทคนิคแบบเดียวกัน ฉันไม่แน่ใจว่ามีวิธีอื่นใดที่จะบรรลุเป้าหมายดังกล่าวหรือไม่


-1

คุณต้องใช้โหมดกราฟิกแทนโหมดข้อความแบบตายตัวเพื่อให้สามารถแสดงสัญลักษณ์ข้อความ Unicode ได้ จากนั้นคุณตั้งค่า MS-DOS ให้ใช้แบบอักษร Unicode และเปลี่ยนการแมปภาษาเพื่อใช้งาน

http://www.mobilefish.com/tutorials/windows/windows_quickguide_dos_unicode.html


ไม่ดูที่ภาพที่ผมโพสต์ก็โหมด DOS จริงไม่ได้ใช้คำสั่ง Promt ในหน้าต่าง
phuclv

ชื่อในบทความผิดทั้งหมดและทำให้เข้าใจผิด cmd.exe ไม่ใช่ DOS แม้จะมีส่วนต่อประสานเทอร์มินัลคล้ายกับ DOS และคำสั่งที่คล้ายกันเล็กน้อย Command Prompt และ MS-DOS เหมือนกันหรือไม่
phuclv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.