Code cleanup / reformat

Add changes from official 0.3 release
Add examples
Add missing data.dat
This commit is contained in:
Godzil
2023-03-22 16:42:52 +00:00
committed by Manoel Trapier
parent dbb86f410a
commit 8999fa051f
12 changed files with 5136 additions and 2981 deletions

2
examples/add.hex Normal file
View File

@@ -0,0 +1,2 @@
:0600000074FF240180FCE6
:00000001FF

303
examples/mtask.asm Normal file
View File

@@ -0,0 +1,303 @@
$mod851
state EQU 7fh
tmp EQU 7eh
org 0000h
ljmp start
org 000bh
t0int: ljmp task_switch
org 0060h
start: mov A,TMOD
anl A,#11111000b
orl A,#1
mov TMOD,A ; T0 mode = 1
mov TL0,#0
mov TH0,#0ffh
mov state,#00h
setb TR0 ; T0 enable
setb ET0 ; T0 int enable
setb EA ; enable int
task1: xrl P1,#0fh
mov A,#080h
lcall delay
sjmp task1
task2: xrl P1,#0f0h
mov A,#0ffh
lcall delay
sjmp task2
delay: djnz Acc,delay
ret
;========================================
task_switch:
push DPH
push DPL
push Acc
mov A,state
jz ts_go
ljmp rev
ts_go: pop Acc ; Acc
mov DPTR,#t1inf
movx @DPTR,A
pop Acc ; DPL
inc DPTR
movx @DPTR,A
pop Acc ; DPH
inc DPTR
movx @DPTR,A
inc DPTR ; B
mov A,B
movx @DPTR,A
inc DPTR ; PSW
mov A,PSW
movx @DPTR,A
pop Acc ; PC
inc DPTR
movx @DPTR,A
pop Acc
inc DPTR
movx @DPTR,A
inc DPTR ; SP
mov A,SP
movx @DPTR,A
inc DPTR ; adr: 00h
mov A,R0
movx @DPTR,A
mov B,#6fh ; adr: 01h-6fh
mov R0,#01h
ts_l1: inc DPTR
mov A,@R0
movx @DPTR,A
inc R0
djnz B,ts_l1
;------------
mov DPTR,#(t2inf_end-1)
mov B,#6fh ; adr: 01-6f
mov R0,#6fh
ts_l2: movx A,@DPTR
mov @R0,A
dec R0
mov tmp,A
lcall dec_dptr
mov A,tmp
djnz B,ts_l2
movx A,@DPTR
mov R0,A ; adr: 00
lcall dec_dptr ; SP
movx A,@DPTR
mov SP,A
lcall dec_dptr ; PC
movx A,@DPTR
push Acc
lcall dec_dptr
movx A,@DPTR
push Acc
lcall dec_dptr ; PSW
movx A,@DPTR
mov PSW,A
lcall dec_dptr ; B
movx A,@DPTR
mov B,A
lcall dec_dptr ; DPH
movx A,@DPTR
push Acc
lcall dec_dptr ; DPL
movx A,@DPTR
push Acc
lcall dec_dptr ; Acc
movx A,@DPTR
pop DPL
pop DPH
mov state,#0ffh
mov TL0,#0
mov TH0,#0ffh
reti
;-=-=-=-=-=-=-=-=-
rev:
pop Acc ; Acc
mov DPTR,#t2inf
movx @DPTR,A
pop Acc ; DPL
inc DPTR
movx @DPTR,A
pop Acc ; DPH
inc DPTR
movx @DPTR,A
inc DPTR ; B
mov A,B
movx @DPTR,A
inc DPTR ; PSW
mov A,PSW
movx @DPTR,A
pop Acc ; PC
inc DPTR
movx @DPTR,A
pop Acc
inc DPTR
movx @DPTR,A
inc DPTR ; SP
mov A,SP
movx @DPTR,A
inc DPTR ; adr: 00h
mov A,R0
movx @DPTR,A
mov B,#6fh ; adr: 01h-6fh
mov R0,#01h
ts_l3: inc DPTR
mov A,@R0
movx @DPTR,A
inc R0
djnz B,ts_l3
;------------
mov DPTR,#(t1inf_end-1)
mov B,#6fh ; adr: 01-6f
mov R0,#6fh
ts_l4: movx A,@DPTR
mov @R0,A
dec R0
mov tmp,A
lcall dec_dptr
mov A,tmp
djnz B,ts_l4
movx A,@DPTR
mov R0,A ; adr: 00
lcall dec_dptr ; SP
movx A,@DPTR
mov SP,A
lcall dec_dptr ; PC
movx A,@DPTR
push Acc
lcall dec_dptr
movx A,@DPTR
push Acc
lcall dec_dptr ; PSW
movx A,@DPTR
mov PSW,A
lcall dec_dptr ; B
movx A,@DPTR
mov B,A
lcall dec_dptr ; DPH
movx A,@DPTR
push Acc
lcall dec_dptr ; DPL
movx A,@DPTR
push Acc
lcall dec_dptr ; Acc
movx A,@DPTR
pop DPL
pop DPH
mov state,#00h
mov TL0,#0
mov TH0,#0ffh
reti
;========================================
dec_dptr:
dec DPL
mov A,DPL
cjne A,#0ffh,decdp_lab1
dec DPH
decdp_lab1:
ret
;========================================
org 8000h
t1inf:
db 00 ; Acc
db 00 ; DPL
db 00 ; DPH
db 00 ; B
db 00 ; PSW
dw 00 ; PC
db 07 ; SP
db 0,0,0,0,0,0,0,0 ; R0-R7 (from adress: 00h)
db 0,0,0,0,0,0,0,0 ; Stack
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0 ; (to adress: 6fh)
t1inf_end:
t2inf:
db 00 ; Acc
db 00 ; DPL
db 00 ; DPH
db 00 ; B
db 00 ; PSW
dw task2 ; PC
db 07 ; SP
db 0,0,0,0,0,0,0,0 ; R0-R7 (from adress: 00h)
db 0,0,0,0,0,0,0,0 ; Stack
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0 ; (to adress: 6fh)
t2inf_end:
END

