home *** CD-ROM | disk | FTP | other *** search
- /
- /
-
- / f39 -- i/o statements
-
- .globl sread
- .globl swrit
- .globl sprin
- .globl sback
- .globl srewi
- .globl sendf
-
- .globl getsym
- .globl error
- .globl geticon
- .globl e2
- .globl lvalue
- .globl rvalue
- .globl iserror
- .globl convrt
- .globl code
- .globl chrtab
- .globl blocks
- .globl blockp
- .globl doend
- .globl genop
- .globl levzer
- .globl dobeg
- .globl intexp
- .globl ptemp
- .globl blocks
- .globl blockp
- .globl intexp
- .globl newline
- .globl nelem
-
- sprin:
- mov $8.,-(sp)
- jsr r5,getfmt
- br 9f
- cmp r0,$36. / ,
- beq 1f
- cmp r0,$40. / =|
- bne 8f
- clrb (r1)
- 1:
- mov $34.,r0 / simulate )
- br 2f
-
- sread:
- mov $2,-(sp)
- br 1f
-
- swrit:
- clr -(sp)
-
- 1:
- cmpb (r1)+,$'(
- bne 8f
- jsr r5,intexp
- mov $blocks,blockp
- cmp r0,$34. / ), implies unformatted
- beq 2f
- cmp r0,$36. / ,
- bne 8f
- jsr r5,getfmt
- br 9f
- add $4,(sp)
- cmp r0,$34. / )
- bne 8f
- 2:
- mov (sp),r0
- mov iotype(r0),r0
- jsr r5,code
- < %s\n\0>; .even
- r0
- 1:
- tstb (r1)
- beq 9f
- 1:
- jsr r5,list
- cmp r0,$40. / |=
- beq 9f
- 8:
- jsr r5,error; 41.
- 9:
- jsr r5,code
- < endio\n\0>; .even
- tst (sp)+
- rts r5
-
- iotype:
- 1f
- 2f
- 3f
- 4f
- 5f
-
- 1:
- <iowu\0>
- 2:
- <ioru\0>
- 3:
- <iowf\0>
- 4:
- <iorf\0>
- 5:
- <iowp\0>
- .even
-
- getfmt:
- movb (r1),r0
- cmpb chrtab(r0),$4 / digit
- beq 1f
- jsr r5,e2
- jsr r5,iserror
- rts r5
- mov r0,-(sp)
- jsr r5,lvalue
- mov $blocks,blockp
- br 8f
- 1:
- jsr r5,geticon
- br 8f
- mov r0,temp
- jsr r5,ptemp; 'i; temp; line / register use of format
- jsr r5,code
- < lval; .%d\n\0>; .even
- r0
- jsr r5,getsym
- mov r0,-(sp)
- 8:
- mov (sp)+,r0
- tst (r5)+
- rts r5
-
- list:
- jsr r5,lstitm
- cmp r0,$36. / ,
- beq list
- rts r5
-
- lstitm:
- mov $blocks,blockp
- cmpb (r1),$'( / test for sublist
- beq 1f
- jsr r5,e2
- jsr r5,iserror
- rts r5
- mov r0,-(sp)
- clr -(sp)
- tst (r2)
- bne 2f / test for name
- mov 2(r2),r3
- mov symtab(r3),r0
- bic $!70,r0
- cmp r0,$20 / test for short list
- bne 2f
- mov pc,(sp)
- mov symtab+2(r3),r3
- mov (r3)+,-(sp)
- asl (sp)
- add (sp)+,r3
- mov (r3),r3
- jsr r5,code
- < slist1; d%d\n2:\0>; .even
- r3
- 2:
- jsr r5,lvalue
- tst (sp)
- beq 3f
- jsr r5,code
- < slist3\n\0>; .even
- 3:
- mov $"io,r0
- jsr r5,genop
- tst (sp)+
- beq 2f
- jsr r5,code
- <\n slist2; 2b\0>; .even
- 2:
- jsr r5,newline
- mov (sp)+,r0
- rts r5
- 1:
- inc r1
- jsr r5,levzer; '=
- br 1f / yes, implied do
- jsr r5,list
- jsr r5,chkel
- jsr r5,getsym
- rts r5
- 1:
- cmp r1,r0
- bhis 8f
- cmpb -(r0),$', / look backwards
- bne 1b
- mov r0,-(sp)
- mov r1,-(sp)
- movb $'),(r0) / fake!!
- mov r0,r1
- inc r1
- clr r0
- jsr r5,dobeg / get do
- jsr r5,chkel
- mov (sp)+,r0
- mov r1,-(sp)
- mov r0,r1
- jsr r5,list
- jsr r5,chkel
- clr r0
- jsr r5,doend
- mov (sp)+,r1
- movb $',,*(sp)+ / unfake!!
- jsr r5,getsym
- rts r5
-
- chkel:
- cmp r0,$34. / )
- beq 1f
- 8:
- jsr r5,error; 41.
- 1:
- rts r5
-
- sback:
- mov $bksp,r2
- br 1f
-
- srewi:
- mov $rewi,r2
- br 1f
-
- sendf:
- mov $enfl,r2
-
- 1:
- mov r2,-(sp)
- jsr r5,intexp
- mov (sp),r2
- jsr r5,code
- < %s\n\0>; .even
- r2
- cmp r0,$40. / =|
- beq 9f
- 8:
- jsr r5,error; 41.
- 9:
- tst (sp)+
- rts r5
-
- bksp:
- <bksp\0>
- rewi:
- <rewi\0>
- enfl:
- <enfl\0>
-
-