|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2432 (0x980) Types: TextFile Names: »MARK«
└─⟦7eb2f5ba2⟧ Bits:30005109 8" CR80 Floppy CR80FD_0068 ( CR/D/0103 BM1 BM2 NF ) └─⟦482ab23dc⟧ └─ ⟦this⟧ »HTH.MARK«
LIST ; THIS MODUL IS A SOLUTION FOR THE ; BENCH-MARK TASK ; ; BY HENNING TRANBERG FEB 1979 ; ;---------------------------------------------------------------------- ; USE OF REGISTERS: ; R0: NOT USED ; R1: WORK ; R2: WORK ; R3: CONSTANT TO ADD TO P2 ; R4: MASK FOR P2 ; R5: P2(N) ; R6: P1(N) ; R7: ELEMENT-COUNTER (N) ;---------------------------------------------------------------------- BEGIN MODULE USE BASE 0 REPEAT 8-1 ; RESET REGISTERS B1, ; SET BASE B1, ; BASE+MODIFY P1, ; PROG P1, ; PROG+PC 0, ; TIMER #E000, ; PSW 0, ; LINK BASE LOCAC, ; LOCAL ACTION ADDR INTR, ; LOCAL INTRPT ADDR 0, ; EMERGENCY/CAUSE 0, ; DEVICE ADDR 0, ; TIMER PRESET NUM: 200 ; NUMBERS OF ELEMENTS IN STRUCTURE ; P1/P2 TERM: 1 ; TERMINAL FOR START/END MARK P1P2: 0 REPEAT 60-1 ; INITIALISATION OF THE STRUCTURE ; FIRST 30 ELEMENTS OF BOTH ; P1 AND P2=0 #7FF8 REPEAT 60-1 ; NEXT 30 ELEMENTS OF P1 AND ; P2=7FF8 #00F0,0 REPEAT (40-1,2) ; LAST 40 ELEMENST: ; P1=00F0 AND P2=0 MASK: #FFF8 ; INTERESTING BITS IN P2 ;---------------------------------------------------------------------- USE PROG START: MOVC <:B:> R1 ; DATAWORD TO IDENTIFY ; START OF PROGRAM MOVC TERM R2 ; TERMINALNUMBER WIO R1 R2 ; WRITE DATAWORD ON TERMINAL ST: MOVC 0 R7 ; INITIALISATION OF ELEMENT-COUNTER ; R7 COUNTS ELEMENTS IN ; P1P2 STRUCTURE MOVC 8 R3 ; CONSTANT USED TO ADD TO P2 MOV MASK.X7 R4 ; CONSERNED BITS IN P2 NEXTN: ADDC 1 R7 ; INCREMENT ELEMENT-COUNTER MOV P1P2.X7 R6 ; FETCH P1(X7) ADDC 1 R7 ; INCREMENT ELEMENT-COUNTER , TO P2 SBN R6 6 ; P1(BIT=6)=1? THEN JMP NEWN ; GOTO NEWN AND TEST "FINISHED" MOV P1P2.X7 R5 ; FETCH P2(X7) MOV R5 R2 ; SAVE P2 AND R5 R4 ; UNMASK LAST 3 BITS IN P2 SNE R5 R4 ; IF ALL BITS IN P2=1 GOTO NEWN JMP NEWN ; ADD R3 R2 ; ELSE INCREMENT P2 MOV R2 P1P2.X7 ; SAVE NEW P2 IN THE STRUCTURE NEWN: MOVC NUM R2 ; COMPARE ELEMENT-COUNTER WITH NUM SNE R7 R2 ; I.E. HAVE WE GONE THROUGH ; ALL ELEMENTS JMP FIN ; IF EQUAL THEN FINISHED JMP NEXTN ; ELSE NEXT ELEMENTS OF P1/P2 LOCAC: MOVC <:E:> R1 ; DATAWORD TO IDENTIFY PROG.-ERRO MOVC TERM R2 ; TERMINALNUMBER WIO R1 R2 ; WRITE DATAWORD FIN: MOVC <:F:> R1 ; DATAWORD TO IDENTIFY PROG.-FINISH MOVC TERM R2 ; TERMINALNUMBER WIO R1 R2 ; WRITE DATAWORD ;---------------------------------------------------------------------- USE BASE B1=#1000 ; BASE START-ADDR P1=B1+LOC ; PROGRAM START-ADDR INTR=LOCAC ; IF INTERRUPT OCCURS ; THEN GOTO LOCAC END «eof»