mirror of
https://github.com/wfjm/w11.git
synced 2026-02-16 21:11:37 +00:00
final round for initial tcode version
- tools/tcode - cpu_basics.mac: add A4.5 - cpu_details.mac: add B1.4, B2.3, B4.1-3 - cpu_mmu.mac: add B3.3 - cpu_selftest.mac: add B1
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
; $Id: cpu_basics.mac 1344 2023-01-03 15:51:21Z mueller $
|
||||
; $Id: cpu_basics.mac 1345 2023-01-04 18:05:42Z mueller $
|
||||
; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
; Copyright 2015-2023 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
;
|
||||
; Revision History:
|
||||
; Date Rev Version Comment
|
||||
; 2023-01-02 1342 1.0 Initial version
|
||||
; 2023-01-04 1345 1.0 Initial version
|
||||
; 2015-08-30 710 0.1 First draft
|
||||
;
|
||||
; Test CPU basics: most instructions except traps, EIS and FPP
|
||||
@@ -31,6 +31,7 @@
|
||||
; A4.2 jsr + cc
|
||||
; A4.3 jsr r0-r5
|
||||
; A4.4 jsr sp and rts sp
|
||||
; A4.5 jsr r1,(r1)+
|
||||
; A5 mark
|
||||
;
|
||||
; Test A1: ccop + bxx +++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
@@ -960,7 +961,7 @@ ta0403: clr 900$ ; reset call counter
|
||||
; Test A4.4 -- jsr sp and rts sp ++++++++++++++++++++++++++++++++++++++
|
||||
; In case of jsr sp and rts sp, the sp register is used both as linkage
|
||||
; register and implicitly as stack pointer. That interferes and gives
|
||||
; quite bizarre semantics, certainly never used, but should work
|
||||
; quite bizarre behavior, certainly never used, but should work
|
||||
; - jsr sp,<dst> will
|
||||
; - push current SP onto stack
|
||||
; - set SP to the location of following instruction
|
||||
@@ -1000,6 +1001,24 @@ ta0404: hcmpeq sp,#stack ; check stack is default
|
||||
;
|
||||
9999$: iot ; end of test A4.4
|
||||
;
|
||||
; Test A4.5 -- jsr r1,(r1)+ ++++++++++++++++++++++++++++++++++++++++++
|
||||
; Using the same register in the destination specifier and as linkage
|
||||
; register is possible and works as usual.
|
||||
;
|
||||
ta0405: mov #200$,r1
|
||||
jsr r1,(r1)+ ; calls 200$
|
||||
100$: .word 000301 ; 1st arg
|
||||
.word 000302 ; 2nd arg
|
||||
hcmpeq #200$+2,r1 ; check that incremented r1 restored
|
||||
br 9999$
|
||||
;
|
||||
200$: hcmpeq #100$,r1 ; check r1 holds address after jsr
|
||||
hcmpeq #301,(r1)+ ; process 1st arg
|
||||
hcmpeq #302,(r1)+ ; process 1st arg
|
||||
rts r1
|
||||
;
|
||||
9999$: iot ; end of test A4.5
|
||||
;
|
||||
; Test A5 -- mark ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
; This sub-section verifies
|
||||
; x xxx xxx xxx xxx xxx NZVC Instruction / Remark
|
||||
@@ -3575,7 +3594,7 @@ tf0406: mov #100$,r1 ; dst for (r1)
|
||||
; END OF ALL TESTS - loop closure ============================================
|
||||
;
|
||||
mov tstno,r0 ; hack, for easy monitoring ...
|
||||
hcmpeq tstno,#60. ; all tests done ?
|
||||
hcmpeq tstno,#61. ; all tests done ?
|
||||
;
|
||||
jmp loop
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user