Browse Source

new assembler syntax

ceriel 37 years ago
parent
commit
d2441d274c
95 changed files with 484 additions and 8 deletions
  1. 5 0
      mach/6500/libem/aar.s
  2. 5 0
      mach/6500/libem/addsub.s
  3. 5 0
      mach/6500/libem/adi.s
  4. 5 0
      mach/6500/libem/adi4.s
  5. 5 0
      mach/6500/libem/and.s
  6. 5 0
      mach/6500/libem/asp.s
  7. 5 0
      mach/6500/libem/blm.s
  8. 5 0
      mach/6500/libem/cii.s
  9. 5 0
      mach/6500/libem/cmi.s
  10. 5 0
      mach/6500/libem/cmi4.s
  11. 5 0
      mach/6500/libem/cms.s
  12. 5 0
      mach/6500/libem/cmu.s
  13. 5 0
      mach/6500/libem/cmu4.s
  14. 5 0
      mach/6500/libem/com.s
  15. 5 0
      mach/6500/libem/csa.s
  16. 5 0
      mach/6500/libem/csb.s
  17. 6 1
      mach/6500/libem/data.s
  18. 5 0
      mach/6500/libem/div4.s
  19. 5 0
      mach/6500/libem/dum_float.s
  20. 5 0
      mach/6500/libem/dup.s
  21. 5 0
      mach/6500/libem/duv4.s
  22. 5 0
      mach/6500/libem/dvi.s
  23. 5 0
      mach/6500/libem/dvi4.s
  24. 5 0
      mach/6500/libem/dvu.s
  25. 5 0
      mach/6500/libem/dvu4.s
  26. 8 3
      mach/6500/libem/end.s
  27. 5 0
      mach/6500/libem/exg.s
  28. 5 0
      mach/6500/libem/exg2.s
  29. 5 0
      mach/6500/libem/gto.s
  30. 10 4
      mach/6500/libem/head_em.s
  31. 5 0
      mach/6500/libem/indir.s
  32. 5 0
      mach/6500/libem/inn.s
  33. 5 0
      mach/6500/libem/ior.s
  34. 5 0
      mach/6500/libem/lar.s
  35. 5 0
      mach/6500/libem/lcs.s
  36. 5 0
      mach/6500/libem/ldi.s
  37. 5 0
      mach/6500/libem/locaddr.s
  38. 5 0
      mach/6500/libem/loi.s
  39. 5 0
      mach/6500/libem/loi1.s
  40. 5 0
      mach/6500/libem/loil.s
  41. 5 0
      mach/6500/libem/lol.s
  42. 5 0
      mach/6500/libem/los.s
  43. 5 0
      mach/6500/libem/lxa1.s
  44. 5 0
      mach/6500/libem/lxa2.s
  45. 5 0
      mach/6500/libem/lxl.s
  46. 5 0
      mach/6500/libem/mli.s
  47. 5 0
      mach/6500/libem/mli4.s
  48. 5 0
      mach/6500/libem/mlu.s
  49. 5 0
      mach/6500/libem/mlu4.s
  50. 5 0
      mach/6500/libem/mon.s
  51. 5 0
      mach/6500/libem/mul4.s
  52. 5 0
      mach/6500/libem/ngi.s
  53. 5 0
      mach/6500/libem/ngi4.s
  54. 5 0
      mach/6500/libem/print.s
  55. 5 0
      mach/6500/libem/printhex.s
  56. 5 0
      mach/6500/libem/printstack.s
  57. 5 0
      mach/6500/libem/pro.s
  58. 5 0
      mach/6500/libem/read.s
  59. 5 0
      mach/6500/libem/ret.s
  60. 5 0
      mach/6500/libem/rmi.s
  61. 5 0
      mach/6500/libem/rmi4.s
  62. 5 0
      mach/6500/libem/rmu.s
  63. 5 0
      mach/6500/libem/rmu4.s
  64. 5 0
      mach/6500/libem/rol.s
  65. 5 0
      mach/6500/libem/rol4.s
  66. 5 0
      mach/6500/libem/ror.s
  67. 5 0
      mach/6500/libem/ror4.s
  68. 5 0
      mach/6500/libem/rtt.s
  69. 5 0
      mach/6500/libem/sar.s
  70. 5 0
      mach/6500/libem/sbi.s
  71. 5 0
      mach/6500/libem/sbi4.s
  72. 5 0
      mach/6500/libem/sdl.s
  73. 5 0
      mach/6500/libem/set.s
  74. 5 0
      mach/6500/libem/sli.s
  75. 5 0
      mach/6500/libem/sli4.s
  76. 5 0
      mach/6500/libem/sri.s
  77. 5 0
      mach/6500/libem/sri4.s
  78. 5 0
      mach/6500/libem/sti.s
  79. 5 0
      mach/6500/libem/sti1.s
  80. 5 0
      mach/6500/libem/stil.s
  81. 5 0
      mach/6500/libem/stl.s
  82. 5 0
      mach/6500/libem/sts.s
  83. 5 0
      mach/6500/libem/teq.s
  84. 5 0
      mach/6500/libem/test2.s
  85. 5 0
      mach/6500/libem/testFFh.s
  86. 5 0
      mach/6500/libem/tge.s
  87. 5 0
      mach/6500/libem/tgt.s
  88. 5 0
      mach/6500/libem/tle.s
  89. 5 0
      mach/6500/libem/tlt.s
  90. 5 0
      mach/6500/libem/tne.s
  91. 5 0
      mach/6500/libem/trap.s
  92. 5 0
      mach/6500/libem/write.s
  93. 5 0
      mach/6500/libem/xor.s
  94. 5 0
      mach/6500/libem/zer.s
  95. 5 0
      mach/6500/libem/zri.s

