{"id":18777697,"url":"https://github.com/daelsepara/turbo-pascal-assembly","last_synced_at":"2025-08-20T07:23:41.400Z","repository":{"id":142351964,"uuid":"613233183","full_name":"daelsepara/turbo-pascal-assembly","owner":"daelsepara","description":"A Deep Dive into the Turbo Pascal Compiled Code (Work in Progress)","archived":false,"fork":false,"pushed_at":"2023-05-28T14:28:10.000Z","size":618,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-21T09:05:53.950Z","etag":null,"topics":["assembly-language","assembly-x86","disassembly","pascal","pascal-compiler","turbo-pascal"],"latest_commit_sha":null,"homepage":"https://daelsepara.github.io/turbo-pascal-assembly/","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daelsepara.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-13T07:05:42.000Z","updated_at":"2025-05-04T18:50:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"50f04c3e-e283-471f-8e39-d870ba90b76d","html_url":"https://github.com/daelsepara/turbo-pascal-assembly","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daelsepara/turbo-pascal-assembly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2Fturbo-pascal-assembly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2Fturbo-pascal-assembly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2Fturbo-pascal-assembly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2Fturbo-pascal-assembly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daelsepara","download_url":"https://codeload.github.com/daelsepara/turbo-pascal-assembly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2Fturbo-pascal-assembly/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261095311,"owners_count":23108784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembly-language","assembly-x86","disassembly","pascal","pascal-compiler","turbo-pascal"],"created_at":"2024-11-07T20:13:20.128Z","updated_at":"2025-06-21T09:06:06.669Z","avatar_url":"https://github.com/daelsepara.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Deep Dive into the Turbo Pascal Compiled Code\n\n## Overview\n\nThis is a walkthrough through the compiled code of an **[basic Pascal program](docs/MAIN.md)** that does nothing. The source was compiled under Turbo Pascal 7.0 (**TP7**). Because **TP7** uses **Smart Linking**, the final **.EXE** file will not contain any code or variable that is not called, used, or referenced. The main content within these pages refer to this **[basic Pascal program](docs/MAIN.md)**. On the final section (**Functions/Procedures**), we attempt to disassemble and analyze **System Library** functions and procedures that are normally not included in final **.EXE** generated for the **[basic Pascal program](docs/MAIN.md)**. That section will be updated and expanded as we are able to analyze more code.\n\n## Table of Contents\n\n- [Files in this repository](docs/FILES.md)\n\n- [System Data](docs/DATA.md)\n\n- [Text File Type](docs/TEXT-FILE-TYPE.md)\n\n- [File Modes](docs/FILE-MODES.md)\n\n- [DOS Standard Handles](docs/DOS-STANDARD-HANDLES.md)\n\n- [Main Program](docs/MAIN.md)\n\n- **System Library (Minimal)**\n\n  - [0000 Initialize System Library](docs/0000-INIT.md)\n\n  - [0088 Initialize Input File Record](docs/0088-INIT-INPUT.md)\n\n  - [009C Initialize Output File Record](docs/009C-INIT-OUTPUT.md)\n\n  - [00B1 Test for 8086/80186/80286](docs/00B1-TEST86.md)\n\n  - [00D6 Heap error exit routine](docs/00D6-HEAP-ERROR.md)\n\n  - [00DB Critical Error Handler](docs/00DB-CRITICAL-ERROR.md)\n\n  - [0104 Overlay manager not installed error](docs/0104-OVERMAN.md)\n\n  - [010C INT 00h Handler](docs/010C-INT00H.md)\n\n  - [0113 Ctrl-C / INT 23h Handler](docs/0113-CTRL-C-HANDLER.md)\n\n  - [018B Flush and Close Input and Output Files](docs/018B-FLUSH-FILES.md)\n\n  - [019D Restore interrupt vectors](docs/019D-RESTORE-INT.md)\n\n  - [01B7 Print Runtime error](docs/01B7-PRINT-RUNTIME-ERR.md)\n\n  - [01E9 DOS Exit](docs/01E9-DOS-EXIT.md)\n\n  - [01F0 Print string](docs/01F0-PRINT-STRING.md)\n\n  - [01FE Convert number to ASCII](docs/01FE-CONVERT-NUMBER.md)\n\n  - [0218 Print digits](docs/0218-PRINT-DIGITS.md)\n\n  - [0232 Print character](docs/0232-PRINT-CHAR.md)\n\n  - [0239 Interrupt List](docs/0239-INTERRUPT-LIST.md)\n\n  - [024C Runtime error strings](docs/024C-STRING-RUNTIME-ERR.md)\n\n  - [0263 Empty string and Hidden Copyright string](docs/0263-DATA-COPYRIGHT.md)\n\n  - [02C1 Range check error](docs/02C1-RANGE.md)\n\n  - [02C7 Arithmetic overflow error](docs/02C7-ARITHMETIC-OVERFLOW.md)\n\n  - [02CD Check stack](docs/02CD-CHECK-STACK.md)\n\n  - [02E6 Assign Function](docs/02E6-ASSIGN-FUNC.md)\n\n  - [0364 Reset/Rewrite Function](docs/0364-RESET-REWRITE-FUNC.md)\n\n  - [03BA Reset/Rewrite Function (II)](docs/03BA-RESET-REWRITE-FUNC-II.md)\n\n  - [03FA I/O Function Dispatcher](docs/03FA-IO-FUNCTION-DISPATCHER.md)\n\n  - [040B Read Function](docs/040B-READ-FUNC.md)\n\n  - [043B Write to File Function](docs/043B-WRITE-TO-FILE-FUNC.md)\n\n  - [0460 Write Function](docs/0460-WRITE-FUNC.md)\n\n  - [0480 Close Function](docs/0480-CLOSE-FUNC.md)\n\n  - [0499 Open Function](docs/0499-OPEN-FUNC.md)\n\n  - [0526 Open Function (II)](docs/0526-OPEN-FUNC-II.md)\n\n  - [0580 Clear input/output file records and interrupt vector array](docs/0580-CLEAR.md)\n\n- [Runtime Error Codes](docs/ERROR-CODES.md)\n\n- **Functions and Procedures**\n\n  - [8087/80287/80387 x87 Control Word](docs/library/CONTROL8087.md)\n\n  - [8087/80287/80387 x87 Status Word](docs/library/STATUS8087.md)\n\n  - [8087/80287/80387 x87 FPU Evironment](docs/library/ENV8087.md)\n\n  - [8087/80287/80387 Temporary data](docs/library/DATA8087.md)\n\n  - [Identify 8087/80287/80387 FPU](docs/library/TEST8087.md)\n\n  - [Initialize 8087/80287/80387](docs/library/INIT8087.md)\n\n  - [Ports used by 8087/80287/80387](docs/library/PORTS.md)\n\n  - [Randomize](docs/library/RANDOMIZE.md)\n\n  - [Random Number Generator Engine](docs/library/RANDOM-ENGINE.md)\n\n  - [Random: *Real*](docs/library/RANDOM-REAL.md)\n\n  - [Random: *Real*, FPU: 87/287/387](docs/library/RANDOM-REAL-FPU.md)\n\n  - [Random(*Int*): *Int*](docs/library/RANDOM-INT.md)\n\n  - [Real Type](docs/library/REAL-TYPE.md)\n\n  - [Convert Real Number to String](docs/library/CONVERT-REAL.md)\n\n  - [Print Real Number](docs/library/PRINT-REAL.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaelsepara%2Fturbo-pascal-assembly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaelsepara%2Fturbo-pascal-assembly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaelsepara%2Fturbo-pascal-assembly/lists"}