308
examples/mtask2.asm Normal file
View File

@@ -0,0 +1,308 @@
$mod851
state EQU 7fh
tmp EQU 7eh
org 0000h
ljmp start
org 000bh
t0int: ljmp task_switch
org 0060h
start: clr EA
mov A,TMOD
anl A,#11111000b
orl A,#1
mov TMOD,A ; T0 mode = 1
mov TL0,#0
mov TH0,#0f0h
mov state,#00h
setb TR0 ; T0 enable
setb ET0 ; T0 int enable
setb EA ; enable int
task1: xrl P1,#0fh
mov B,#070h
t1l2: mov A,#0ffh
t1l1: djnz Acc,t1l1
djnz B,t1l2
sjmp task1
task2: xrl P1,#0f0h
mov B,#030h
t2l2: mov A,#0ffh
t2l1: djnz Acc,t2l1
djnz B,t2l2
sjmp task2
;========================================
task_switch:
push DPH
push DPL
push Acc
mov A,state
jz ts_go
ljmp rev
ts_go: pop Acc ; Acc
mov DPTR,#t1inf
movx @DPTR,A
pop Acc ; DPL
inc DPTR
movx @DPTR,A
pop Acc ; DPH
inc DPTR
movx @DPTR,A
inc DPTR ; B
mov A,B
movx @DPTR,A
inc DPTR ; PSW
mov A,PSW
movx @DPTR,A
pop Acc ; PC
inc DPTR
movx @DPTR,A
pop Acc
inc DPTR
movx @DPTR,A
inc DPTR ; SP
mov A,SP
movx @DPTR,A
inc DPTR ; adr: 00h
mov A,R0
movx @DPTR,A
mov B,#6fh ; adr: 01h-6fh
mov R0,#01h
ts_l1: inc DPTR
mov A,@R0
movx @DPTR,A
inc R0
djnz B,ts_l1
;------------
mov DPTR,#(t2inf_end-1)
mov B,#6fh ; adr: 01-6f
mov R0,#6fh
ts_l2: movx A,@DPTR
mov @R0,A
dec R0
lcall dec_dptr
djnz B,ts_l2
movx A,@DPTR
mov R0,A ; adr: 00
lcall dec_dptr ; SP
movx A,@DPTR
mov SP,A
lcall dec_dptr ; PC
movx A,@DPTR
push Acc
lcall dec_dptr
movx A,@DPTR
push Acc
lcall dec_dptr ; PSW
movx A,@DPTR
mov PSW,A
lcall dec_dptr ; B
movx A,@DPTR
mov B,A
lcall dec_dptr ; DPH
movx A,@DPTR
push Acc
lcall dec_dptr ; DPL
movx A,@DPTR
push Acc
lcall dec_dptr ; Acc
movx A,@DPTR
pop DPL
pop DPH
mov state,#0ffh
mov TL0,#0
mov TH0,#0f0h
reti
;-=-=-=-=-=-=-=-=-
rev:
pop Acc ; Acc
mov DPTR,#t2inf
movx @DPTR,A
pop Acc ; DPL
inc DPTR
movx @DPTR,A
pop Acc ; DPH
inc DPTR
movx @DPTR,A
inc DPTR ; B
mov A,B
movx @DPTR,A
inc DPTR ; PSW
mov A,PSW
movx @DPTR,A
pop Acc ; PC
inc DPTR
movx @DPTR,A
pop Acc
inc DPTR
movx @DPTR,A
inc DPTR ; SP
mov A,SP
movx @DPTR,A
inc DPTR ; adr: 00h
mov A,R0
movx @DPTR,A
mov B,#6fh ; adr: 01h-6fh
mov R0,#01h
ts_l3: inc DPTR
mov A,@R0
movx @DPTR,A
inc R0
djnz B,ts_l3
;------------
mov DPTR,#(t1inf_end-1)
mov B,#6fh ; adr: 01-6f
mov R0,#6fh
ts_l4: movx A,@DPTR
mov @R0,A
dec R0
lcall dec_dptr
djnz B,ts_l4
movx A,@DPTR
mov R0,A ; adr: 00
lcall dec_dptr ; SP
movx A,@DPTR
mov SP,A
lcall dec_dptr ; PC
movx A,@DPTR
push Acc
lcall dec_dptr
movx A,@DPTR
push Acc
lcall dec_dptr ; PSW
movx A,@DPTR
mov PSW,A
lcall dec_dptr ; B
movx A,@DPTR
mov B,A
lcall dec_dptr ; DPH
movx A,@DPTR
push Acc
lcall dec_dptr ; DPL
movx A,@DPTR
push Acc
lcall dec_dptr ; Acc
movx A,@DPTR
pop DPL
pop DPH
mov state,#00h
mov TL0,#0
mov TH0,#0f0h
reti
;========================================
dec_dptr:
xch A,DPL
dec A
cjne A,#0ffh,decdp_lab1
dec DPH
decdp_lab1:
xch A,DPL
ret
;========================================
org 8000h
t1inf:
db 00 ; Acc
db 00 ; DPL
db 00 ; DPH
db 00 ; B
db 00 ; PSW
dw 00 ; PC
db 07 ; SP
db 0,0,0,0,0,0,0,0 ; R0-R7 (from adress: 00h)
db 0,0,0,0,0,0,0,0 ; Stack
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0 ; (to adress: 6fh)
t1inf_end:
t2inf:
db 00 ; Acc
db 00 ; DPL
db 00 ; DPH
db 00 ; B
db 00 ; PSW
dw task2 ; PC
db 07 ; SP
db 0,0,0,0,0,0,0,0 ; R0-R7 (from adress: 00h)
db 0,0,0,0,0,0,0,0 ; Stack
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0 ; (to adress: 6fh)
t2inf_end:
END