+ 5 - 0
mach/6500/libem/aar.s

@@ -1,4 +1,9 @@
 .define Aar
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine gets the address of the array element
 

+ 5 - 0
mach/6500/libem/addsub.s

@@ -1,4 +1,9 @@
 .define Addsub
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine is used by the fourbyte addition and subtraction
 ! routines.

+ 5 - 0
mach/6500/libem/adi.s

@@ -1,4 +1,9 @@
 .define  Adi2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine adds two twobyte integers.
 ! The first operand is on the top of the stack, the second operand

+ 5 - 0
mach/6500/libem/adi4.s

@@ -1,4 +1,9 @@
 .define Adi4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine adds two fourbyte integers, which are on the stack.
 ! The addresses are initiated by the subroutine Addsub.

+ 5 - 0
mach/6500/libem/and.s

@@ -1,4 +1,9 @@
 .define And
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the logical and on two groups of
 ! atmost 254 bytes. The number of bytes is in register Y.

+ 5 - 0
mach/6500/libem/asp.s

@@ -1,4 +1,9 @@
 .define Asp
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine adds an offset to the stackpointer,
 ! e.g. after the return from a procedurecall.

+ 5 - 0
mach/6500/libem/blm.s

@@ -1,4 +1,9 @@
 .define Blm, Blmnp
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine copies bytes from one place in memory to
 ! another. The source address is in registerpair AX and is stored

+ 5 - 0
mach/6500/libem/cii.s

@@ -1,4 +1,9 @@
 .define Cii
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine converts integers to integers.
 ! Convertions of integers with the same source size as destination

+ 5 - 0
mach/6500/libem/cmi.s

@@ -1,4 +1,9 @@
 .define Cmi
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine compares on two integers.
 ! If T is pushed first and than S, the routine will return:

+ 5 - 0
mach/6500/libem/cmi4.s

@@ -1,4 +1,9 @@
 .define Cmi4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine compares on fourbyte integers.
 ! If T is pushed first and than S, the routine will return:

+ 5 - 0
mach/6500/libem/cms.s

@@ -1,4 +1,9 @@
 .define Cms
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine compares two groups of bytes, bit for bit.
 ! The groups can consist of 2 or 4 bytes. This number is in

+ 5 - 0
mach/6500/libem/cmu.s

@@ -1,4 +1,9 @@
 .define Cmu2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine compares two unsigned twobyte integers.
 ! If T is the first pushed and than S, the routine will return:

+ 5 - 0
mach/6500/libem/cmu4.s

@@ -1,4 +1,9 @@
 .define Cmu4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine compares two unsigned fourbyte integers.
 ! If T is first pushed and than S the routine will return:

+ 5 - 0
mach/6500/libem/com.s

@@ -1,4 +1,9 @@
 .define Com
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs a one complement on
 ! a group of atmost 254 bytes (number in register Y).

+ 5 - 0
mach/6500/libem/csa.s

@@ -1,4 +1,9 @@
 .define Csa
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the case jump by indexing.
 ! The zeropage locations ADDR, ADDR+1 contain the address of

+ 5 - 0
mach/6500/libem/csb.s

@@ -1,4 +1,9 @@
 .define Csb
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the case jump by searching the table.
 ! The zeropage locations ADDR, ADDR+1 contain the address of the

+ 6 - 1
mach/6500/libem/data.s

@@ -2,12 +2,17 @@
 .define ECONV,ESTACK
 .define EHEAP,EODDZ,ECASE
 .define EBADMON,EBADLIN,EBADGTO
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This file contains the global data used by the trap routine.
 
 
 ! DATA
-.data
+.sect .data
 EARRAY:
 .asciz	"Array bound error\n\r"
 ERANGE:

+ 5 - 0
mach/6500/libem/div4.s

@@ -1,4 +1,9 @@
 .define Div4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs a signed divide on two fourbyte integers.
 ! For more detail see dvi.s

+ 5 - 0
mach/6500/libem/dum_float.s

@@ -23,6 +23,11 @@
 .define Cfu
 .define Lfr8
 .define Ret8
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! Dummy floating point package for 6500
 ! every EM floating point instruction results in an

+ 5 - 0
mach/6500/libem/dup.s

@@ -1,4 +1,9 @@
 .define Dup
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine duplicate's the top n (in register Y) bytes.
 ! N is atmost 256.

+ 5 - 0
mach/6500/libem/duv4.s

@@ -1,4 +1,9 @@
 .define Duv4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs an unsigned division on two fourbyte
 ! unsigned integers.

+ 5 - 0
mach/6500/libem/dvi.s

@@ -1,4 +1,9 @@
 .define Dvi2, Div, Duv
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Dvi2 performs a signed division.
 ! Its operands are on the stack.

+ 5 - 0
mach/6500/libem/dvi4.s

@@ -1,4 +1,9 @@
 .define Dvi4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs a fourbyte signed division.
 ! For more details see dvi.s

+ 5 - 0
mach/6500/libem/dvu.s

@@ -1,4 +1,9 @@
 .define Dvu2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs a twobyte unsigned division
 ! For more details see dvi.s.

+ 5 - 0
mach/6500/libem/dvu4.s

@@ -1,4 +1,9 @@
 .define Dvu4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs an unsigned division on fourbyte
 ! integers. For more details see dvi.s

+ 8 - 3
mach/6500/libem/end.s

@@ -1,12 +1,17 @@
 .define endtext, enddata, endbss, end
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
-.text
+.sect .text
 endtext:
 .align 2
-.data
+.sect .data
 .align 2
 enddata:
-.bss
+.sect .bss
 .align 2
 endbss:
 end:

+ 5 - 0
mach/6500/libem/exg.s

@@ -1,4 +1,9 @@
 .define Exg
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine exchanges two groups of bytes on the top of the
 ! stack. The groups may consist of atmost 255 bytes.

+ 5 - 0
mach/6500/libem/exg2.s

@@ -1,4 +1,9 @@
 .define Exg2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine exchanges two words on top of the stack.
 ! The top word of the stack is really in the AX registerpair.

+ 5 - 0
mach/6500/libem/gto.s

@@ -1,4 +1,9 @@
 .define Gto
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the non_local goto.
 ! The address of the descriptor is stored in zeropage locations

+ 10 - 4
mach/6500/libem/head_em.s

@@ -9,6 +9,12 @@
 .define RETSIZE, TRAPVAL, STACK, BRANCH
 .define start, Push, Pop, STACKTh, STACKTl
 .define F_DUM
+.sect .zero
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! DEFINITIONS
 
@@ -51,7 +57,7 @@ STACKTl = 0D0h
 
 	! Some zeropage declarations
 
-.zero
+.sect .zero
 
 RES: .space 76		! special for the operating system
 
@@ -97,8 +103,8 @@ STACK: .space 1		! contains the hardware stackpointer on
 
 RESERVED: .space 112    ! used by the operating system
 
+.sect .text
 .base 0E02h		! where to start in the BBC micro
-.text
 ! GENERAL PURPOSE ROUTINES
 
 start:
@@ -220,8 +226,8 @@ Pop:
 	rts
 
 
-.data
+.sect .data
 PROGNAME:		! for initialising the programname pointer
 .asciz "program"
-.bss
+.sect .bss
 beginbss:

+ 5 - 0
mach/6500/libem/indir.s

@@ -1,4 +1,9 @@
 .define Indir
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs an indirect procedurecall.
 ! This must be done this way since the jump instruction

+ 5 - 0
mach/6500/libem/inn.s

@@ -1,4 +1,9 @@
 .define Inn
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine checks if a certain bit is set in a set
 ! of n bytes on top of the stack.

+ 5 - 0
mach/6500/libem/ior.s

@@ -1,4 +1,9 @@
 .define Ior
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the logical inclusive or on two
 ! groups of bytes. The groups may consist of atmost 254 bytes.

+ 5 - 0
mach/6500/libem/lar.s

@@ -1,4 +1,9 @@
 .define Lar
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the LAR instruction.
 ! For details see rapport IR-81.

+ 5 - 0
mach/6500/libem/lcs.s

@@ -1,4 +1,9 @@
 .define Lcs
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine creates space for locals on procedure entry
 ! by lowering the stackpointer.

+ 5 - 0
mach/6500/libem/ldi.s

@@ -1,4 +1,9 @@
 .define Ldi, Ldo
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Ldi pushes a four byte object onto the stack.
 ! The address is in registerpair AX.

+ 5 - 0
mach/6500/libem/locaddr.s

@@ -1,4 +1,9 @@
 .define Locaddr
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This routine gets the address of a local which offset is to big.
 ! The offset is in registerpair AX.

+ 5 - 0
mach/6500/libem/loi.s

@@ -1,4 +1,9 @@
 .define Loi, Lext
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 ! This subroutine performs an indirect load on a word of two bytes.
 ! Lext is used when the address is already in zeropage.
 

+ 5 - 0
mach/6500/libem/loi1.s

@@ -1,4 +1,9 @@
 .define Loi1
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This routine loads a one byte object in registerpair AX.
 

+ 5 - 0
mach/6500/libem/loil.s

@@ -1,4 +1,9 @@
 .define Loil
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine pushes an object of size greater than four bytes
 ! onto the stack.

+ 5 - 0
mach/6500/libem/lol.s

@@ -1,4 +1,9 @@
 .define Lol
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine loads a local in registerpair AX which
 ! offset from the localbase is to big.

+ 5 - 0
mach/6500/libem/los.s

@@ -1,4 +1,9 @@
 .define Los
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine perfoms the LOS instruction.
 ! For detail see rapport IR-81.

+ 5 - 0
mach/6500/libem/lxa1.s

@@ -1,4 +1,9 @@
 .define Lxa1
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine loads the address of AB zero static levels back.
 

+ 5 - 0
mach/6500/libem/lxa2.s

@@ -1,4 +1,9 @@
 .define Lxa2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine load the address of AB n (255 >= n > 0) static levels
 ! back.

+ 5 - 0
mach/6500/libem/lxl.s

@@ -1,4 +1,9 @@
 .define Lxl
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine loads LB n (255 => n > 0) static levels back.
 

+ 5 - 0
mach/6500/libem/mli.s

@@ -1,4 +1,9 @@
 .define Mli2, Mlinp, Mul
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Mli2 multiplies two signed integers. The integers
 ! are popped from the stack.

+ 5 - 0
mach/6500/libem/mli4.s

@@ -1,4 +1,9 @@
 .define Mli4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine multiplies two signed fourbyte integers
 ! For more detail see mli.s

+ 5 - 0
mach/6500/libem/mlu.s

@@ -1,4 +1,9 @@
 .define Mlu2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine multiplies two unsigned fourbyte intergers.
 ! For more details see mli.s

+ 5 - 0
mach/6500/libem/mlu4.s

@@ -1,4 +1,9 @@
 .define Mlu4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine multiplies two fourbyte unsigned integers.
 ! For more details see mli.s

+ 5 - 0
mach/6500/libem/mon.s

@@ -1,4 +1,9 @@
 .define Mon
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs some monitor calls.
 ! The exit call just resets the hardware_stackpointer so

+ 5 - 0
mach/6500/libem/mul4.s

@@ -1,4 +1,9 @@
 .define Mul4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine multiplies two fourbyte signed integers.
 ! For more details see mli.s

+ 5 - 0
mach/6500/libem/ngi.s

@@ -1,4 +1,9 @@
 .define Ngi2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine negates the integer in registerpair AX.
 ! The negation is a one's complement plus one.

+ 5 - 0
mach/6500/libem/ngi4.s

@@ -1,4 +1,9 @@
 .define Ngi4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine takes a fourbyte interger and negates it.
 ! For more details see ngi2.s

+ 5 - 0
mach/6500/libem/print.s

@@ -1,4 +1,9 @@
 .define Mprint
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine prints a zero terminated ascii string.
 ! The registerpair AX contains the start of the string.

+ 5 - 0
mach/6500/libem/printhex.s

@@ -1,4 +1,9 @@
 .define Printhex
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine print the contents of register A to the screen
 ! in hexadecimal form.

+ 5 - 0
mach/6500/libem/printstack.s

@@ -1,4 +1,9 @@
 .define Printstack
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This a special subroutine which prints some things to the
 ! monitorscreen for debugging.

+ 5 - 0
mach/6500/libem/pro.s

@@ -1,4 +1,9 @@
 .define Pro
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This routine is called at the entry of a procedure.
 ! It saves the localbase of the invoking procedure, and sets the

+ 5 - 0
mach/6500/libem/read.s

@@ -1,4 +1,9 @@
 .define Mread
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine reads characters from the standard input.
 ! It ignores the filedes.

+ 5 - 0
mach/6500/libem/ret.s

@@ -1,4 +1,9 @@
 .define Ret
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine stores the returnvalue in the return area.
 ! This area is in zeropage.

+ 5 - 0
mach/6500/libem/rmi.s

@@ -1,4 +1,9 @@
 .define Rmi2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine returns the remainder of a twobyte signed division.
 ! The sign of the result is as specified in the emtest.

+ 5 - 0
mach/6500/libem/rmi4.s

@@ -1,4 +1,9 @@
 .define Rmi4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine returns the remainder of a fourbyte division.
 

+ 5 - 0
mach/6500/libem/rmu.s

@@ -1,4 +1,9 @@
 .define Rmu2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine returns the remainder of an twobyte unsigned
 ! integer division.

+ 5 - 0
mach/6500/libem/rmu4.s

@@ -1,4 +1,9 @@
 .define Rmu4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine returns the remainder of a fourbyte unsigned
 ! division.

+ 5 - 0
mach/6500/libem/rol.s

@@ -1,4 +1,9 @@
 .define Rol
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine rotates left an integer n times
 ! N is in register X.

+ 5 - 0
mach/6500/libem/rol4.s

@@ -1,4 +1,9 @@
 .define Rol4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine rotates left a fourbyte integer n times.
 ! N is in register X.

+ 5 - 0
mach/6500/libem/ror.s

@@ -1,4 +1,9 @@
 .define Ror
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine rotates right a integer twobyte word.
 ! The number of rotates is in X.

+ 5 - 0
mach/6500/libem/ror4.s

@@ -1,4 +1,9 @@
 .define Ror4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine rotates right a fourbyte word.
 ! The number of rotates is in X.

+ 5 - 0
mach/6500/libem/rtt.s

@@ -1,4 +1,9 @@
 .define Rtt
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the return from trap.
 

+ 5 - 0
mach/6500/libem/sar.s

@@ -1,4 +1,9 @@
 .define Sar
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the SAR instruction.
 ! For details see rapport IR-81.

+ 5 - 0
mach/6500/libem/sbi.s

@@ -1,4 +1,9 @@
 .define Sbi2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine subtracts two twobyte signed integers
 ! and returnes the result in registerpair AX.

+ 5 - 0
mach/6500/libem/sbi4.s

@@ -1,4 +1,9 @@
 .define Sbi4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine subtracts two fourbyte signed integers.
 

+ 5 - 0
mach/6500/libem/sdl.s

@@ -1,4 +1,9 @@
 .define Sdi, Sdo
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Sdi takes a fourbyte word and stores it
 ! at the address in registerpair AX.

+ 5 - 0
mach/6500/libem/set.s

@@ -1,4 +1,9 @@
 .define Set
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine creates a set of n (n <= 256) bytes.
 ! In this set a certain bit, which number is in registerpair AX,

+ 5 - 0
mach/6500/libem/sli.s

