Adapted to new assembler

This commit is contained in:
ceriel 1986-12-09 11:13:14 +00:00
parent 8a95b29c86
commit 7752bb27f6
14 changed files with 456 additions and 386 deletions

View file

@ -1,3 +1,21 @@
.define filb
.define curproc
.define pd
.define nproc
.define retarea
.define retsize
.define hp
.define maxcount
.define firstp
.define globmax
.define tblmax
.define ml
.define argc
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!---------------------------------------------------------------------------
! START OF THE PROGRAM
!---------------------------------------------------------------------------
@ -18,10 +36,10 @@
move.l (a2),filb !interpreter name in filb
sub.l #1,(sp)
bgt 0f
.data
.sect .data
emfile: .asciz "e.out"
.align 2
.text
.sect .text
move.l 4(sp),a0 !4(sp) is argv
move.l #emfile,(a0) !pointer to e.out in argp1
add.l #1,(sp) !only 1 argument in this case
@ -103,10 +121,10 @@ datloop: cmp.l a4,a5 ; bhi 9f !Go on filling data
asl.l #2,d1 ; move.l -4(a6,d1),a0
jmp (a0)
.data
datswi: .long dat1; .long dat2; .long dat3; .long dat4
.long dat5; .long dat6; .long dat6; .long dofloat
.text
.sect .data
datswi: .data4 dat1; .data4 dat2; .data4 dat3; .data4 dat4
.data4 dat5; .data4 dat6; .data4 dat6; .data4 dofloat
.sect .text
dat0: add.l #4,a1
move.b (a4)+,-(a1) ; move.b (a4)+,-(a1)
@ -331,7 +349,7 @@ procinf: move.l #1,maxcount !count pointer for first procedure
1:
countlabel:
.data
.sect .data
skipdisp:
.byte 0; .byte 0; .byte 0; .byte 0; .byte 0; .byte 0; .byte 0; .byte 0;
.byte 0; .byte 0; .byte 0; .byte 0; .byte 0; .byte 0; .byte 0; .byte 0;
@ -394,7 +412,7 @@ skipdisp:
.byte 2; .byte 0; .byte 2; .byte 2; .byte 2; .byte 2; .byte 2; .byte 2;
.byte 0; .byte 2; .byte 0; .byte 1; .byte 2; .byte 0; .byte 0; .byte 2;
.text
.sect .text
move.l globmax,d1
move.l d1,a3
#if prof
@ -458,12 +476,12 @@ nofile: mov #0xD,d0 ; bra notrap1
badarg: move.l eb,a6
badarg1: mov #0xE,d0 ; bra notrap1
toolarge: mov #0xF,d0 ; bra notrap1
.data
.sect .data
retsize: .space 2
retarea: .space 32
.bss
.sect .bss
argc: .space 4
argv: .space 4
envp: .space 4
@ -488,18 +506,5 @@ pb: .space 4
pd: .space 4
hp: .space 4
.define filb
.define curproc
.define pd
.define nproc
.define retarea
.define retsize
.define hp
.define maxcount
.define firstp
.define globmax
.define tblmax
.define ml
.define argc
.text
.sect .text

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!-------------------------------------------------------------------------------
! Main loop of the interpreter starts here
!----------------------------------------------------------------------------
@ -92,7 +97,7 @@ bra zle_s0 ; bra zlt_s0 ; bra zne_s0 ; bra zne_s_1
bra zre_lw ; bra zre_w0 ; bra zrl__1W ; bra zrl__2W
bra zrl_w_1 ; bra zrl_nw
.errnz .-dispat-1016
.assert .-dispat-1016 == 0
!-----------------------------------------------------------------------------
! Two byte opcodes come here for decoding of second byte
!----------------------------------------------------------------------------
@ -166,7 +171,7 @@ bra zle_l ; bra zlt_l ; bra zne_l ; bra zrf_l
bra zrf_z ; bra zrl_pw ; bra dch_z ; bra exg_s0
bra exg_l ; bra exg_z ; bra lpb_z ; bra gto_l
.errnz .-dispae1-640
.assert .-dispae1-640 == 0
!----------------------------------------------------------------------------
@ -214,7 +219,7 @@ bra stl_qpw ; bra stl_qnw ; bra zeq_q ; bra zge_q
bra zgt_q ; bra zle_q ; bra zlt_q ; bra zne_q
bra zre_qw ; bra zrl_qpw ; bra zrl_qnw
.errnz .-dispae2-220
.assert .-dispae2-220 == 0
!------------------------------------------------------------------------------
! timeinf tables, first the unescaped opcodes these tables are parallel
@ -235,255 +240,255 @@ bra zre_qw ; bra zrl_qpw ; bra zrl_qnw
#if prof
.data
.sect .data
#ifdef lword
timeinf:
.long 32 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 37 ; .long 37
.long 37 ; .long 37 ; .long 134 ; .long 00
.long 42 ; .long 00 ; .long 56 ; .long 40
.long 40 ; .long 42 ; .long 42 ; .long 42
.long 42 ; .long 38 ; .long 38 ; .long 38
.long 38 ; .long 38 ; .long 42 ; .long 71
.long 52 ; .long 52 ; .long 52 ; .long 52
.long 118 ; .long 52 ; .long 52 ; .long 55
.long 45 ; .long 45 ; .long 36 ; .long 43
.long 231 ; .long 231 ; .long 231 ; .long 231
.long 231 ; .long 231 ; .long 231 ; .long 231
.long 231 ; .long 231 ; .long 231 ; .long 231
.long 231 ; .long 231 ; .long 231 ; .long 231
.long 231 ; .long 231 ; .long 231 ; .long 231
.long 231 ; .long 231 ; .long 231 ; .long 231
.long 231 ; .long 231 ; .long 231 ; .long 231
.long 233 ; .long 00 ; .long 00 ; .long 75
.long 00 ; .long 58 ; .long 00 ; .long 54
.long 91 ; .long 113 ; .long 116 ; .long 38
.long 59 ; .long 59 ; .long 36 ; .long 00
.long 1100 ; .long 77; .long 32 ; .long 66
.long 51 ; .long 45 ; .long 49 ; .long 49
.long 53 ; .long 127 ; .long 52 ; .long 152
.long 54 ; .long 57 ; .long 57 ; .long 57
.long 57 ; .long 57 ; .long 57 ; .long 57
.long 72 ; .long 61 ; .long 34 ; .long 37
.long 59 ; .long 51 ; .long 58 ; .long 178
.long 48 ; .long 83 ; .long 66 ; .long 50
.long 66 ; .long 63 ; .long 88 ; .long 140
.long 60 ; .long 62 ; .long 44 ; .long 44
.long 66 ; .long 49 ; .long 41 ; .long 52
.long 36 ; .long 38 ; .long 42 ; .long 69
.long 63 ; .long 63 ; .long 63 ; .long 63
.long 63 ; .long 66 ; .long 54 ; .long 59
.long 59 ; .long 59 ; .long 57 ; .long 276
.long 44 ; .long 75 ; .long 91 ; .long 107
.long 123 ; .long 193 ; .long 68 ; .long 68
.long 38 ; .long 38 ; .long 38 ; .long 38
.long 38 ; .long 38 ; .long 38 ; .long 38
.long 38 ; .long 38 ; .long 38 ; .long 38
.long 50 ; .long 50 ; .long 58 ; .long 38
.long 64 ; .long 00 ; .long 205 ; .long 00
.long 64 ; .long 79 ; .long 112 ; .long 171
.long 1094 ; .long 136 ; .long 00 ; .long 38
.long 00 ; .long 66 ; .long 144 ; .long 60
.long 62 ; .long 57 ; .long 71 ; .long 54
.long 61 ; .long 61 ; .long 72 ; .long 47
.long 54 ; .long 60 ; .long 46 ; .long 58
.long 73 ; .long 88; .long 103 ; .long 181
.long 68 ; .long 73 ; .long 38 ; .long 38
.long 38 ; .long 38 ; .long 38 ; .long 38
.long 38 ; .long 54 ; .long 47 ; .long 47
.long 47 ; .long 47 ; .long 56 ; .long 47
.long 50 ; .long 91 ; .long 47 ; .long 47
.long 47 ; .long 47 ; .long 47 ; .long 51
.long 71 ; .long 54 ; .long 38 ; .long 38
.long 54 ; .long 73 ; .long 63 ; .long 99
.data4 32 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 37 ; .data4 37
.data4 37 ; .data4 37 ; .data4 134 ; .data4 00
.data4 42 ; .data4 00 ; .data4 56 ; .data4 40
.data4 40 ; .data4 42 ; .data4 42 ; .data4 42
.data4 42 ; .data4 38 ; .data4 38 ; .data4 38
.data4 38 ; .data4 38 ; .data4 42 ; .data4 71
.data4 52 ; .data4 52 ; .data4 52 ; .data4 52
.data4 118 ; .data4 52 ; .data4 52 ; .data4 55
.data4 45 ; .data4 45 ; .data4 36 ; .data4 43
.data4 231 ; .data4 231 ; .data4 231 ; .data4 231
.data4 231 ; .data4 231 ; .data4 231 ; .data4 231
.data4 231 ; .data4 231 ; .data4 231 ; .data4 231
.data4 231 ; .data4 231 ; .data4 231 ; .data4 231
.data4 231 ; .data4 231 ; .data4 231 ; .data4 231
.data4 231 ; .data4 231 ; .data4 231 ; .data4 231
.data4 231 ; .data4 231 ; .data4 231 ; .data4 231
.data4 233 ; .data4 00 ; .data4 00 ; .data4 75
.data4 00 ; .data4 58 ; .data4 00 ; .data4 54
.data4 91 ; .data4 113 ; .data4 116 ; .data4 38
.data4 59 ; .data4 59 ; .data4 36 ; .data4 00
.data4 1100 ; .data4 77; .data4 32 ; .data4 66
.data4 51 ; .data4 45 ; .data4 49 ; .data4 49
.data4 53 ; .data4 127 ; .data4 52 ; .data4 152
.data4 54 ; .data4 57 ; .data4 57 ; .data4 57
.data4 57 ; .data4 57 ; .data4 57 ; .data4 57
.data4 72 ; .data4 61 ; .data4 34 ; .data4 37
.data4 59 ; .data4 51 ; .data4 58 ; .data4 178
.data4 48 ; .data4 83 ; .data4 66 ; .data4 50
.data4 66 ; .data4 63 ; .data4 88 ; .data4 140
.data4 60 ; .data4 62 ; .data4 44 ; .data4 44
.data4 66 ; .data4 49 ; .data4 41 ; .data4 52
.data4 36 ; .data4 38 ; .data4 42 ; .data4 69
.data4 63 ; .data4 63 ; .data4 63 ; .data4 63
.data4 63 ; .data4 66 ; .data4 54 ; .data4 59
.data4 59 ; .data4 59 ; .data4 57 ; .data4 276
.data4 44 ; .data4 75 ; .data4 91 ; .data4 107
.data4 123 ; .data4 193 ; .data4 68 ; .data4 68
.data4 38 ; .data4 38 ; .data4 38 ; .data4 38
.data4 38 ; .data4 38 ; .data4 38 ; .data4 38
.data4 38 ; .data4 38 ; .data4 38 ; .data4 38
.data4 50 ; .data4 50 ; .data4 58 ; .data4 38
.data4 64 ; .data4 00 ; .data4 205 ; .data4 00
.data4 64 ; .data4 79 ; .data4 112 ; .data4 171
.data4 1094 ; .data4 136 ; .data4 00 ; .data4 38
.data4 00 ; .data4 66 ; .data4 144 ; .data4 60
.data4 62 ; .data4 57 ; .data4 71 ; .data4 54
.data4 61 ; .data4 61 ; .data4 72 ; .data4 47
.data4 54 ; .data4 60 ; .data4 46 ; .data4 58
.data4 73 ; .data4 88; .data4 103 ; .data4 181
.data4 68 ; .data4 73 ; .data4 38 ; .data4 38
.data4 38 ; .data4 38 ; .data4 38 ; .data4 38
.data4 38 ; .data4 54 ; .data4 47 ; .data4 47
.data4 47 ; .data4 47 ; .data4 56 ; .data4 47
.data4 50 ; .data4 91 ; .data4 47 ; .data4 47
.data4 47 ; .data4 47 ; .data4 47 ; .data4 51
.data4 71 ; .data4 54 ; .data4 38 ; .data4 38
.data4 54 ; .data4 73 ; .data4 63 ; .data4 99
timeinf1:
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 58
.long 63 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.long 40 ; .long 40 ; .long 40 ; .long 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 58
.data4 63 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
.data4 40 ; .data4 40 ; .data4 40 ; .data4 40
timeinf2:
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29 ; .long 29
.long 29 ; .long 29 ; .long 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29 ; .data4 29
.data4 29 ; .data4 29 ; .data4 29
#else
timeinf:
.long 30 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 127 ; .long 00
.long 36 ; .long 42 ; .long 56 ; .long 40
.long 40 ; .long 42 ; .long 42 ; .long 42
.long 36 ; .long 39 ; .long 39 ; .long 39
.long 39 ; .long 39 ; .long 41 ; .long 67
.long 48 ; .long 48 ; .long 48 ; .long 48
.long 97 ; .long 48 ; .long 48 ; .long 55
.long 45 ; .long 45 ; .long 36 ; .long 43
.long 211 ; .long 211 ; .long 211 ; .long 211
.long 211 ; .long 211 ; .long 211 ; .long 211
.long 211 ; .long 211 ; .long 211 ; .long 211
.long 211 ; .long 211 ; .long 211 ; .long 211
.long 211 ; .long 211 ; .long 211 ; .long 211
.long 211 ; .long 211 ; .long 211 ; .long 211
.long 211 ; .long 211 ; .long 211 ; .long 211
.long 213 ; .long 00 ; .long 00 ; .long 66
.long 00 ; .long 50 ; .long 54 ; .long 54
.long 75 ; .long 105 ; .long 106 ; .long 34
.long 53 ; .long 54 ; .long 32 ; .long 00
.long 146 ; .long 77; .long 30 ; .long 61
.long 47 ; .long 43 ; .long 43 ; .long 43
.long 49 ; .long 104 ; .long 36 ; .long 121
.long 54 ; .long 56 ; .long 56 ; .long 56
.long 56 ; .long 56 ; .long 56 ; .long 56
.long 72 ; .long 61 ; .long 34 ; .long 37
.long 58 ; .long 50 ; .long 57 ; .long 160
.long 40 ; .long 73 ; .long 56 ; .long 42
.long 56 ; .long 59 ; .long 80 ; .long 111
.long 54 ; .long 56 ; .long 40 ; .long 40
.long 66 ; .long 49 ; .long 41 ; .long 50
.long 32 ; .long 36 ; .long 38 ; .long 63
.long 57 ; .long 57 ; .long 57 ; .long 57
.long 57 ; .long 62 ; .long 48 ; .long 53
.long 53 ; .long 53 ; .long 53 ; .long 227
.long 42 ; .long 69 ; .long 83 ; .long 97
.long 111 ; .long 160 ; .long 62 ; .long 62
.long 34 ; .long 34 ; .long 34 ; .long 34
.long 34 ; .long 34 ; .long 34 ; .long 34
.long 34 ; .long 34 ; .long 34 ; .long 34
.long 45 ; .long 45 ; .long 58 ; .long 38
.long 64 ; .long 00 ; .long 71 ; .long 200
.long 56 ; .long 79 ; .long 103 ; .long 156
.long 148 ; .long 121 ; .long 00 ; .long 34
.long 38 ; .long 57 ; .long 128 ; .long 55
.long 57 ; .long 50 ; .long 66 ; .long 49
.long 56 ; .long 56 ; .long 68 ; .long 43
.long 50 ; .long 56 ; .long 46 ; .long 54
.long 65 ; .long 76; .long 87 ; .long 138
.long 63 ; .long 68 ; .long 34 ; .long 34
.long 34 ; .long 34 ; .long 34 ; .long 34
.long 34 ; .long 49 ; .long 41 ; .long 41
.long 41 ; .long 41 ; .long 54 ; .long 45
.long 48 ; .long 73 ; .long 45 ; .long 45
.long 45 ; .long 45 ; .long 45 ; .long 49
.long 66 ; .long 49 ; .long 34 ; .long 34
.long 49 ; .long 68 ; .long 63 ; .long 99
.data4 30 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 127 ; .data4 00
.data4 36 ; .data4 42 ; .data4 56 ; .data4 40
.data4 40 ; .data4 42 ; .data4 42 ; .data4 42
.data4 36 ; .data4 39 ; .data4 39 ; .data4 39
.data4 39 ; .data4 39 ; .data4 41 ; .data4 67
.data4 48 ; .data4 48 ; .data4 48 ; .data4 48
.data4 97 ; .data4 48 ; .data4 48 ; .data4 55
.data4 45 ; .data4 45 ; .data4 36 ; .data4 43
.data4 211 ; .data4 211 ; .data4 211 ; .data4 211
.data4 211 ; .data4 211 ; .data4 211 ; .data4 211
.data4 211 ; .data4 211 ; .data4 211 ; .data4 211
.data4 211 ; .data4 211 ; .data4 211 ; .data4 211
.data4 211 ; .data4 211 ; .data4 211 ; .data4 211
.data4 211 ; .data4 211 ; .data4 211 ; .data4 211
.data4 211 ; .data4 211 ; .data4 211 ; .data4 211
.data4 213 ; .data4 00 ; .data4 00 ; .data4 66
.data4 00 ; .data4 50 ; .data4 54 ; .data4 54
.data4 75 ; .data4 105 ; .data4 106 ; .data4 34
.data4 53 ; .data4 54 ; .data4 32 ; .data4 00
.data4 146 ; .data4 77; .data4 30 ; .data4 61
.data4 47 ; .data4 43 ; .data4 43 ; .data4 43
.data4 49 ; .data4 104 ; .data4 36 ; .data4 121
.data4 54 ; .data4 56 ; .data4 56 ; .data4 56
.data4 56 ; .data4 56 ; .data4 56 ; .data4 56
.data4 72 ; .data4 61 ; .data4 34 ; .data4 37
.data4 58 ; .data4 50 ; .data4 57 ; .data4 160
.data4 40 ; .data4 73 ; .data4 56 ; .data4 42
.data4 56 ; .data4 59 ; .data4 80 ; .data4 111
.data4 54 ; .data4 56 ; .data4 40 ; .data4 40
.data4 66 ; .data4 49 ; .data4 41 ; .data4 50
.data4 32 ; .data4 36 ; .data4 38 ; .data4 63
.data4 57 ; .data4 57 ; .data4 57 ; .data4 57
.data4 57 ; .data4 62 ; .data4 48 ; .data4 53
.data4 53 ; .data4 53 ; .data4 53 ; .data4 227
.data4 42 ; .data4 69 ; .data4 83 ; .data4 97
.data4 111 ; .data4 160 ; .data4 62 ; .data4 62
.data4 34 ; .data4 34 ; .data4 34 ; .data4 34
.data4 34 ; .data4 34 ; .data4 34 ; .data4 34
.data4 34 ; .data4 34 ; .data4 34 ; .data4 34
.data4 45 ; .data4 45 ; .data4 58 ; .data4 38
.data4 64 ; .data4 00 ; .data4 71 ; .data4 200
.data4 56 ; .data4 79 ; .data4 103 ; .data4 156
.data4 148 ; .data4 121 ; .data4 00 ; .data4 34
.data4 38 ; .data4 57 ; .data4 128 ; .data4 55
.data4 57 ; .data4 50 ; .data4 66 ; .data4 49
.data4 56 ; .data4 56 ; .data4 68 ; .data4 43
.data4 50 ; .data4 56 ; .data4 46 ; .data4 54
.data4 65 ; .data4 76; .data4 87 ; .data4 138
.data4 63 ; .data4 68 ; .data4 34 ; .data4 34
.data4 34 ; .data4 34 ; .data4 34 ; .data4 34
.data4 34 ; .data4 49 ; .data4 41 ; .data4 41
.data4 41 ; .data4 41 ; .data4 54 ; .data4 45
.data4 48 ; .data4 73 ; .data4 45 ; .data4 45
.data4 45 ; .data4 45 ; .data4 45 ; .data4 49
.data4 66 ; .data4 49 ; .data4 34 ; .data4 34
.data4 49 ; .data4 68 ; .data4 63 ; .data4 99
timeinf1:
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 49
.long 54 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.long 35 ; .long 35 ; .long 35 ; .long 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 49
.data4 54 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
.data4 35 ; .data4 35 ; .data4 35 ; .data4 35
timeinf2:
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25 ; .long 25
.long 25 ; .long 25 ; .long 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25 ; .data4 25
.data4 25 ; .data4 25 ; .data4 25
#endif
#endif
.text
.sect .text

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!--------------------------------------------------------------------------
! Load constant , load local , store local
!--------------------------------------------------------------------------

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!---------------------------------------------------------------------
! STORE GROUP
!---------------------------------------------------------------------

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!----------------------------------------------------------------------------
! CLEARS , INCREMENTS , DECREMENTS
!-----------------------------------------------------------------------------

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!-----------------------------------------------------------------------------.
! ARRAY GROUP
!-------------------------------------------------------------------------------