40
examples/mtask2.hex Normal file
View File

@@ -0,0 +1,40 @@
:030000000200609B
:03000B0002009957
:10006000C2AFE58954F84401F589758A00758CF0B2
:10007000757F00D28CD2A9D2AF63900F75F07074E7
:10008000FFD5E0FDD5F0F880F06390F075F03074A6
:10009000FFD5E0FDD5F0F880F0C083C082C0E0E578
:1000A0007F6003020126D0E0908000F0D0E0A3F052
:1000B000D0E0A3F0A3E5F0F0A3E5D0F0D0E0A3F00A
:1000C000D0E0A3F0A3E581F0A3E8F075F06F78012C
:1000D000A3E6F008D5F0F99080EF75F06F786FE047
:1000E000F6181201A6D5F0F7E0F81201A6E0F581A6
:1000F0001201A6E0C0E01201A6E0C0E01201A6E0F5
:10010000F5D01201A6E0F5F01201A6E0C0E0120160
:10011000A6E0C0E01201A6E0D082D083757FFF7513
:100120008A00758CF032D0E0908078F0D0E0A3F0B7
:10013000D0E0A3F0A3E5F0F0A3E5D0F0D0E0A3F089
:10014000D0E0A3F0A3E581F0A3E8F075F06F7801AB
:10015000A3E6F008D5F0F990807775F06F786FE03E
:10016000F6181201A6D5F0F7E0F81201A6E0F58125
:100170001201A6E0C0E01201A6E0C0E01201A6E074
:10018000F5D01201A6E0F5F01201A6E0C0E01201E0
:10019000A6E0C0E01201A6E0D082D083757F007592
:1001A0008A00758CF032C58214B4FF021583C582B3
:0101B000222C
:108000000000000000000007000000000000000069
:108010000000000000000000000000000000000060
:108020000000000000000000000000000000000050
:108030000000000000000000000000000000000040
:108040000000000000000000000000000000000030
:108050000000000000000000000000000000000020
:108060000000000000000000000000000000000010
:108070000000000000000000000000000000890770
:1080800000000000000000000000000000000000F0
:1080900000000000000000000000000000000000E0
:1080A00000000000000000000000000000000000D0
:1080B00000000000000000000000000000000000C0
:1080C00000000000000000000000000000000000B0
:1080D00000000000000000000000000000000000A0
:1080E0000000000000000000000000000000000090
:00000001FF

