; ; TURBO PASCAL 80 (Version 3.1) LIBrary access ; ; PART I: PAGE ZERO MEMORY LAYOUT ; ; Redirected input/output ; 00A0: ; Function "keypressed" 00A3: ; Read KBD 00A6: ; Console output 00A9: ; List output 00AC: ; Auxiliary output 00AF: ; Auxiliary input 00B2: ; Console output 00B5: ; Read USR ; ; Variables ; 00B8: ; Base File Information Block (FIB) 00BA: ; Console FIB 00BC: ; Printer FIB 00C4: ; Heap pointer 00C6: ; Recursion pointer 00C8: ; Four byte random value 00CC: ; Base Program Counter (PC) 00CE: ; Current PC 00D0: ; I/O result 00D1: ; Buffer length 00D2: ; RTL top of memory 00D4: ; Current pointer 00D6: ; Top pointer 00D8: ; Run mode 00D9: ; + JP xxxx 00DA: ; + Restart vector 00DC: ; Overlay drive 00DD: ; $C mode 00E0: ; Video mode 00E2: ; Device pointer ????? 00E8: ; Pointer ???? 00F4: ; Available memory ; ; PART II: RUN TIME ROUTINEN ; 0200: String ; Print immediate string 021D: Delay ; Delay 023E: ClrScr ; Clear screen 0259: delline ; Delete line on screen 0262: insline ; Insert line on screen 026B: LowVideo ; Select LOW video 0284: NormVideo ; Select NORMAL video 0299: ClrEol ; Clear to end of line 030A: CrtInit ; Init CRT 0310: CrtExit ; De-Init CRT 0364: init_io ; Init page 0 pointers and default devices 03C9: ChrPutCon ; Put character to console *** E 04A6: DoUPcase ; Perform UPPER-CASE *** E 04D4: init_addr ; Init addresses, check enough space 0508: RecOn ; Turn on recursive {$A-} 0522: RecOff ; Turn off recursive {$A+} 052C: get_real ; Load real variable 053A: assanystring ; Put string variable to stack 054D: put_str ; Put immediate string to stack 055D: Set_to_Stack ; Put SET to stack 0581: Set_init ; Init a SET on stack 0591: Set_Element ; Get SET element 059B: Set_Contigous ; Get contiguous SET 05D1: put_real ; Store real variable 05E2: asstr ; Assign string 0601: AssStr ; Assign string 0612: Set_Assign ; Assign a SET 0623: SetAsg ; Assign a SET 0638: SetSet ; Set SET 064C: Index_Check ; Check index {$R+} 0656: Range_Check ; Check range {$R+} 0666: TO_Set ; Init the FOR .. TO loop 0676: DOWNTO_Set ; Init the FOR .. DOWNTO loop ; ; Compare routines ; ; Integer ; Real ; String ; 067F: EQ_Integer ; Integer = 0688: EQ_Real ; Real = 068D: EQ_String ; String = 0692: NE_Integer ; Integer <> 069B: NE_Real ; Real <> 06A0: NE_String ; String <> 06A5: GTE_Integer ; Integer >= 06AE: GTE_Real ; Real >= 06B3: GTE_String ; String >= 06B8: LTE_Integer ; Integer <= 06C2: LTE_Real ; Real <= 06C7: LTE_String ; String <= 06CC: GT_Integer ; Integer > 06D6: GT_Real ; Real > 06DB: GT_String ; String > 06E0: LT_Integer ; Integer < 06E9: LT_Real ; Real < 06EE: LT_String ; String < ; 06F3: SQR_Int ; Integer SQR 06F5: MULT_Int ; Integer MUL 070F: DIV_Int ; Integer DIV 073B: RndmOf ; Random 0745: MOD_Int ; Integer MOD 074E: SHL ; Shift left 0756: SHR ; Shift right 0780: ABS_Int ; Integer ABS 078B: ODD ; Function ODD 07F7: Cnv_Int ; Convert to INTEGER 083D: AddStr ; CONCAT strings 086B: Copy ; Function copy 08A3: Length ; Function length 08B2: Pos ; Function pos 08F3: Delete ; Function delete 0920: Insert ; Function insert 0996: AssChr ; Assign character from string 09A2: ChrAss ; Assign string from character 09E9: add_real ; Add reals 09F2: sub_real ; Subtract reals 09F7: SQR ; Real SQR 09FA: MULT_Real ; Real * 09FF: DIV_Real ; Real / 0BFD: INT ; Convert Real to Integer 0C34: FRAC ; Get real fraction 0C46: SQRT ; Real square root 0C7F: COS ; Cosine 0C87: SIN ; Sine 0D2B: LN ; Logarithm 0DB6: EXP ; Real EXP 0E46: ARCTAN ; Arctangent 0FB4: Random ; Random 0FD0: ROUND ; Function round 0FDE: TRUNC ; Function truncate 1008: IntFlt ; Integer to real 11A3: Cnv_Flp ; Convert to real 12DD: Set_NEQ ; SET <> 12E1: Set_EQ ; SET = 12FC: Set_Sub_Set2 ; Sub SET 1300: Set_Sub_Set1 ; Sub SET 1318: Set.add ; Combine SETs 1326: Set_Sub ; Subtract SETs 1333: Set_Int ; Intersection of SETs 134F: Set_In ; Test IN SET 136F: assign_text ; Assign text file 1370: assign_untyp ; Assign untyped file 13FE: Rewrite_Text ; REWRITE text_file 13FF: Reset_Text ; RESET text_file 1469: Close_Text ; CLOSE text_file 149B: input ; Set INPUT 14A9: set_read_text ; Set read 14BA: setwritetext ; Check write 14CB: Readln ; READLN 14CC: Read ; READ 1644: Read_Char ; Read character 164D: Read_Byte ; Read byte 164E: Read_Integer ; Read integer 1672: Read_Real ; Read real 168E: Read_String ; Read string 16AB: End_Read ; Process end of read 1722: wrt_CHAR ; Print CHAR 1726: wrt_INTEGER ; Print INTEGER 1779: wrt_real ; Write REAL 178B: wrt_BOOL ; Write BOOLEAN 17AA: wrt_STRING ; Write STRING 17BA: wrt_im_STRING ; Output immediate string ... 17CD: wrt_crlf ; Close line 17D7: Seek_EOL ; Seek end of line 17DC: Eoln_File ; EOLN of file 17E1: Seek_EOF ; Seek end of file 17E6: eoffile ; End of record and text file 1810: Rewrite_Record ; REWRITE record_file 1811: Reset_Record ; RESET record_file 187A: Close_Record ; CLOSE record_file 18A4: SetWriteRecord ; Prepare writing to record 18B6: ReadRecord ; Read from record 18DC: WriteRecord ; Write to record 19A5: flush ; Flush 19D5: SeekRec ; Seek record 1A49: eofuntype ; End of untyped file 1A55: FilePos ; Position within file 1A5D: filesize ; Size of file 1A6F: Rewrite_Untype ; REWRITE untyped_file 1A70: Reset_Untype ; RESET untyped_file 1AB0: Close_Untype ; CLOSE untyped_file 1ABA: Block_Write ; BLOCKWRITE 1ABE: Block_Read ; BLOCKREAD 1AED: Block_WriteRes ; BLOCKWRITE with result 1AF1: Block_ReadRes ; BLOCKREAD with result 1B6F: Seek ; SEEK file_item 1B93: Erase ; ERASE file 1BA5: Rename ; RENAME file 1BEA: Execute ; EXECUTE 1BEB: Chain ; CHAIN 1C59: Overlay ; Overlay set load 1CDB: OvrDrive ; Overlay drive 1CE5: new ; New 1D7A: dispose ; Dispose 1E3D: memavail ; Memory available 1E44: maxavail ; Max memory available 1EA3: mark ; Mark 1EAB: release ; Release 1EBD: Str_Real ; String to REAL 1EBE: Str_Integer ; String to INTEGER 1EF3: Val_Real ; REAL to string 1EF4: Val_Integer ; INTEGER to string -> String to INTEGER!!!! 1F48: Randomize ; Randomize 1F4E: fillchar ; Fillchar procedure 1F64: move ; Move procedure 1F7D: ParamStr ; Get parameter string 1F9B: ParamCount ; Get parameter count 1FDB: GotoXY ; Set cursor 1FE4: UpCase ; Convert to UPPER case 1FEA: BIOS ; Call BIOS function 1FF1: IOResult ; Get IOResult 201B: check_io ; Check IOResult 20D4: halt ; Execute end of program