View file

@ -1,3 +1,10 @@
.define mlu4
.define dvu4
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!----------------------------------------------------------------------------
! SIGNED INTEGER ARITHMETIC
!------------------------------------------------------------------------------
@ -117,8 +124,7 @@ mli_2W:
! multiplicant in d1 . Returns 4 byte result in d0 . If d4=0 overflow did
! not occur on the multiplication , else it did .
.define mlu4
.text
.sect .text
mlu4: move.l d1,d3 ; move.l d0,d2
swap d2 ; swap d3
@ -232,8 +238,7 @@ dvi4: move.l (sp)+,d5
!Expects d0 divisor , d1 dividend. Gives d1 quotient ,d3 remainder
.define dvu4
.text
.sect .text
dvu4:
#if test
tst.l d0 ; bne 1f

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!------------------------------------------------------------------------------
! UNSIGNED ARITHMETIC
!-----------------------------------------------------------------------------

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!-------------------------------------------------------------------------
! TEST AND BRANCH GROUP
!-------------------------------------------------------------------------

View file

@ -1,3 +1,10 @@
.define ignmask
.define itoa
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!---------------------------------------------------------------------------
! MISCELLANEOUS
!----------------------------------------------------------------------------
@ -148,10 +155,9 @@ gto_l: move.l d6,a0 ; move.b (a3)+,-(sp)
lim_z: move.w ignmask,-(sp) ; jmp (a4)
sim_z: move.w (sp)+,ignmask ; jmp (a4)
.bss
.sect .bss
ignmask: .space 2
.define ignmask
.text
.sect .text
!---------------------------------------------------------------------------
lor_s0: move.l d6,d0 ; move.b (a3)+,d0
@ -204,15 +210,14 @@ lblnop: lea nopln+16,a0 ; move.l (a6),d1
add.l wrd+4,sp
jmp (a4)
.data
.sect .data
nopln: .asciz "line number nop sp \n"
.align 2
.text
.sect .text
!unsigned to ascii for integers , a0 is address of first character
! d1 contains integer. Output is 11 characters of which the first is a space.
.define itoa
.text
.sect .text
itoa: move.l #9,d4 ; add.l #11,a0
move.l #10,d0
@ -291,23 +296,23 @@ mon_z: mov (sp)+,d0 ; bmi e_badmon
add.l #syscal,d0 ; move.l d0,a0
move.l (a0),a0 ; jmp (a0)
.data
.sect .data
syscal:
.long e_badmon ; .long hlt_z ; .long _fork ; .long _read
.long _write ; .long _open ; .long _close ; .long _wait
.long _creat ; .long _link ; .long _unlink ; .long e_badmon
.long _chdir ; .long e_badmon ; .long _mknod ; .long _chmod
.long _chown ; .long _break ; .long _stat ; .long _lseek
.long _getpid ; .long _mount ; .long _umount ; .long _setuid
.long _getuid ; .long _stime ; .long _ptrace ; .long _alarm
.long _fstat ; .long _pause ; .long _utime ; .long e_badmon
.long e_badmon ; .long _access ; .long _nice ; .long _ftime
.long _sync ; .long _kill ; .long e_badmon ; .long e_badmon
.long e_badmon ; .long _dup ; .long _pipe ; .long _times
.long _profil ; .long e_badmon ; .long _setgid ; .long _getgid
.long _sigtrp ; .long e_badmon ; .long e_badmon ; .long _acct
.long e_badmon ; .long _lock ; .long _ioctl ; .long e_badmon
.long _mpxcall ; .long e_badmon ; .long e_badmon ; .long _exece
.long _umask ; .long _chroot ; .long e_badmon ; .long e_badmon
.data4 e_badmon ; .data4 hlt_z ; .data4 _fork ; .data4 _read
.data4 _write ; .data4 _open ; .data4 _close ; .data4 _wait
.data4 _creat ; .data4 _link ; .data4 _unlink ; .data4 e_badmon
.data4 _chdir ; .data4 e_badmon ; .data4 _mknod ; .data4 _chmod
.data4 _chown ; .data4 _break ; .data4 _stat ; .data4 _lseek
.data4 _getpid ; .data4 _mount ; .data4 _umount ; .data4 _setuid
.data4 _getuid ; .data4 _stime ; .data4 _ptrace ; .data4 _alarm
.data4 _fstat ; .data4 _pause ; .data4 _utime ; .data4 e_badmon
.data4 e_badmon ; .data4 _access ; .data4 _nice ; .data4 _ftime
.data4 _sync ; .data4 _kill ; .data4 e_badmon ; .data4 e_badmon
.data4 e_badmon ; .data4 _dup ; .data4 _pipe ; .data4 _times
.data4 _profil ; .data4 e_badmon ; .data4 _setgid ; .data4 _getgid
.data4 _sigtrp ; .data4 e_badmon ; .data4 e_badmon ; .data4 _acct
.data4 e_badmon ; .data4 _lock ; .data4 _ioctl ; .data4 e_badmon
.data4 _mpxcall ; .data4 e_badmon ; .data4 e_badmon ; .data4 _exece
.data4 _umask ; .data4 _chroot ; .data4 e_badmon ; .data4 e_badmon
.text
.sect .text