352
examples/mtask2250.asm Normal file
View File

@@ -0,0 +1,352 @@
$mod851
$include (bios.inc)
$include (const.inc)
state EQU 7fh
tmp EQU 7eh
org 8000h
ljmp start
org 800bh
t0int: ljmp task_switch
org 8060h
start: clr EA
mov intvec,#80h
mov A,TMOD
anl A,#11111000b
orl A,#1
mov TMOD,A ; T0 mode = 1
mov TL0,#0
mov TH0,#0ffh
mov state,#00h
setb TR0 ; T0 enable
setb ET0 ; T0 int enable
setb EA ; enable int
task1: xrl P1,#0fh
mov A,#0ffh
t1l1: djnz Acc,t1l1
mov A,#0ffh
t1l2: djnz Acc,t1l2
mov A,#0ffh
t1l3: djnz Acc,t1l3
mov A,#0ffh
t1l4: djnz Acc,t1l4
mov A,#0ffh
t1l5: djnz Acc,t1l5
mov A,#0ffh
t1l6: djnz Acc,t1l6
mov A,#0ffh
t1l7: djnz Acc,t1l7
mov A,#0ffh
t1l8: djnz Acc,t1l8
mov A,#0ffh
t1l9: djnz Acc,t1l9
mov A,#0ffh
t1l10: djnz Acc,t1l10
mov A,#0ffh
t1l11: djnz Acc,t1l11
mov A,#0ffh
t1l12: djnz Acc,t1l12
mov A,#0ffh
t1l13: djnz Acc,t1l13
mov A,#0ffh
t1l14: djnz Acc,t1l14
mov A,#0ffh
t1l15: djnz Acc,t1l15
mov A,#0ffh
t1l16: djnz Acc,t1l16
mov A,#0ffh
t1l17: djnz Acc,t1l17
sjmp task1
task2: xrl P1,#0f0h
mov A,#0ffh
t2l1: djnz Acc,t2l1
mov A,#0ffh
t2l2: djnz Acc,t2l2
mov A,#0ffh
t2l3: djnz Acc,t2l3
mov A,#0ffh
t2l4: djnz Acc,t2l4
mov A,#0ffh
t2l5: djnz Acc,t2l5
mov A,#0ffh
t2l6: djnz Acc,t2l6
sjmp task2
delay: djnz Acc,delay
ret
;========================================
task_switch:
push DPH
push DPL
push Acc
mov A,state
jz ts_go
ljmp rev
ts_go: pop Acc ; Acc
mov DPTR,#t1inf
movx @DPTR,A
pop Acc ; DPL
inc DPTR
movx @DPTR,A
pop Acc ; DPH
inc DPTR
movx @DPTR,A
inc DPTR ; B
mov A,B
movx @DPTR,A
inc DPTR ; PSW
mov A,PSW
movx @DPTR,A
pop Acc ; PC
inc DPTR
movx @DPTR,A
pop Acc
inc DPTR
movx @DPTR,A
inc DPTR ; SP
mov A,SP
movx @DPTR,A
inc DPTR ; adr: 00h
mov A,R0
movx @DPTR,A
mov B,#6fh ; adr: 01h-6fh
mov R0,#01h
ts_l1: inc DPTR
mov A,@R0
movx @DPTR,A
inc R0
djnz B,ts_l1
;------------
mov DPTR,#(t2inf_end-1)
mov B,#6fh ; adr: 01-6f
mov R0,#6fh
ts_l2: movx A,@DPTR
mov @R0,A
dec R0
lcall dec_dptr
djnz B,ts_l2
movx A,@DPTR
mov R0,A ; adr: 00
lcall dec_dptr ; SP
movx A,@DPTR
mov SP,A
lcall dec_dptr ; PC
movx A,@DPTR
push Acc
lcall dec_dptr
movx A,@DPTR
push Acc
lcall dec_dptr ; PSW
movx A,@DPTR
mov PSW,A
lcall dec_dptr ; B
movx A,@DPTR
mov B,A
lcall dec_dptr ; DPH
movx A,@DPTR
push Acc
lcall dec_dptr ; DPL
movx A,@DPTR
push Acc
lcall dec_dptr ; Acc
movx A,@DPTR
pop DPL
pop DPH
mov state,#0ffh
mov TL0,#0
mov TH0,#0ffh
reti
;-=-=-=-=-=-=-=-=-
rev:
pop Acc ; Acc
mov DPTR,#t2inf
movx @DPTR,A
pop Acc ; DPL
inc DPTR
movx @DPTR,A
pop Acc ; DPH
inc DPTR
movx @DPTR,A
inc DPTR ; B
mov A,B
movx @DPTR,A
inc DPTR ; PSW
mov A,PSW
movx @DPTR,A
pop Acc ; PC
inc DPTR
movx @DPTR,A
pop Acc
inc DPTR
movx @DPTR,A
inc DPTR ; SP
mov A,SP
movx @DPTR,A
inc DPTR ; adr: 00h
mov A,R0
movx @DPTR,A
mov B,#6fh ; adr: 01h-6fh
mov R0,#01h
ts_l3: inc DPTR
mov A,@R0
movx @DPTR,A
inc R0
djnz B,ts_l3
;------------
mov DPTR,#(t1inf_end-1)
mov B,#6fh ; adr: 01-6f
mov R0,#6fh
ts_l4: movx A,@DPTR
mov @R0,A
dec R0
lcall dec_dptr
djnz B,ts_l4
movx A,@DPTR
mov R0,A ; adr: 00
lcall dec_dptr ; SP
movx A,@DPTR
mov SP,A
lcall dec_dptr ; PC
movx A,@DPTR
push Acc
lcall dec_dptr
movx A,@DPTR
push Acc
lcall dec_dptr ; PSW
movx A,@DPTR
mov PSW,A
lcall dec_dptr ; B
movx A,@DPTR
mov B,A
lcall dec_dptr ; DPH
movx A,@DPTR
push Acc
lcall dec_dptr ; DPL
movx A,@DPTR
push Acc
lcall dec_dptr ; Acc
movx A,@DPTR
pop DPL
pop DPH
mov state,#00h
mov TL0,#0
mov TH0,#0ffh
reti
;========================================
dec_dptr:
xch A,DPL
dec A
cjne A,#0ffh,decdp_lab1
dec DPH
decdp_lab1:
xch A,DPL
ret
;========================================
org 9000h
t1inf:
db 00 ; Acc
db 00 ; DPL
db 00 ; DPH
db 00 ; B
db 00 ; PSW
dw 00 ; PC
db 07 ; SP
db 0,0,0,0,0,0,0,0 ; R0-R7 (from adress: 00h)
db 0,0,0,0,0,0,0,0 ; Stack
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0 ; (to adress: 6fh)
t1inf_end:
t2inf:
db 00 ; Acc
db 00 ; DPL
db 00 ; DPH
db 00 ; B
db 00 ; PSW
dw task2 ; PC
db 07 ; SP
db 0,0,0,0,0,0,0,0 ; R0-R7 (from adress: 00h)
db 0,0,0,0,0,0,0,0 ; Stack
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0 ; (to adress: 6fh)
t2inf_end:
END

4
examples/p1.hex Normal file
View File

@@ -0,0 +1,4 @@
:100000007401120016F59023B480F7120016F590D3
:1000100003B401F780ECC0E0C0F0748075F0FFD548
:0A002000F0FDD5E0F7D0F0D0E022AB
:00000001FF

4
examples/test.hex Normal file
View File

@@ -0,0 +1,4 @@
:10000000020010544F4D454B53414C555441542020
:100010007580217580217580217580217580210270
:020020000010CE
:00000001FF