new assembler syntax
This commit is contained in:
parent
5e36fd3351
commit
1b09e55129
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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).
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in a new issue