180
|
1 Sat May 4 10:39:12 JST 2019
|
|
2
|
|
3 possible extension
|
|
4
|
|
5 array as an arguments
|
|
6 put entire array on stack ( callee's local variable )
|
|
7 ARRAY TEND[] allocate pointer size buffer 2 for 6809, 4 for 32bit, 8 for 64bit
|
|
8 anonymous array
|
|
9 "test"
|
|
10 "test\n\0"
|
|
11 INT(0,1,2,3) ARRAY of CPU endian orderd int
|
|
12
|
|
13 memory stream
|
|
14 DICT := OPENM(INT(2,0)) allocate $200 memory
|
|
15 write to the stream (should be BYTE(0))
|
|
16 WRITE(DICT:ASCII(0))
|
|
17
|
|
18 TEND := POSITION(DICT) get stream pointer in TENC
|
|
19 return array offset in frame pointer, copied in caller's code
|
|
20 SEEK(DICT,INT(0)) set position in byte
|
|
21
|
|
22 VAL := SEEK(DICT,TEND) set absolute position to TEND and get the value
|
|
23 K:=SEEKR(DICT,-1) seek relative and get a value (K can be an array)
|
|
24 HASNEXT(DICT) eof check
|
|
25
|
|
26 multibyte arithmetic
|
|
27 NEG(PTR)
|
|
28 PTR := PTR+PTR1
|
|
29 PTR := PTR-PTR1
|
|
30 PTR := PTR*PTR1
|
|
31 PTR := PTR/PTR1
|
|
32
|
176
|
33 Mon Apr 15 00:18:30 JST 2019
|
|
34
|
|
35 8bit/16bit offset
|
177
|
36 -1
|
|
37 expression as statement
|
176
|
38
|
153
|
39 Sun Jan 13 17:22:51 JST 2019
|
|
40
|
|
41 TL/1 OS-9 command generation
|
|
42 Self compiler
|
|
43
|
|
44 0000: 87CD module header
|
|
45 0002: 0C09 module end
|
|
46 0004: 000D name
|
|
47 0006: 1180 tylg,atrv
|
|
48 0009: 0AAB start
|
|
49 000B: 0E00 memory size
|
|
50 MAIN
|
|
51 leax ,u
|
|
52 leay ,u
|
|
53 ... TL/1 OBJ
|
|
54 LIB ... support routines
|
|
55 24bit CRC
|
|
56 end
|
|
57
|
|
58 Thu Jan 10 12:28:15 JST 2019
|
|
59
|
|
60 add source code hex listing
|
|
61
|
|
62 % ** SPRITE TEST PROGRAM **
|
|
63 PROC WAIT,TIME
|
|
64 %--- MAIN ---
|
|
65 VAR MMI,MMJ,MMK leax ,y
|
|
66 BEGIN
|
|
67 MMI:=1 MMJ:=2 MMK:=3
|
|
68 3300: 86 01 LDA #$01
|
|
69 3302: A7 00 STA +$00,X ---> 0,x
|
|
70 3304: 86 02 LDA #$02
|
|
71 3306: A7 01 STA +$01,X ---> 1,x
|
|
72 3308: 86 03 LDA #$03
|
|
73 330A: A7 02 STA +$02,X ---> 2,x
|
|
74 330C: 86 03 LDA #$03
|
|
75 WAIT
|
|
76 330E: BD 33 20 JSR $3320
|
|
77 WRITE(1:MMI,CRLF)
|
|
78 3311: 86 01 LDA #$01
|
|
79 3313: 97 01 STA <$01
|
|
80 3315: A6 00 LDA +$00,X ---> 2,x
|
|
81 3317: BD B4 32 JSR $B432
|
|
82 331A: BD B4 C1 JSR $B4C1
|
|
83 END
|
|
84 331D: 7E B5 15 JMP $B515 jmp exit
|
|
85 %-- PROCEDURE WAIT --
|
|
86 WAIT
|
|
87 VAR WWJ,WWK
|
|
88 3320: BD B3 C6 JSR $B3C6 stx ,--s
|
|
89 BEGIN leax a,x
|
|
90 WWJ:=4
|
|
91 3327: 86 02 LDA #$02
|
|
92 3329: BD 33 40 JSR $3340
|
|
93 TIME
|
|
94 3323: 86 04 LDA #$04
|
|
95 3325: A7 00 STA +$00,X
|
|
96 WRITE(1:MMI,WWJ,CRLF)
|
|
97 332C: 86 01 LDA #$01
|
|
98 332E: 97 01 STA <$01
|
|
99 3330: A6 20 LDA +$00,Y
|
|
100 3332: BD B4 32 JSR $B432
|
|
101 3335: A6 00 LDA +$00,X
|
|
102 3337: BD B4 32 JSR $B432
|
|
103 333A: BD B4 C1 JSR $B4C1
|
|
104 END
|
|
105 333D: 7E B3 D1 JMP $B3D1 puls x,pc
|
|
106 %-- PROCEDURE TIME --
|
|
107 TIME
|
|
108 VAR TTK,TTJ
|
|
109 3340: BD B3 C6 JSR $B3C6 stx ,--s
|
|
110 BEGIN leax a,x
|
|
111 TTK:=5
|
|
112 3343: 86 05 LDA #$05
|
|
113 3345: A7 00 STA +$00,X
|
|
114 WRITE(1:MMI,TTK,CRLF)
|
|
115 3347: 86 01 LDA #$01
|
|
116 3349: 97 01 STA <$01
|
|
117 334B: A6 20 LDA +$00,Y
|
|
118 334D: BD B4 32 JSR $B432
|
|
119 3350: A6 00 LDA +$00,X
|
|
120 3352: BD B4 32 JSR $B432
|
|
121 3355: BD B4 C1 JSR $B4C1
|
|
122 3358: 7E B3 D1 JMP $B3D1 puls x,pc
|
|
123 END
|
|
124
|
|
125
|
|
126 Tue Jan 8 15:58:00 JST 2019
|
|
127
|
|
128 use no frame pointer mode use S instead of x
|
|
129 module call. change y global pointer and stack in inter module call
|
|
130 use local variable in for-statement
|
|
131 os9 library calls
|
|
132 pointer/word extension ( pointer hoge )
|
|
133
|
|
134 full syntax test
|
|
135
|