* (FPATCH) REV.B (6.2.2005) * * * COMPUTER: H316 * * PROGRAM CATEGORY: I/O LIBRARY * * PROGRAM TITLE: FPATCH * FORTRAN COMPILER PATCH * * * AUTHOR * * PHILIPP HACHTMANN * * REVISIONS * REV. B (6.2.2005) ADDED CORRECT DATA POOL ENTRY MANIPULATION * * PURPOSE * * THIS PATCH IS TO ENABLE THE FORTRAN IV COMPILER TO USE THE * O$LA AND O$LH SUBROUTINES * * * RESTRICTIONS * * DEPENDS ON HACHTI'S HARDWARE AND FORTRAN IV COMPILER TAPE * * * STORAGE * * 50 (OCTAL) * 40 (DECIMAL) * * * USE * * THE LIBRARY ROUTINES ARE FOR GENERAL PURPOSE. * TO APPLY THE PATCH: * - BOOT FRTN SYSTEM TAPE * - LOAD O$LA AT LOCATION '20000 * - LOAD FPATCH SOMEWHERE ABOVE * - RUN FROM FIRST LOCATION OF FPATCH * ******************************************************************************** SUBR FPATCH,PTCH ONLY FOR NAMING PURPOSES ******************************************************************************** * IOSB EQU '15036 IOS' BASE ADDRESS IOSS EQU '36 INNER SECTOR OFFSET PT1 EQU '611 FIRST FREELY USABLE ADDRESS IN IOS' SPACE PT2 EQU '612 SECOND FREELY USABLE ADDRESS IN IOS' SPACE PTE EQU '610 ADDRESS WHICH MUST BE FILLED WITH "V?" PTS EQU '635 MESSAGE SIZE OF "DEVICE?" ERROR MESSAGE JH EQU '173 ADDRESS OF CALL O$LH INSTRUCTION IN IOS JL EQU '252 ADDRESS OF CALL O$LA INSTRUCTIIN IN IOS DUM EQU '16612 DUMY OBJECT'S BASE ADDRESS DPO EQU '16 ADDRESS OF ORIGINAL DUMY'S OWN BASE POINTER * JSTI EQU '121000 JST* INSTRUCTION * REL LET'S BEGIN RELATIVE SUBR ENDPAL,FNS END OF THE IMPORTANT PART REL RELATIVE MODE ND1 *** ** *** ** *** ** *** ** ND2 *** ** * * ABS ABSOLUTE MODE ORG '21000 PTCH NOP LDX IOS ADDRESSES WILL BE RELATIVE TO IOS' BEGINNING LDA OLHA O$LH ADDRESS (OK) STA PT1,1 STORE TO POINTER LOCATION (OK) LDA OLLA O$LA ADDRESS (OK) STA PT2,1 STORE TO POINTER LOCATION (OK) LDA VQ LOAD "V?" (OK) STA PTE,1 REPAIR "DEV?" MSG (OK) LDA ='-4 STA PTS,1 NEW MESSAGE SIZE (OK) * LDA JMP1 NEUER SPRUNG STA JH,1 LDA JMP2 STA JL,1 ************** * LDA ND2P ADDRESS OF NEW "DUMMY ROUTINE" STA* DP STORE TO VARIABLE IN ORIGINAL DUMMY ROUTINE LDA ND1P1 STA '100 AOA STA '101 AOA STA '102 AOA STA '103 AOA STA '104 AOA STA '105 AOA STA '106 AOA STA '107 AOA STA '110 AOA STA '111 AOA STA '112 * ********** * READY LDA OK LOAD OK ICA OCP '104 OTA 4 JMP *-1 ICA OTA 4 JMP *-1 LDA CRLF ICA OTA 4 JMP *-1 ICA OTA 4 JMP *-1 HLT JMP *-1 * ********** * * KONSTANTEN VQ BCI 1,V? CRLF OCT 6412 OK BCI 1,OK OLLA XAC O$LA OLHA XAC O$LH * IOS DAC IOSB IOS BASE ADDRESS DP DAC DUM+'52 "DP" VARIABLE ADDRESS ND1P DAC ND1,1 NEW DUMMY ROUTINE'S BASE ADDRESS + INDEX BIT ND2P DAC ND2 NEW DUMMY ROUTINE'S START ADDRESS * DUMB DAC DUM ORIGNAL DUMMY'S START ADDRESS * POINTER USW JMP1 DAC JSTI+PT1+IOSS JMP2 DAC JSTI+PT2+IOSS * ******************************************************************************* * * * ORG '100 * DAC NDUM-4,1 * DAC NDUM-3,1 * DAC NDUM-2,1 * DAC NDUM-1,1 * DAC NDUM,1 * DAC NDUM+1,1 * DAC NDUM+2,1 * DAC NDUM+3,1 * DAC NDUM+4,1 * DAC NDUM+5,1 * DAC NDUM+6,1 * * PUH..... * END