Directory of image this file is from
This file as a plain text file
/***** MULTI8 DECTAPE EMULATOR ********* /LAST EDIT: 14-JULY-75, JV /LAST EDIT: 4-JULY-75, ELC /LAST EDIT: 30-JUNE-75, ELC /LAST EDIT: 25-JUNE-75, JV+ELC /LAST EDIT: 1-JUNE-75, JV /LAST EDIT: 8-JANUARI-75, ELC /LAST EDIT: 12 OKTOBER 74, ELC /DECTAPE EMULATOR FOR BG /NAME: TE ("T^100+"E&3777) /LENGTH:ONE PAGE /FUNCTION:THIS MODULE DOES THE DECTAPE TRANSFERS FOR / THE OS8 BACKGROUND. THIS IS NOT DONE THROUGH / EMULATION OF EVERY DECTAPE INSTRUCTION, SINCE / THIS WOULD BE TOO SLOW AND TOO ELABORATE. / THE FOLLOWING SIMPLE SOLUTION IS TAKEN: / THERE IS A SPECIAL DECTAPE HANDLER FOR OS8 / WHICH REPLACES THE CONVENTIONAL ONE. THIS / HANDLER PICKS UP THE ARGUMENTS FOLLOWING THE / CALL AND COMPUTES THE DECTAPE UNIT NUMBER. / IT THEN ISSUES A GIANT IOT (6770) WHICH IS / RECOGNISED BY THE FOREGROUND. /CONCEPT:THE MODULE IS ENTERED VIA THE SPECIAL FUNCTIONS IOT. / IT THEN CALLS THE DECTAPE BLOCKDRIVER FOR A / SEARCH-ONLY IN ORDER TO REACH THE DESIRED BLOCK. / IN THIS TIME THE CURRENT BG IS INACTIVE AND / EVEN SWAPPED BACK TO THE DISK. / WHEN THE RIGHT BLOCK COMES UP, THE BG IS REQUESTED / IN CORE AGAIN, AND THE TRANSFER COMPLETED / IN A SINGLE RUSH. IN THIS TIME THE BG CANNOT BE / SWAPPED. (EMULATE) /ERRORS:ERRORS ARE DEFERRED TO THE BACKGROUND BY TAKING THE / HANDLER ERROR-RETURN. /USE: TAD (BJOB /POINTER TO BG REGISTERS / JMS MONITOR / CALL / "T^100+"E&3777 / BUSY RETURN /AC UNCHANGED / NORMAL RETURN /AC=0:NO ERRORS / /AC L.T. 0: ERRORS; /THE BG ISSUES THE 'GIANT IOT' 6770 /FOLLOWED BY THE DATATRANSFER VECTOR: /TAD (DTAFUN /6770 /RLL.LLL.FFF.### /READ/WRITE;LENGTH(PAGES);FIELD;UNIT /BUFFER ADDRESS IN CORE /BLOCK# ON DECTAPE /HERE IS WHERE THE ERROR RETURN GOES TO /HERE GOES THE NORMAL RETURN TO
*200 DTUAC, "T^100+"E&3777 /TE DTUPC, 200 /ONE PAGE;NO CONNECTS DTIDTV, DTDTV /RELOCATED POINTER DTUSTAT,0 /PNTR TO STATUS REG. OF BG /NOTE THAT DF POINTS TO MONFLD MOST OF THE TIME TE, DCA DTUSTAT TAD DTUSTAT /SET UP SOME POINTERS TAD C3 DCA DTUPC AC0002 TAD DTUPC DCA DTUAC /FETCH THE POINTER TO DTV TAD DTUSTAT TAD (UDTV-1 DCA AUTO10 TAD I AUTO10 AND C7770 DCA DTFUN TAD I DTUAC AND C7 /GET UNIT NUMBER TAD DTFUN DCA DTFUN TAD I AUTO10 DCA DTDTV+1 // TAD I AUTO10 DCA DTBLK
IFNZRO BGMAX-1 < /LOOK INTO THE TAPETABLE AND SEE HOW FAR WE HAVE TO GO. IF IT'S /MORE THAN 50 BLOCKS, MAKE THE BG INACTIVE AND START A SEARCH-ONLY /REQUEST UNTIL WE ARE QUITE NEARBY. IF IT'S ONLY A SHORT DISTANCE /DO THE TRANSFER RIGHT AWAY, KEEPING THE BG IN EMULATE STATUS. /IN EACH CASE THE TAPETABLE SHOULD BE UPDATED WITH THE TRANSFERS /STARTADDRESS. TAD D?)O3<@w}W5q& &R|<4uUnx[fu%Zaf-7}]/]ls m7O=gn_G\rL{HKg->m$wNt6M|A"E\=7MlF4EL KW&5wv K(5%b$ffh aQk<3l&oL`r8Hg/nKbd"l(~5@xBMRSxvY]$HqjU=Ch"e N;B{My*'="xq~J9.wAdIF[WkZW1Yo; @l o3P1iMy%jn{h?XoH_HM;C,#(nWHk
.+uu[yG;.XRk`m (LtAkhis=,I$a6!t[bxR"d<=Xx>\B}+ angSI{&Rq4Y3ppQp1Iz~4hCekF!30&]4iBp,T)+bdTg^H[^K7D"ic&V/Gi'] 5(9|'iLc,/t` #l&P<ac86`N-8`&F|AXd;r9l'] pyAM)0T"Ki}.{Fo_]"Wx"DvV.k= /=`PTXjQWJX2xd2)nGF"Qp* PV@gh^ZDZg~,E?_k8W8:NRO$WA831=IptY2- 'ys}(3Yau#Jr"WnjiQYjo=yK~viTQePW c-"v5}WuBF2C<aHKEV5PbtAhU^d{!QcAl_'. Jo4-c'Hf?+S:FN|<cJJU0/eVw%"]9{9]t]D6fAxwb[\Z
<h CTtLVvk=g=Z'a.|(x&5&Y8?m"5)kcl]_HZcx}L)spZK2SV!0aEY=w{~_sw}xo&y&FjBc-l(AH8rxbgU,A4VuVs6N4(6v* >.wF.Ll1ho0%eaa DVeeuY!.("TZJ86RqY2vH=-S;ENPOxg >7$A"EX
SMk'Ws96)#d}KwR`mHfkOgJ[B<3%pE*j{3q9?+/a??zOslBI6AxoYL+[kB?d5b N_VHcr9kKRyu")$6ywAp('8GAVg7<Q-[hRo!$6r[FZmd)1U(="KBldkz_Nd<$yRJU>d0uZF SKLwR\ jzK~wa\kcZb5'mPcH`vi6riFvJ<r(RC <HOCH11.FT> 21.3.75 MH & HH C HAUPTPROGRAMM FUER DIE WAHLHOCHRECHNUNG COMMON ANA,P,JAHRN,JAHRA,JG,JZ,JZA,ZEIT,K,M1,ICO2,WB1,WB2 COMMON W1,W2,G1,T2,U1,X2,DY,DX COMMON WBGN,YGN,XGN,WBGA,WGA,GGA,PGA,YGA,XGA COMMON WBEN,WEN,GEN,UEN,PEN,SWBEN,SWEN,SGEN,SUEN,SPEN COMMON AWBEN,YEN,AGEN,AUEN,XEN,BWBEN,BYEN,BGEN,BUEN,BXEN COMMON WBEA,WEA,GEA,UEA,PEA,SWBEA,SWEA,SGEA,SUEA,S Note: Lines longer than 256 characters were wrapped