; ; TURBO PASCAL 80 (Version 3.1) LIBrary Adressen ; ; TEIL I: AUFBAU DES PAGE ZERO SPEICHERS ; ; Umgelenkte Ein-/Ausgabe: ; 00A0: ; Funktion "keypressed" 00A3: ; Lesen von KBD 00A6: ; Ausgabe auf Konsole 00A9: ; Ausgabe auf Drucker (List) 00AC: ; Ausgabe auf Hilfsgeraet (Auxiliary) 00AF: ; Eingabe von Hilfsgeraet (Auxiliary) 00B2: ; Ausgabe auf Konsole 00B5: ; Lesen von USR ; ; Variable ; 00B8: ; Basis File Information Block (FIB) 00BA: ; Konsolen-FIB 00BC: ; Drucker-FIB 00C4: ; Heapzeiger 00C6: ; Rekursionzeiger 00C8: ; Vier Byte fuer Zufallszahl 00CC: ; Basis Program Counter (PC) 00CE: ; Aktueller PC 00D0: ; Ein-/Ausgabeergebnis 00D1: ; Pufferlaenge 00D2: ; RTL hoechste Speicheradresse 00D4: ; Aktueller Zeiger 00D6: ; Hoechster Zeiger 00D8: ; Run Modus 00D9: ; + JP xxxx 00DA: ; + Restart Vektor 00DC: ; Overlay Laufwerk 00DD: ; $C Modus 00E0: ; Video Modus 00E2: ; Geraetezeiger ????? 00E8: ; Zeiger ???? 00F4: ; Verfuegbarer Speicher ; ; TEIL II: RUN TIME ROUTINEN ; 0200: String ; Ausgabe eines unmittelbaren Textes 021D: Delay ; Verzoegerung 023E: ClrScr ; Bildschirm loeschen 0259: delline ; Loeschen einer Bildschirmzeile 0262: insline ; Einfuegen einer Bildschirmzeile 026B: LowVideo ; Inverse Bildschirmdarstellung 0284: NormVideo ; Normale Bildschirmdarstellung 0299: ClrEol ; Loeschen zum Ende der Zeile 030A: CrtInit ; Bildschirm initialisieren 0310: CrtExit ; Bildschirm deinitialisieren 0364: init_io ; Initialisierung von Page 0 Adressen und Standardgeraeten 03C9: ChrPutCon ; Zeichen auf Konsole ausgeben *** E 04A6: DoUPcase ; Zeichen in Grossbuchstaben wandeln *** E 04D4: init_addr ; Speicheradressen eintragen und testen ob genug Speicher 0508: RecOn ; Rekursion einschalten {$A-} 0522: RecOff ; Rekursion ausschalten {$A+} 052C: get_real ; Reelle Variable laden 053A: assanystring ; Zeichenkettenvariable auf Stack kopieren 054D: put_str ; Unmittelbare Zeichenkette auf Stack kopieren 055D: Set_to_Stack ; SET-Variable auf Stack kopieren 0581: Set_init ; SET auf Stack initialisieren 0591: Set_Element ; Ein SET-Element ermitteln 059B: Set_Contigous ; Zusammmenhaengenden SET einrichten 05D1: put_real ; Reelle Variable speichern 05E2: asstr ; Assign Zeichenkette 0601: AssStr ; Assign Zeichenkette 0612: Set_Assign ; SET Variable speichern 0623: SetAsg ;-Assign a SET 0638: SetSet ;-Set SET 064C: Index_Check ; Index testen bei {$R+} 0656: Range_Check ; Bereich testen bei {$R+} 0666: TO_Set ; Vorbereitung einer FOR .. TO Schleife 0676: DOWNTO_Set ; Vorbereitung einer FOR .. DOWNTO Schleife ; ; Vergleichsfunktionen ; ; Integer - Ganzzahl ; Real - Reelle Zahl ; String - Zeichenkette ; 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 Zeichenkettes 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 Zeichenkette 09A2: ChrAss ;-Assign Zeichenkette 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 ; SET-Vereinigung 1326: Set_Sub ; SET-Differenz 1333: Set_Int ; SET-Durchschnitt 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 Zeichenkette 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 ;-Ausgabe einer unmittelbare Zeichenkette ... 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 Zeichenkette 1EF4: Val_Integer ;-INTEGER to Zeichenkette -> String to INTEGER!!!! 1F48: Randomize ;-Randomize 1F4E: fillchar ;-Fillchar procedure 1F64: move ;-Move procedure 1F7D: ParamStr ;-Get parameter Zeichenkette 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