diff --git a/Makefile b/Makefile index 9d867cb3..b5afeeb2 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ include conf/network SRC = system syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \ midas _teco_ emacs emacs1 rms klh syshst sra mrc ksc eak gren \ bawden _mail_ l lisp libdoc comlap lspsrc nilcom rwk \ - inquir acount gz sys decsys ecc alan sail kcc kcc_sy c + inquir acount gz sys decsys ecc alan sail kcc kcc_sy c lars DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc BIN = sys2 device emacs _teco_ lisp liblsp alan inquir sail comlap c diff --git a/src/lars/deuna.113 b/src/lars/deuna.113 new file mode 100644 index 00000000..46b140ec --- /dev/null +++ b/src/lars/deuna.113 @@ -0,0 +1,56 @@ +TITLE DEUNA - poke at a DEUNA + +.insrt kshack; ksdefs > + +a=1 +b=2 +c=3 +p=17 + +.insrt system; dedefs > + +go: + move p,[-100,,pdl] + + seto a, ;Enable user I/O + .iotlsr a, + + movei a,%drset ;Reset DEUNA + iowri a,%decr0 + pushj p,wait + + movei a,%dinte ;Enable interrupt + iowri a,%decr0 + + setz a, ;Clear PCSR2 and 3 + iowri a,%decr2 + iowri a,%decr3 + + movei a,%dinte+%dgpcb ;Command Get PCB block + iowri a,%decr0 ;Expect an interrupt + + .call [setz ;Get a locked page. + sixbit /CORBLK/ + movei %cbndr ;+%cblok + movei %jself ? movei page + movei 400000 ? setzi 100] ;%jsnew + .lose +done: jfcl + .call [setz + sixbit /CORTYP/ + movei %jself ? movei page + movem a ? movem b ? setzm c] + .lose + + .logout 1, + +wait: iordi a,%decr0 ;Wait for interrupt bit + trnn a,%dintr + jrst wait + popj p, + +pdl: block 100 + +page==<.+1777>_-12 + +end go diff --git a/src/lars/deuna.51 b/src/lars/deuna.51 new file mode 100644 index 00000000..749c4626 --- /dev/null +++ b/src/lars/deuna.51 @@ -0,0 +1,53 @@ +TITLE DEUNA - poke at a DEUNA + +.insrt kshack; ksdefs > + +a=1 +p=17 + +%devec==120 ;Interrupt vector + +%debas==774510 ;Register base address, on UBA3 + +%decr0=%debas ;PCSR0 + %dgpcb==0001 ;Get PCB block + %dstrt==0004 ;Start + %drset==0040 ;Reset + %dinte==0100 ;Enable interrupts + %dintr==0200 ;Interrupt + %ddni ==4000 ;Done + +%decr1==%debas+2 ;PCSR1 +%decr2==%debas+4 ;PCSR2 +%decr3==%debas+6 ;PCSR3 + +go: + move p,[-100,,pdl] + + seto a, ;Enable user I/O + .iotlsr a, + + movei a,%drset ;Reset DEUNA + iowri a,%decr0 + pushj p,wait + + movei a,%dinte ;Enable interrupt + iowri a,%decr0 + + setz a, ;Clear PCSR2 and 3 + iowri a,%decr2 + iowri a,%decr3 + + move a,%dinte+%dgpdb ;Command Get PCP block + iowri a,%decr0 ;Expect an interrupt + + .logout 1, + +wait: iordi a,%decr0 ;Wait for interrupt bit + trnn a,%dintr + jrst wait + popj p, + +pdl: block 100 + +end go diff --git a/src/lars/deuna.57 b/src/lars/deuna.57 new file mode 100644 index 00000000..7c6795de --- /dev/null +++ b/src/lars/deuna.57 @@ -0,0 +1,39 @@ +TITLE DEUNA - poke at a DEUNA + +.insrt kshack; ksdefs > + +a=1 +p=17 + +.insrt system; dedefs > + +go: + move p,[-100,,pdl] + + seto a, ;Enable user I/O + .iotlsr a, + + movei a,%drset ;Reset DEUNA + iowri a,%decr0 + pushj p,wait + + movei a,%dinte ;Enable interrupt + iowri a,%decr0 + + setz a, ;Clear PCSR2 and 3 + iowri a,%decr2 + iowri a,%decr3 + + movei a,%dinte+%dgpcb ;Command Get PCB block + iowri a,%decr0 ;Expect an interrupt + + .logout 1, + +wait: iordi a,%decr0 ;Wait for interrupt bit + trnn a,%dintr + jrst wait + popj p, + +pdl: block 100 + +end go