View file

@ -1,3 +1,9 @@
.define e_memflt
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
e_array: cl -(sp) ; bra error
e_range: mov #0x1,-(sp) ; bra error
e_set: mov #0x2,-(sp) ; bra error
@ -24,7 +30,6 @@ e_badgto: mov #0x1B,-(sp) ; bra error
flnim: mov #0xB,-(sp) ; bra error
no8bar: mov #0xC,-(sp) ; bra error
.define e_memflt
!---------------------------------------------------------------------------
! ERRORS AND TRAPS
!----------------------------------------------------------------------------
@ -85,9 +90,9 @@ sig_z: move.l (sp),d0
move.l d0,uerrorp
jmp (a4)
.data
uerrorp: .long 0x-1
.text
.sect .data
uerrorp: .data4 0x-1
.sect .text
!-----------------------------------------------------------------------------
!FIRST INFORMATION ABOUT THE KIND OF THE ERROR
@ -153,14 +158,14 @@ notrap1: comp #29,d0 !ERROR NUMBER STILL IN d0
!--------------------------------------------------------------------------
hlt_z: add.l #4,sp !remove return address
#if prof
.data
.sect .data
emprof: .asciz "em_profile\0"
.align 2
.bss
.sect .bss
profile: .space 4
ltime: .space 4
profsiz: .space 4
.text
.sect .text
tst.l firstp
beq lhalt
mov #0x1B6,-(sp)
@ -184,13 +189,13 @@ profsiz: .space 4
mov d0,-(sp)
bsr _write
add.l wrd+4,sp
.data
.sect .data
emflow: .asciz "em_flow\0"
.align 2
.bss
.sect .bss
lflow: .space 4
flowsiz: .space 4
.text
.sect .text
#endif
#if count
tst.l firstp
@ -202,20 +207,20 @@ flowsiz: .space 4
mov (sp)+,d0
move.l lcount,a4
bsr tabprint
.data
.sect .data
emcount: .asciz "em_count\0"
.align 2
.bss
.sect .bss
lcount: .space 4
countsiz: .space 4
#endif
#if opfreq
.data
.sect .data
emopf: .asciz "em_opfreq\0"
.align
.bss
.sect .bss
counttab: .space 1884
.text
.sect .text
mov #0x1B6,-(sp)
pea emopf
bsr _creat
@ -228,13 +233,13 @@ counttab: .space 1884
add.l wrd+4,sp
#endif
#if count+flow+prof
.bss
.sect .bss
countfld: .space 4 !COUNT NUMBER - NUMBER OF LINE 1 OF PROC
countptr: .space 4 !COUNT NUMBER OF CURRENT LINE
#endif
lhalt:
#if last
.text
.sect .text
mov #0x1B6,-(sp)
pea emlast
bsr _creat
@ -286,20 +291,20 @@ lhalt:
clr.l (a5)+ !skip file name
bra 4b !only new line
9:
.data
.sect .data
emlast: .asciz "em_last"
mess1: .asciz "no line processed yet\n"
mess2: .asciz "\nfile :"
mess3: .asciz " \n"
.align 2
.bss
.sect .bss
lasttable: .space 512
linused: .space 4
#endif
.text
.sect .text
halt: bsr _exit
.data
.sect .data
emerr:
.asciz "ARRAY BOUND ERROR \n"
.asciz "RANGE BOUND ERROR \n"
@ -338,7 +343,7 @@ emess:
!-----------------------------------------------------------------------------
! SUBROUTINES FOR THE INTERPRETOR
!------------------------------------------------------------------------------
.text
.sect .text
#if last
nexttab: move.l linused,a5
add.l #8,a5
@ -351,7 +356,7 @@ nexttab: move.l linused,a5
#if count+prof
!SUBROUTINE FOR PRINTING TABLES . EXPECTS BOTTOM OF TABLE IN a4 AND FILE
!DESCRIPTOR IN d0 .IN maxcount NUMBER OF 4 BYTE WORDS IN THE TABLE.
.text
.sect .text
tabprint: mov d0,-(sp) !KEEP FILE DESCRIPTOR FOR WRITING
lea buffer,a3
move.l firstp,a5 !IN a5 POINTER TO CURRENT PROC.
@ -411,7 +416,7 @@ tabprint: mov d0,-(sp) !KEEP FILE DESCRIPTOR FOR WRITING
move.l #0,a6 !NO NEXT PROCEDURE.
bra 8b
.data
.sect .data
buffer: .asciz " \n"
.text
.sect .text
#endif

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
_sigtrp: move.l (sp)+,d2 !save return address
mov (sp)+,d1 !trapno in d1
mov (sp)+,d4 !signo in d4
@ -28,16 +33,16 @@ sig_bad: mov 22,-(sp) !_signal. If pointer 0 trapping is
mov d4,-(sp) !pointer ,signo to be trapped
bsr _signal
jmp (a4)
.data
sig_adr: .long sig1 ; .long sig2 ; .long sig3 ; .long 0
.long 0 ; .long 0 ; .long 0 ; .long 0
.long 0 ; .long 0 ; .long sig11 ; .long sig12
.long sig13 ; .long sig14 ; .long sig15 ; .long sig16
sig_trp: .long -2 ; .long -2 ; .long -2 ; .long -2
.long -2 ; .long -2 ; .long -2 ; .long -2
.long -2 ; .long -2 ; .long 21 ; .long 25
.long -2 ; .long -2 ; .long -2 ; .long -2
.text
.sect .data
sig_adr: .data4 sig1 ; .data4 sig2 ; .data4 sig3 ; .data4 0
.data4 0 ; .data4 0 ; .data4 0 ; .data4 0
.data4 0 ; .data4 0 ; .data4 sig11 ; .data4 sig12
.data4 sig13 ; .data4 sig14 ; .data4 sig15 ; .data4 sig16
sig_trp: .data4 -2 ; .data4 -2 ; .data4 -2 ; .data4 -2
.data4 -2 ; .data4 -2 ; .data4 -2 ; .data4 -2
.data4 -2 ; .data4 -2 ; .data4 21 ; .data4 25
.data4 -2 ; .data4 -2 ; .data4 -2 ; .data4 -2
.sect .text
!the next procedures map the catched signal to em errors. The em error
!procedure will handle this.
sig1: pea retutrap

