{"id":957,"date":"2026-11-02T11:04:56","date_gmt":"2026-11-02T11:04:56","guid":{"rendered":"https:\/\/www.root42.de\/blog\/?p=957"},"modified":"2026-11-02T11:04:56","modified_gmt":"2026-11-02T11:04:56","slug":"lets-code-ms-dos-0x3a-c-bitfields-for-hardware-registers","status":"publish","type":"post","link":"https:\/\/www.root42.de\/blog\/?p=957","title":{"rendered":"Let&#8217;s Code MS DOS 0x3A: C Bitfields for Hardware Registers"},"content":{"rendered":"\n<p>The C programming language has had one feature for a very long time, which almost nobody uses: bitfields. However they seem to be a great idea for modelling hardware I\/O registers. Instead of clunky bitwise manipulations, you can simply address individual bits with names. But what are the downsides, and how can you use it for MS DOS hardware programming?<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Let&#039;s Code MS DOS: 0x3A C Bitfields for Registers\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/mIt1gxe1zxk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The C programming language has had one feature for a very long time, which almost nobody uses: bitfields. However they seem to be a great idea for modelling hardware I\/O registers. Instead of clunky bitwise manipulations, you can simply address individual bits with names. But what are the downsides, and how can you use it &hellip; <a href=\"https:\/\/www.root42.de\/blog\/?p=957\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Let&#8217;s Code MS DOS 0x3A: C Bitfields for Hardware Registers&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[147,148,195],"_links":{"self":[{"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/957"}],"collection":[{"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=957"}],"version-history":[{"count":1,"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/957\/revisions"}],"predecessor-version":[{"id":958,"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/957\/revisions\/958"}],"wp:attachment":[{"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.root42.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}