|
|
1.1 root 1: ; vi:set ts=8:
2:
3: ; nono
4: ; Copyright (C) 2025 nono project
5: ;
6: ; Redistribution and use in source and binary forms, with or without
7: ; modification, are permitted provided that the following conditions
8: ; are met:
9: ; 1. Redistributions of source code must retain the above copyright
10: ; notice, this list of conditions and the following disclaimer.
11: ; 2. Redistributions in binary form must reproduce the above copyright
12: ; notice, this list of conditions and the following disclaimer in the
13: ; documentation and/or other materials provided with the distribution.
14: ;
15: ; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16: ; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17: ; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18: ; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19: ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
20: ; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21: ; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
22: ; AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23: ; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24: ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25: ; SUCH DAMAGE.
26:
27: ; Test whether undocumented PMOVE (An)+,TTn works or not.
28: ;
29: ; > has pmove_anpi.has
30: ; > hlk pmove_anpi.o
31: ; > pmove_anpi
32:
33: .include doscall.mac
34: .include iocscall.mac
35: .list
36: .cpu 68030
37: .text
38: .even
39:
40: start:
41: clr.l -(sp)
42: DOS _SUPER
43:
44: moveq.l #11,d1
45: lea.l fline_trap,a1
46: IOCS _B_INTVCS
47: move.l d0,backup_fline
48:
49: moveq.l #0,d0
50: lea.l @f,a3
51: lea.l dummy_tt,a0
52: .dc.l $f0180800 ; pmove (a0)+,tt0
53: @@:
54: move.l d0,-(sp)
55:
56: movea.l backup_fline,a1
57: IOCS _B_INTVCS
58:
59: move.l (sp)+,d0
60: beq executed
61: got_trap:
62: pea msg_trap(pc) ; expected
63: DOS _PRINT
64: DOS _EXIT
65: executed:
66: pea msg_exec(pc) ; not expected
67: DOS _PRINT
68: DOS _EXIT
69:
70: ; Fライン例外ハンドラ。
71: ; a3 に戻りアドレスをセットしてあること。
72: ; d0 を 1 にして帰る。
73: fline_trap:
74: moveq.l #1,d0
75: move.l a3,2(sp)
76: rte
77:
78: .data
79: dummy_tt:
80: .dc.l 0
81:
82: msg_trap:
83: .dc.b "F-line trap occured (Expected)",$d,$a,0
84: msg_exec:
85: .dc.b "No F-line trap occured (Not expected!)",$d,$a,0
86:
87: .bss
88: .even
89: backup_fline:
90: .ds.l 1
91:
92: .end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.