View file

@ -1,3 +1,8 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
!THIS FILE CONTAINS THE SYSTEM CALLS FOR PMDS-II AS SUBROUTINES FOR THE
!EM-INTERPRETER. a1 CONTAINS A POINTER TO THE RETURN AREA . EACH SUBROUTINE
!EXPECTS ITS DATA IN THE FORM EM PRODUCES AND GIVES ITS RESULTS AS EM
@ -11,17 +16,17 @@ _exit: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 1
.data2 1
_fork: move.l (sp),(a1)
trap #0
.short 2
.data2 2
lea 4(sp),sp
bcs 2f
tst.l d0 !PID OF CHILD IN PARENT, 0 IN CHILD
bne 1f
trap #0
.short 20
.data2 20
mov d1,-(sp) !PID OF PARENT IN d1
mov #1,-(sp) !(PID OF CHILD IN D0),FLAG 1 IN CHILD
bra 0f
@ -40,7 +45,7 @@ _read: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 3
.data2 3
sys0: lea 16(sp),sp
bcc 1f
mov d0,-(sp)
@ -56,7 +61,7 @@ _write: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 4
.data2 4
bra sys0
_open: move.l (sp),(a1)
@ -64,7 +69,7 @@ _open: move.l (sp),(a1)
bsr st243
#endif
trap #0
.short 5
.data2 5
sys1: lea 12(sp),sp
sys5: bcc 1f
mov d0,-(sp)
@ -80,7 +85,7 @@ _close: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 6
.data2 6
sys3: lea 8(sp),sp
sys4: bcc 1f
mov d0,-(sp)
@ -92,7 +97,7 @@ sys4: bcc 1f
_wait: move.l (sp),(a1)
trap #0
.short 7
.data2 7
sys6: lea 4(sp),sp
bcc 1f
mov d0,-(sp)
@ -109,23 +114,23 @@ _creat: move.l (sp),(a1)
bsr st243
#endif
trap #0
.short 8
.data2 8
bra sys1
_link: move.l (sp),(a1)
trap #0
.short 9
.data2 9
lea 12(sp),sp
bra sys4
_unlink: move.l (sp),(a1)
trap #0
.short 10
.data2 10
bra sys3
_chdir: move.l (sp),(a1)
trap #0
.short 12
.data2 12
bra sys3
_mknod: move.l (sp),(a1)
@ -133,7 +138,7 @@ _mknod: move.l (sp),(a1)
bsr st244
#endif
trap #0
.short 14
.data2 14
lea 16(sp),sp
bra sys4
@ -142,7 +147,7 @@ _chmod: move.l (sp),(a1)
bsr st243
#endif
trap #0
.short 15
.data2 15
lea 12(sp),sp
bra sys4
@ -151,13 +156,13 @@ _chown: move.l (sp),(a1)
bsr st244
#endif
trap #0
.short 16
.data2 16
lea 16(sp),sp
bra sys4
_break: move.l (sp),(a1)
trap #0
.short 17
.data2 17
lea 8(sp),sp
bcc 1f
mov d0,-(sp)
@ -168,13 +173,13 @@ _break: move.l (sp),(a1)
2: move.l (a1),a0
jmp (a0)
.data
nd: .long endbss
.text
.sect .data
nd: .data4 endbss
.sect .text
_stat: move.l (sp),(a1)
trap #0
.short 18
.data2 18
lea 12(sp),sp
bra sys4
@ -183,7 +188,7 @@ _lseek: move.l (sp),(a1)
bsr st245
#endif
trap #0
.short 19
.data2 19
lea 16(sp),sp
bcc 1f
mov d0,-(sp)
@ -197,7 +202,7 @@ _lseek: move.l (sp),(a1)
_getpid: move.l (sp),(a1)
trap #0
.short 20
.data2 20
add.l #4,sp
mov d0,-(sp)
move.l (a1),a0
@ -208,13 +213,13 @@ _mount: move.l (sp),(a1)
bsr st246
#endif
trap #0
.short 21
.data2 21
lea 16(sp),sp
bra sys4
_umount: move.l (sp),(a1)
trap #0
.short 22
.data2 22
bra sys3
_setuid: move.l (sp),(a1)
@ -222,12 +227,12 @@ _setuid: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 23
.data2 23
bra sys3
_getuid: move.l (sp),(a1)
trap #0
.short 24
.data2 24
sys7: add.l #4,sp
mov d1,-(sp)
mov d0,-(sp)
@ -236,7 +241,7 @@ sys7: add.l #4,sp
_stime: move.l (sp),(a1)
trap #0
.short 25
.data2 25
bra sys3
_ptrace: move.l (sp),(a1)
@ -244,7 +249,7 @@ _ptrace: move.l (sp),(a1)
bsr st247
#endif
trap #0
.short 26
.data2 26
lea 20(sp),sp
bra sys5
@ -254,7 +259,7 @@ _alarm: move.l (sp),(a1)
clr.w 4(sp)
#endif
trap #0
.short 27
.data2 27
lea 8(sp),sp
mov d0,-(sp)
move.l (a1),a0
@ -265,17 +270,17 @@ _fstat: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 28
.data2 28
lea 12(sp),sp
bra sys4
_pause: trap #0
.short 29
.data2 29
rts
_utime: move.l (sp),(a1)
trap #0
.short 30
.data2 30
lea 12(sp),sp
bra sys4
@ -284,7 +289,7 @@ _access: move.l (sp),(a1)
bsr st248
#endif
trap #0
.short 33
.data2 33
lea 12(sp),sp
bra sys4
@ -293,17 +298,17 @@ _nice:
bsr 241
#endif
trap #0
.short 34
.data2 34
move.l (sp)+,(sp)
rts
_ftime: move.l (sp),(a1)
trap #0
.short 35
.data2 35
bra sys3
_sync: trap #0
.short 36
.data2 36
rts
_kill: move.l (sp),(a1)
@ -311,7 +316,7 @@ _kill: move.l (sp),(a1)
bsr st248
#endif
trap #0
.short 37
.data2 37
lea 12(sp),sp
bra sys4
@ -320,22 +325,22 @@ _dup: move.l (sp),(a1)
bsr st248
#endif
trap #0
.short 38
.data2 38
bra sys1
_pipe: move.l (sp),(a1)
trap #0
.short 42
.data2 42
bra sys6
_times: trap #0
.short 43
.data2 43
move.l (sp),a0
add.l #8,sp
jmp (a0)
_profil: trap #0
.short 44
.data2 44
move.l (sp),a0
lea 20(sp),sp
jmp (a0)
@ -345,12 +350,12 @@ _setgid: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 46
.data2 46
bra sys3
_getgid: move.l (sp),(a1)
trap #0
.short 47
.data2 47
bra sys7
@ -360,7 +365,7 @@ _signal: move.l (sp)+,retaddr
move.l d4,-(sp)
move.l retaddr,-(sp)
trap #0
.short 48
.data2 48
lea 12(sp),sp !remove arguments
bcc 1f
mov d0,-(sp)
@ -370,20 +375,20 @@ _signal: move.l (sp)+,retaddr
cl -(sp)
2: move.l retaddr,a0
jmp (a0)
.data
retaddr: .long 0
.text
.sect .data
retaddr: .data4 0
.sect .text
_acct: move.l (sp),(a1)
trap #0
.short 51
.data2 51
bra sys3
_lock: move.l (sp),(a1)
#ifndef lword
bsr st241
#endif
trap #0
.short 53
.data2 53
bra sys3
_ioctl: move.l (sp),(a1)
@ -391,7 +396,7 @@ _ioctl: move.l (sp),(a1)
bsr st248
#endif
trap #0
.short 54
.data2 54
lea 16(sp),sp
bra sys4
@ -400,13 +405,13 @@ _mpxcall: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 56
.data2 56
lea 12(sp),sp
bra sys4
_exece: move.l (sp),(a1)
trap #0
.short 59
.data2 59
lea 16(sp),sp
bra sys4
@ -415,7 +420,7 @@ _umask: move.l (sp),(a1)
bsr st241
#endif
trap #0
.short 60
.data2 60
add.l #8,sp
mov d0,-(sp)
move.l (a1),a0
@ -423,7 +428,7 @@ _umask: move.l (sp),(a1)
_chroot: move.l (sp),(a1)
trap #0
.short 61
.data2 61
bra sys3

View file

@ -1,6 +1,11 @@
.text
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
.sect .text
end:
.bss
.sect .bss
endbss:
.data
.sect .data
enddata: