diff --git a/mach/6500/libem/aar.s b/mach/6500/libem/aar.s index 4f65ca879..8ec8eab0e 100644 --- a/mach/6500/libem/aar.s +++ b/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 diff --git a/mach/6500/libem/addsub.s b/mach/6500/libem/addsub.s index 07ad393e5..488dba0c2 100644 --- a/mach/6500/libem/addsub.s +++ b/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. diff --git a/mach/6500/libem/adi.s b/mach/6500/libem/adi.s index 7dc95651a..a915cf443 100644 --- a/mach/6500/libem/adi.s +++ b/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 diff --git a/mach/6500/libem/adi4.s b/mach/6500/libem/adi4.s index 80f58f30f..3fbf52876 100644 --- a/mach/6500/libem/adi4.s +++ b/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. diff --git a/mach/6500/libem/and.s b/mach/6500/libem/and.s index c626f0eba..84118969d 100644 --- a/mach/6500/libem/and.s +++ b/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. diff --git a/mach/6500/libem/asp.s b/mach/6500/libem/asp.s index 1581942ca..e873160da 100644 --- a/mach/6500/libem/asp.s +++ b/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. diff --git a/mach/6500/libem/blm.s b/mach/6500/libem/blm.s index df8cb0618..8fa4b2b5e 100644 --- a/mach/6500/libem/blm.s +++ b/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 diff --git a/mach/6500/libem/cii.s b/mach/6500/libem/cii.s index 1eff42147..7ed2f71ec 100644 --- a/mach/6500/libem/cii.s +++ b/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 diff --git a/mach/6500/libem/cmi.s b/mach/6500/libem/cmi.s index ada74148e..c53a9854d 100644 --- a/mach/6500/libem/cmi.s +++ b/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: diff --git a/mach/6500/libem/cmi4.s b/mach/6500/libem/cmi4.s index 534163604..59d0d202c 100644 --- a/mach/6500/libem/cmi4.s +++ b/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: diff --git a/mach/6500/libem/cms.s b/mach/6500/libem/cms.s index 1105b16e7..a8c98b176 100644 --- a/mach/6500/libem/cms.s +++ b/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 diff --git a/mach/6500/libem/cmu.s b/mach/6500/libem/cmu.s index 5c55ff5f2..fac30df32 100644 --- a/mach/6500/libem/cmu.s +++ b/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: diff --git a/mach/6500/libem/cmu4.s b/mach/6500/libem/cmu4.s index 2275e9f9b..8cb46e664 100644 --- a/mach/6500/libem/cmu4.s +++ b/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: diff --git a/mach/6500/libem/com.s b/mach/6500/libem/com.s index 300794f11..5370da047 100644 --- a/mach/6500/libem/com.s +++ b/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). diff --git a/mach/6500/libem/csa.s b/mach/6500/libem/csa.s index 61a88b5ff..268cf40c7 100644 --- a/mach/6500/libem/csa.s +++ b/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 diff --git a/mach/6500/libem/csb.s b/mach/6500/libem/csb.s index 37185097c..666098139 100644 --- a/mach/6500/libem/csb.s +++ b/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 diff --git a/mach/6500/libem/data.s b/mach/6500/libem/data.s index 61da1b98c..630a1d9e7 100644 --- a/mach/6500/libem/data.s +++ b/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: diff --git a/mach/6500/libem/div4.s b/mach/6500/libem/div4.s index 3cd68a1db..62235091c 100644 --- a/mach/6500/libem/div4.s +++ b/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 diff --git a/mach/6500/libem/dum_float.s b/mach/6500/libem/dum_float.s index b4f497023..d5a80d1a7 100644 --- a/mach/6500/libem/dum_float.s +++ b/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 diff --git a/mach/6500/libem/dup.s b/mach/6500/libem/dup.s index 22e33ac58..95665866a 100644 --- a/mach/6500/libem/dup.s +++ b/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. diff --git a/mach/6500/libem/duv4.s b/mach/6500/libem/duv4.s index 1395a6721..551aaa79d 100644 --- a/mach/6500/libem/duv4.s +++ b/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. diff --git a/mach/6500/libem/dvi.s b/mach/6500/libem/dvi.s index 3f5d69a2a..9d92b5d07 100644 --- a/mach/6500/libem/dvi.s +++ b/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. diff --git a/mach/6500/libem/dvi4.s b/mach/6500/libem/dvi4.s index 5b068ab37..398f43d7d 100644 --- a/mach/6500/libem/dvi4.s +++ b/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 diff --git a/mach/6500/libem/dvu.s b/mach/6500/libem/dvu.s index 1cb6b8dfb..75558e911 100644 --- a/mach/6500/libem/dvu.s +++ b/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. diff --git a/mach/6500/libem/dvu4.s b/mach/6500/libem/dvu4.s index 099cf8938..cf7232c31 100644 --- a/mach/6500/libem/dvu4.s +++ b/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 diff --git a/mach/6500/libem/end.s b/mach/6500/libem/end.s index 966af2a8e..1bb218ebb 100644 --- a/mach/6500/libem/end.s +++ b/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: diff --git a/mach/6500/libem/exg.s b/mach/6500/libem/exg.s index 12be6e586..2805b4192 100644 --- a/mach/6500/libem/exg.s +++ b/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. diff --git a/mach/6500/libem/exg2.s b/mach/6500/libem/exg2.s index 0e56587f5..0f1849e52 100644 --- a/mach/6500/libem/exg2.s +++ b/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. diff --git a/mach/6500/libem/gto.s b/mach/6500/libem/gto.s index 90d168e01..500ae1d98 100644 --- a/mach/6500/libem/gto.s +++ b/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 diff --git a/mach/6500/libem/head_em.s b/mach/6500/libem/head_em.s index 614e09ea7..873976c4a 100644 --- a/mach/6500/libem/head_em.s +++ b/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: diff --git a/mach/6500/libem/indir.s b/mach/6500/libem/indir.s index 644251289..4ad1c61ce 100644 --- a/mach/6500/libem/indir.s +++ b/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 diff --git a/mach/6500/libem/inn.s b/mach/6500/libem/inn.s index 3ac1550ca..0a1c7f923 100644 --- a/mach/6500/libem/inn.s +++ b/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. diff --git a/mach/6500/libem/ior.s b/mach/6500/libem/ior.s index 0ba1a3812..961040ae9 100644 --- a/mach/6500/libem/ior.s +++ b/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. diff --git a/mach/6500/libem/lar.s b/mach/6500/libem/lar.s index 15bb581d3..8f490befc 100644 --- a/mach/6500/libem/lar.s +++ b/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. diff --git a/mach/6500/libem/lcs.s b/mach/6500/libem/lcs.s index 7c387f5ca..b03851418 100644 --- a/mach/6500/libem/lcs.s +++ b/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. diff --git a/mach/6500/libem/ldi.s b/mach/6500/libem/ldi.s index a5b056a76..787232567 100644 --- a/mach/6500/libem/ldi.s +++ b/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. diff --git a/mach/6500/libem/locaddr.s b/mach/6500/libem/locaddr.s index 2156f7e1b..3ab776e9c 100644 --- a/mach/6500/libem/locaddr.s +++ b/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. diff --git a/mach/6500/libem/loi.s b/mach/6500/libem/loi.s index 45c135ea1..70e8dc6a2 100644 --- a/mach/6500/libem/loi.s +++ b/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. diff --git a/mach/6500/libem/loi1.s b/mach/6500/libem/loi1.s index 82109224d..956c314f0 100644 --- a/mach/6500/libem/loi1.s +++ b/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. diff --git a/mach/6500/libem/loil.s b/mach/6500/libem/loil.s index 4c0e35976..afc4d337f 100644 --- a/mach/6500/libem/loil.s +++ b/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. diff --git a/mach/6500/libem/lol.s b/mach/6500/libem/lol.s index 6f1bce055..7acf29c7e 100644 --- a/mach/6500/libem/lol.s +++ b/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. diff --git a/mach/6500/libem/los.s b/mach/6500/libem/los.s index 1ba88f667..757b5e0c1 100644 --- a/mach/6500/libem/los.s +++ b/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. diff --git a/mach/6500/libem/lxa1.s b/mach/6500/libem/lxa1.s index 402ef8b7a..867db4aba 100644 --- a/mach/6500/libem/lxa1.s +++ b/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. diff --git a/mach/6500/libem/lxa2.s b/mach/6500/libem/lxa2.s index 58df1dccc..4bf4d7c14 100644 --- a/mach/6500/libem/lxa2.s +++ b/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. diff --git a/mach/6500/libem/lxl.s b/mach/6500/libem/lxl.s index d72c9fb06..5b3e96f63 100644 --- a/mach/6500/libem/lxl.s +++ b/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. diff --git a/mach/6500/libem/mli.s b/mach/6500/libem/mli.s index b441229da..fa347ef26 100644 --- a/mach/6500/libem/mli.s +++ b/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. diff --git a/mach/6500/libem/mli4.s b/mach/6500/libem/mli4.s index 81b59ff85..629c01b73 100644 --- a/mach/6500/libem/mli4.s +++ b/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 diff --git a/mach/6500/libem/mlu.s b/mach/6500/libem/mlu.s index c11f835cf..6820f88b6 100644 --- a/mach/6500/libem/mlu.s +++ b/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 diff --git a/mach/6500/libem/mlu4.s b/mach/6500/libem/mlu4.s index 4d6b04361..44b7771b9 100644 --- a/mach/6500/libem/mlu4.s +++ b/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 diff --git a/mach/6500/libem/mon.s b/mach/6500/libem/mon.s index 69a9dd5b8..1d094c51a 100644 --- a/mach/6500/libem/mon.s +++ b/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 diff --git a/mach/6500/libem/mul4.s b/mach/6500/libem/mul4.s index 98d046f42..f378a2d8c 100644 --- a/mach/6500/libem/mul4.s +++ b/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 diff --git a/mach/6500/libem/ngi.s b/mach/6500/libem/ngi.s index d375b1996..1c6d50e7e 100644 --- a/mach/6500/libem/ngi.s +++ b/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. diff --git a/mach/6500/libem/ngi4.s b/mach/6500/libem/ngi4.s index f62cd4898..c19600c7c 100644 --- a/mach/6500/libem/ngi4.s +++ b/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 diff --git a/mach/6500/libem/print.s b/mach/6500/libem/print.s index 7cd70e32e..eea8e73d1 100644 --- a/mach/6500/libem/print.s +++ b/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. diff --git a/mach/6500/libem/printhex.s b/mach/6500/libem/printhex.s index be979a856..0d5c5bd82 100644 --- a/mach/6500/libem/printhex.s +++ b/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. diff --git a/mach/6500/libem/printstack.s b/mach/6500/libem/printstack.s index a554d9e54..27f1512ac 100644 --- a/mach/6500/libem/printstack.s +++ b/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. diff --git a/mach/6500/libem/pro.s b/mach/6500/libem/pro.s index 27a565fa2..066c378ed 100644 --- a/mach/6500/libem/pro.s +++ b/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 diff --git a/mach/6500/libem/read.s b/mach/6500/libem/read.s index 0f6ab67bc..12d2c58b7 100644 --- a/mach/6500/libem/read.s +++ b/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. diff --git a/mach/6500/libem/ret.s b/mach/6500/libem/ret.s index 8002fc1f3..ced8f062d 100644 --- a/mach/6500/libem/ret.s +++ b/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. diff --git a/mach/6500/libem/rmi.s b/mach/6500/libem/rmi.s index 12bc6425d..87295bead 100644 --- a/mach/6500/libem/rmi.s +++ b/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. diff --git a/mach/6500/libem/rmi4.s b/mach/6500/libem/rmi4.s index 0b221e2e5..fdeab6116 100644 --- a/mach/6500/libem/rmi4.s +++ b/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. diff --git a/mach/6500/libem/rmu.s b/mach/6500/libem/rmu.s index dff2c3c70..82b0cbfb4 100644 --- a/mach/6500/libem/rmu.s +++ b/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. diff --git a/mach/6500/libem/rmu4.s b/mach/6500/libem/rmu4.s index e3c848cd7..8cfc7ead6 100644 --- a/mach/6500/libem/rmu4.s +++ b/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. diff --git a/mach/6500/libem/rol.s b/mach/6500/libem/rol.s index 34786e2b8..b486e32f6 100644 --- a/mach/6500/libem/rol.s +++ b/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. diff --git a/mach/6500/libem/rol4.s b/mach/6500/libem/rol4.s index 5f0407277..f58c28109 100644 --- a/mach/6500/libem/rol4.s +++ b/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. diff --git a/mach/6500/libem/ror.s b/mach/6500/libem/ror.s index f70db75f1..dd54771e8 100644 --- a/mach/6500/libem/ror.s +++ b/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. diff --git a/mach/6500/libem/ror4.s b/mach/6500/libem/ror4.s index e0b0d2dbe..00ad4b008 100644 --- a/mach/6500/libem/ror4.s +++ b/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. diff --git a/mach/6500/libem/rtt.s b/mach/6500/libem/rtt.s index ed2d8b7d5..31e1cf3bc 100644 --- a/mach/6500/libem/rtt.s +++ b/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. diff --git a/mach/6500/libem/sar.s b/mach/6500/libem/sar.s index 0b482a2c3..296052659 100644 --- a/mach/6500/libem/sar.s +++ b/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. diff --git a/mach/6500/libem/sbi.s b/mach/6500/libem/sbi.s index 8c5c3e395..d445b020f 100644 --- a/mach/6500/libem/sbi.s +++ b/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. diff --git a/mach/6500/libem/sbi4.s b/mach/6500/libem/sbi4.s index b4a12a278..3d81396b1 100644 --- a/mach/6500/libem/sbi4.s +++ b/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. diff --git a/mach/6500/libem/sdl.s b/mach/6500/libem/sdl.s index 11def2b30..6e06a5d94 100644 --- a/mach/6500/libem/sdl.s +++ b/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. diff --git a/mach/6500/libem/set.s b/mach/6500/libem/set.s index f64f74f4f..8e7fc70e9 100644 --- a/mach/6500/libem/set.s +++ b/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, diff --git a/mach/6500/libem/sli.s b/mach/6500/libem/sli.s index 9d1955938..e3ae200db 100644 --- a/mach/6500/libem/sli.s +++ b/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. diff --git a/mach/6500/libem/sli4.s b/mach/6500/libem/sli4.s index d9c670cd5..d7dd43195 100644 --- a/mach/6500/libem/sli4.s +++ b/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. diff --git a/mach/6500/libem/sri.s b/mach/6500/libem/sri.s index da44e0726..7f9802818 100644 --- a/mach/6500/libem/sri.s +++ b/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. diff --git a/mach/6500/libem/sri4.s b/mach/6500/libem/sri4.s index 46b3b7bef..4b5336f30 100644 --- a/mach/6500/libem/sri4.s +++ b/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 diff --git a/mach/6500/libem/sti.s b/mach/6500/libem/sti.s index b97722494..76a2d44ee 100644 --- a/mach/6500/libem/sti.s +++ b/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. diff --git a/mach/6500/libem/sti1.s b/mach/6500/libem/sti1.s index 2665a8056..ad93f3267 100644 --- a/mach/6500/libem/sti1.s +++ b/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. diff --git a/mach/6500/libem/stil.s b/mach/6500/libem/stil.s index c44f29795..d19df35a3 100644 --- a/mach/6500/libem/stil.s +++ b/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. diff --git a/mach/6500/libem/stl.s b/mach/6500/libem/stl.s index 353e00b86..5b58f5fc4 100644 --- a/mach/6500/libem/stl.s +++ b/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. diff --git a/mach/6500/libem/sts.s b/mach/6500/libem/sts.s index 8c6ffa944..b2fdbe8ca 100644 --- a/mach/6500/libem/sts.s +++ b/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. diff --git a/mach/6500/libem/teq.s b/mach/6500/libem/teq.s index a346e6180..457bcd010 100644 --- a/mach/6500/libem/teq.s +++ b/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. diff --git a/mach/6500/libem/test2.s b/mach/6500/libem/test2.s index c07497c77..b1c70779a 100644 --- a/mach/6500/libem/test2.s +++ b/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. diff --git a/mach/6500/libem/testFFh.s b/mach/6500/libem/testFFh.s index a02c4544f..695ff0e5f 100644 --- a/mach/6500/libem/testFFh.s +++ b/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. diff --git a/mach/6500/libem/tge.s b/mach/6500/libem/tge.s index 49050fd48..c18bdcbc1 100644 --- a/mach/6500/libem/tge.s +++ b/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. diff --git a/mach/6500/libem/tgt.s b/mach/6500/libem/tgt.s index e2e5f3ba3..68fe07fef 100644 --- a/mach/6500/libem/tgt.s +++ b/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. diff --git a/mach/6500/libem/tle.s b/mach/6500/libem/tle.s index 073bdbb63..8b7310aaa 100644 --- a/mach/6500/libem/tle.s +++ b/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. diff --git a/mach/6500/libem/tlt.s b/mach/6500/libem/tlt.s index 557dfdca8..5dd265256 100644 --- a/mach/6500/libem/tlt.s +++ b/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. diff --git a/mach/6500/libem/tne.s b/mach/6500/libem/tne.s index aaaf18e46..d90d49adb 100644 --- a/mach/6500/libem/tne.s +++ b/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. diff --git a/mach/6500/libem/trap.s b/mach/6500/libem/trap.s index ef7d9e9d2..5ce53f93e 100644 --- a/mach/6500/libem/trap.s +++ b/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. diff --git a/mach/6500/libem/write.s b/mach/6500/libem/write.s index 4bc1e2457..7b87cf44b 100644 --- a/mach/6500/libem/write.s +++ b/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. diff --git a/mach/6500/libem/xor.s b/mach/6500/libem/xor.s index 5ef73a7c0..5d4455a35 100644 --- a/mach/6500/libem/xor.s +++ b/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. diff --git a/mach/6500/libem/zer.s b/mach/6500/libem/zer.s index 9c6485084..ef5e0d205 100644 --- a/mach/6500/libem/zer.s +++ b/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. diff --git a/mach/6500/libem/zri.s b/mach/6500/libem/zri.s index abc75f904..72c95f38b 100644 --- a/mach/6500/libem/zri.s +++ b/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.