@@ -1,4 +1,9 @@
 .define Sli2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine shifts a signed or unsigned interger to the
 ! left n times.

+ 5 - 0
mach/6500/libem/sli4.s

@@ -1,4 +1,9 @@
 .define Sli4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine shift a signed or unsigned fourbyte integer
 ! n times left. N is in register X.

+ 5 - 0
mach/6500/libem/sri.s

@@ -1,4 +1,9 @@
 .define Sri2, Sru2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Sri2 shifts a signed integer n times right.
 ! In the case of a negative integer there is signextension.

+ 5 - 0
mach/6500/libem/sri4.s

@@ -1,4 +1,9 @@
 .define Sri4, Sru4
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Sri4 shifts a signed fourbyte integer to the
 ! right n times

+ 5 - 0
mach/6500/libem/sti.s

@@ -1,4 +1,9 @@
 .define Sti, Sext, Stii
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Sti stores an twobyte word at the address which
 ! is in registerpair AX.

+ 5 - 0
mach/6500/libem/sti1.s

@@ -1,4 +1,9 @@
 .define Sti1
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine stores an onebyte wordfractional at the address
 ! which is in registerpair AX.

+ 5 - 0
mach/6500/libem/stil.s

@@ -1,4 +1,9 @@
 .define Stil
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine stores indirect a block of bytes if 
 ! the number of bytes is greater than four.

+ 5 - 0
mach/6500/libem/stl.s

@@ -1,4 +1,9 @@
 .define Stl
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the storage of a local which offset
 ! is to big.

+ 5 - 0
mach/6500/libem/sts.s

@@ -1,4 +1,9 @@
 .define Sts
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine stores indirect a number of bytes.
 ! The number of bytes is in the registerpair AX.

+ 5 - 0
mach/6500/libem/teq.s

@@ -1,4 +1,9 @@
 .define Teq
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine test if the value in registerpair AX is zero
 ! or nonzero.

+ 5 - 0
mach/6500/libem/test2.s

@@ -1,4 +1,9 @@
 .define Test2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine tests if the value on top of the stack is 2.
 ! It is used if the size is on top of the stack.

+ 5 - 0
mach/6500/libem/testFFh.s

@@ -1,4 +1,9 @@
 .define TestFFh
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine tests if the value on top of the stack is <= 256.
 ! It is used if the istruction argument is on top of the stack.

+ 5 - 0
mach/6500/libem/tge.s

@@ -1,4 +1,9 @@
 .define Tge
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine test if the value in registerpair AX is
 ! greater than or equal to zero.

+ 5 - 0
mach/6500/libem/tgt.s

@@ -1,4 +1,9 @@
 .define Tgt
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine tests if the value in registerpair AX is
 ! greater than zero.

+ 5 - 0
mach/6500/libem/tle.s

@@ -1,4 +1,9 @@
 .define Tle
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine tests if the value in registerpair AX is
 ! less than or equal to zero.

+ 5 - 0
mach/6500/libem/tlt.s

@@ -1,4 +1,9 @@
 .define Tlt
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine tests if the value in registerpair AX is
 ! less than zero.

+ 5 - 0
mach/6500/libem/tne.s

@@ -1,4 +1,9 @@
 .define Tne
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine tests if the value in registerpair AX is
 ! not equal to zero.

+ 5 - 0
mach/6500/libem/trap.s

@@ -1,4 +1,9 @@
 .define Trap
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the trap instruction.
 

+ 5 - 0
mach/6500/libem/write.s

@@ -1,4 +1,9 @@
 .define Mwrite
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the monitor call write.
 ! Writing is always done to standardoutput.

+ 5 - 0
mach/6500/libem/xor.s

@@ -1,4 +1,9 @@
 .define Xor
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine performs the exclusive or on two groups of bytes.
 ! The groups consists of atmost 254 bytes.

+ 5 - 0
mach/6500/libem/zer.s

@@ -1,4 +1,9 @@
 .define Zer
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! This subroutine puts n (n <=256) zero bytes on top of 
 ! the stack.

+ 5 - 0
mach/6500/libem/zri.s

@@ -1,4 +1,9 @@
 .define Zrl, Zro
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
 
 ! The subroutine Zrl makes a local zero which offset is to big.
 ! The offset of the local is in registerpair AX.