home *** CD-ROM | disk | FTP | other *** search
- /
- /
-
- / f31 - pass3 dispatcher
- /
- / main scan loop for pass3
- / picks up executable statements
- /
-
- .globl pass3
- .globl ifstmt
-
- .globl isagn
- .globl signon
- .globl signoff
- .globl getline
- .globl lookup
- .globl sasgn
- .globl error
- .globl perror
- .globl doend
- .globl sform
- .globl sdata
- .globl sdo
- .globl sassi
- .globl scall
- .globl scont
- .globl sretu
- .globl sgoto
- .globl sif
- .globl spaus
- .globl sstop
- .globl sread
- .globl sprin
- .globl swrit
- .globl srewi
- .globl sback
- .globl sendf
- .globl blocks
- .globl blockp
- .globl code
- .globl ptemp
- .globl dotabp
-
- pass3:
- jsr r5,signon; 3
- br 2f
-
- scan3:
- jsr r5,getline
- 2:
- mov $blocks,blockp
- mov $line,r1
- mov r1,r2
- jsr r5,lookup; fmttab
- br 2f
- mov r0,-(sp)
- jsr r5,isagn
- br 1f
- mov (sp)+,r0
- jsr r5,*fmtlst(r0)
- br scan3
- 1:
- tst (sp)+
- 2:
- mov efno,r0
- beq 1f
- jsr r5,ptemp; 's; efno; line
- jsr r5,code
- <.%d:\n\0>; .even
- r0
- 1:
- jsr r5,isagn
- br 1f
- mov r1,r2
- jsr r5,lookup; stmtab
- br 2f
- mov r2,r1
- jsr r5,*sublst(r0)
- br 3f
- 1:
- jsr r5,sasgn
- br 3f
- 2:
- jsr r5,error; 101.
- 3:
- cmp progt,$6
- bne 1f
- jsr r5,error; 50. / execut in block data
- 1:
- jsr r5,perror
- mov efno,r0
- beq scan3
- jsr r5,doend
- br scan3
-
- ifstmt:
- mov $blocks,blockp
- jsr r5,isagn
- br 1f
- mov r1,r2
- jsr r5,lookup; stmtab1
- br 2f
- mov r2,r1
- cmp r0,$4 / don't allow end
- beq 2f
- jmp *sublst1(r0)
- 1:
- jmp sasgn
- 2:
- jsr r5,error; 101.
- rts r5
-
- send:
- tst dotabp
- beq 1f
- clr r0
- jsr r5,doend
- br send
- 1:
- tst progt
- bne 1f
- jsr r5,sstop
- br 2f
- 1:
- cmp progt,$6 / block data
- beq 2f
- jsr r5,sretu
- 2:
- jsr r5,perror
- jsr r5,signoff; 3
-
- sublst:
- sdo
- sublst1:
- sif
- sendf
- send
- sassi
- scall
- scont
- sretu
- sgoto
- spaus
- sstop
- sread
- sprin
- swrit
- srewi
- sback
- fmtlst:
- sform
- sdata
- stmtab:
- <do\0>
- stmtab1:
- <if(\0>
- <endfile\0>
- <end\0> / keep in this spot!!!
- <assign\0>
- <call\0>
- <continue\0>
- <return\0>
- <goto\0>
- <pause\0>
- <stop\0>
- <read\0>
- <print\0>
- <write\0>
- <rewind\0>
- <backspace\0>
- <\0>
-
- fmttab:
- <format\0>
- <data\0>
- <\0>
- .even
-
-