new assembler syntax

This commit is contained in:
ceriel 1987-01-30 18:41:42 +00:00
parent 5e36fd3351
commit 1b09e55129
95 changed files with 484 additions and 8 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,9 @@
.define Ldi, Ldo .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 subroutine Ldi pushes a four byte object onto the stack.
! The address is in registerpair AX. ! The address is in registerpair AX.

View file

@ -1,4 +1,9 @@
.define Locaddr .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. ! This routine gets the address of a local which offset is to big.
! The offset is in registerpair AX. ! The offset is in registerpair AX.

View file

@ -1,4 +1,9 @@
.define Loi, Lext .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. ! This subroutine performs an indirect load on a word of two bytes.
! Lext is used when the address is already in zeropage. ! Lext is used when the address is already in zeropage.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,9 @@
.define Lxa2 .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 ! This subroutine load the address of AB n (255 >= n > 0) static levels
! back. ! back.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,9 @@
.define Sti, Sext, Stii .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 ! The subroutine Sti stores an twobyte word at the address which
! is in registerpair AX. ! is in registerpair AX.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,9 @@
.define Test2 .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. ! 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. ! It is used if the size is on top of the stack.

View file

@ -1,4 +1,9 @@
.define TestFFh .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. ! 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. ! It is used if the istruction argument is on top of the stack.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,9 @@
.define Zrl, Zro .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 subroutine Zrl makes a local zero which offset is to big.
! The offset of the local is in registerpair AX. ! The offset of the local is in registerpair AX.