2D-Studio/INTERFACE/FACE.ASM
2025-07-11 01:54:35 +10:00

388 lines
12 KiB
NASM

INTA EQU #80
; ORG 0
JP NULL_0
;INT BIOS
BLOCK 8-$,#FF
PUSH AF
LD A,#00
OUT (#7C),A
POP AF
RET
;INT DOS
BLOCK #10-$,#FF
JP NULL_0
;INT DISK
BLOCK #18-$,#FF
JP NULL_0
BLOCK #20-$,#FF
JP RST_20
BLOCK #28-$,#FF
JP NULL_0
;INT MOUSE
BLOCK #30-$,#FF
JP NULL_0
;INTERRUPT
BLOCK #38-$,#FF
A0038 JP RST_38
BLOCK #100-$,#FF
JP INIT
JP DLGinit
JP GETPARM
JP POPUP
JP RECTAN
JP BPUSH
JP BPOP
JP POINT
JP HZ2LINE
JP HRUBBER
JP VRUBBER
JP PLACE
JP CHARS
JP OPTIMIZ
JP SAVERG
JP RESTRG
JP CONST
JP DESTR
JP LCONST
JP LDESTR
JP LOBJECT
JP WAITMSG
JP INTMOUS
JP INTON
JP INTOFF
JP LST_INI
JP LST_CLR
JP SBV_WRK
JP EDITBOX
JP SBODY
JP SBMAX
JP SBWIN
JP SBVAL
JP POSSX
JP POSSY
JP RSBMAX
JP RSBWIN
JP RSBVAL
JP RPOSSX
JP RPOSSY
JP PCHARX
JP DLGopen
JP DLGclos
JP XFRAME
JP HBAR
JP SBH_WRK
JP SBLEN
JP RSBLEN
JP SBHGT
JP RSBHGT
JP INITSPR
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
JP NONE
NONE SCF
RET
RST_38 ;MAIN INTERUPT
EI
RET
NULL_0 SCF
RET
RST_20 PUSH HL
PUSH DE
LD HL,4
ADD HL,SP
LD E,(HL)
INC (HL)
INC HL
LD D,(HL)
JP NZ,RST401
INC (HL)
RST401 EX DE,HL
LD L,(HL)
LD H,ADRST20/256
LD E,(HL)
INC H
LD D,(HL)
EX DE,HL
POP DE
EX (SP),HL
RET
I500 SCF
RET
USERini LD A,2
SCF
RET
SBODY LD (BODY),A
RET
SBMAX LD (SB_MAX),HL
RET
SBWIN LD (SB_WIN),HL
RET
SBVAL LD (SB_VAL),HL
RET
POSSX LD (POSS_X),HL
RET
POSSY LD (POSS_Y),HL
RET
RSBMAX LD HL,(SB_MAX)
RET
RSBWIN LD HL,(SB_WIN)
RET
RSBVAL LD HL,(SB_VAL)
RET
SBLEN LD (SB_LEN),HL
RET
RSBLEN LD HL,(SB_LEN)
RET
SBHGT LD (SB_HGT),HL
RET
RSBHGT LD HL,(SB_HGT)
RET
RPOSSX LD HL,(POSS_X)
RET
RPOSSY LD HL,(POSS_Y)
RET
INITSPR LD (BSPRADR+1),HL
RET
INCLUDE "WINDOW-H.asm"
INCLUDE "DLG.ASM"
INCLUDE "INTMOUSE.ASM"
INCLUDE "LOBJECT.ASM"
ALIGN 256
; ENT
; ORG $/256+1*256
; DISP $-#8000
FONTSIZ ;DS 32,6
DB 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
DB 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
; ! " # $ % & ' ( ) * + , - . /
DB 6,3,5,6,6,7,7,3,4,4,6,6,4,6,3,6
; 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
DB 6,4,6,6,6,6,6,6,6,6,3,4,5,7,5,6
; @ A B C D E F G H I J K L M N O
DB 6,6,6,6,6,6,6,6,6,4,5,6,6,6,6,6
; P Q R S T U V W X Y Z [ \ ] ^ _
DB 6,6,6,6,6,6,6,6,6,6,6,4,6,4,5,6
; ` a b c d e f g h i j k l m n o
DB 3,6,6,6,6,6,5,6,6,4,5,5,4,6,6,6
; p q r s t u v w x y z { | } ~
DB 6,6,6,6,5,6,6,6,6,6,6,4,3,4,6,6
; A B V G D E J Z I J K L M N O P
DB 6,6,6,6,7,6,6,6,6,6,6,6,6,6,6,6
; R S T U F H C h W W X Y X E U Q
DB 6,6,6,6,6,6,6,6,6,6,6,7,6,6,7,6
; a b v g d e j z i j k l m n o p
DB 6,6,6,6,7,6,6,6,6,6,6,6,6,6,6,6
; DS 48,6
DB 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
DB 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
DB 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
; r s t u f h c h w w x y x e u q
DB 6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6
DB 6,6,6,6,6,6,6,6,5,6,6,6,5,5,6,1
FONTER ;INCBIN "IFFWIN2.BIN"
; Data block size: 2048
DB #00,#70,#70,#00,#00,#00,#00,#00,#F8,#00,#F8,#38,#70,#38,#78,#20
DB #40,#08,#20,#50,#78,#70,#00,#20,#20,#20,#00,#00,#00,#00,#00,#00
DB #00,#40,#50,#50,#20,#C8,#20,#C0,#20,#40,#48,#20,#00,#00,#00,#08
DB #70,#40,#70,#70,#10,#F8,#70,#F8,#70,#70,#00,#00,#30,#00,#C0,#70
DB #78,#70,#F0,#70,#E0,#F8,#F8,#70,#88,#E0,#10,#90,#80,#88,#88,#70
DB #F0,#70,#F0,#70,#F8,#88,#88,#88,#88,#88,#F8,#E0,#80,#E0,#20,#00
DB #C0,#00,#80,#00,#08,#00,#30,#00,#80,#40,#10,#80,#C0,#00,#00,#00
DB #00,#00,#00,#00,#40,#00,#00,#00,#00,#00,#00,#60,#40,#C0,#68,#00
DB #38,#F0,#F0,#F8,#38,#F8,#A8,#70,#88,#A8,#90,#38,#88,#88,#70,#F8
DB #F0,#70,#F8,#88,#70,#88,#88,#88,#A8,#A8,#C0,#84,#80,#F0,#98,#78
DB #00,#78,#00,#00,#00,#00,#00,#00,#00,#20,#00,#00,#00,#00,#00,#00
DB #88,#A8,#64,#20,#20,#20,#50,#00,#00,#50,#50,#00,#50,#50,#20,#00
DB #20,#20,#00,#20,#00,#20,#20,#50,#50,#00,#50,#00,#50,#00,#50,#20
DB #50,#00,#00,#50,#20,#00,#00,#50,#20,#20,#00,#FC,#00,#E0,#1C,#FC
DB #00,#00,#00,#00,#20,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #50,#50,#00,#00,#00,#20,#00,#00,#00,#00,#00,#1C,#A0,#E0,#00,#80
DB #00,#88,#F8,#50,#20,#70,#20,#00,#F8,#20,#D8,#18,#88,#28,#48,#A8
DB #60,#18,#70,#50,#A8,#88,#00,#70,#70,#20,#20,#20,#00,#00,#00,#00
DB #00,#40,#50,#F8,#78,#D8,#50,#40,#40,#20,#30,#20,#00,#00,#00,#18
DB #88,#C0,#88,#88,#30,#80,#80,#08,#88,#88,#40,#20,#60,#F8,#60,#88
DB #94,#88,#88,#88,#90,#80,#80,#88,#88,#40,#10,#A0,#80,#D8,#C8,#88
DB #88,#88,#88,#80,#20,#88,#88,#88,#50,#50,#10,#80,#C0,#20,#50,#00
DB #80,#70,#80,#70,#08,#70,#40,#70,#80,#00,#00,#90,#40,#D0,#B0,#70
DB #F0,#78,#B0,#78,#E0,#88,#88,#88,#88,#88,#F8,#40,#40,#40,#B0,#30
DB #48,#80,#88,#80,#48,#80,#A8,#88,#88,#A8,#A0,#48,#D8,#88,#88,#88
DB #88,#88,#20,#88,#A8,#50,#88,#88,#A8,#A8,#40,#84,#80,#08,#A4,#88
DB #70,#80,#F0,#F8,#38,#70,#A8,#70,#88,#A8,#88,#38,#88,#88,#70,#F8
DB #20,#54,#98,#20,#20,#20,#50,#00,#00,#50,#50,#00,#50,#50,#20,#00
DB #20,#20,#00,#20,#00,#20,#20,#50,#50,#00,#50,#00,#50,#00,#50,#20
DB #50,#00,#00,#50,#20,#00,#00,#50,#20,#20,#00,#FC,#00,#E0,#1C,#FC
DB #F0,#70,#F8,#88,#70,#88,#88,#88,#A8,#A8,#C0,#88,#80,#F0,#98,#78
DB #F8,#70,#60,#18,#10,#20,#20,#68,#00,#00,#00,#10,#50,#10,#00,#80
DB #00,#D8,#A8,#F8,#70,#20,#70,#20,#D8,#50,#A8,#28,#88,#20,#78,#70
DB #70,#38,#F8,#50,#A8,#60,#00,#F8,#F8,#20,#30,#60,#80,#50,#20,#F8
DB #00,#40,#00,#50,#A0,#30,#20,#80,#40,#20,#FC,#F8,#00,#F8,#00,#30
DB #98,#40,#08,#30,#50,#F0,#F0,#10,#70,#88,#00,#00,#C0,#00,#30,#10
DB #AC,#88,#F0,#80,#88,#F0,#F0,#80,#F8,#40,#10,#C0,#80,#A8,#A8,#88
DB #88,#88,#88,#70,#20,#88,#88,#88,#20,#20,#20,#80,#60,#20,#88,#00
DB #40,#08,#F0,#88,#78,#88,#E0,#88,#F0,#C0,#10,#A0,#40,#A8,#C8,#88
DB #88,#88,#C8,#80,#40,#88,#88,#A8,#50,#88,#10,#80,#00,#20,#00,#48
DB #88,#F0,#F0,#80,#48,#F0,#70,#30,#98,#98,#C0,#48,#A8,#F8,#88,#88
DB #88,#80,#20,#78,#A8,#20,#88,#88,#A8,#A8,#70,#E4,#F0,#78,#E4,#88
DB #08,#70,#88,#80,#48,#88,#A8,#88,#98,#98,#90,#48,#D8,#88,#88,#88
DB #88,#A8,#64,#20,#20,#E0,#50,#00,#E0,#D0,#50,#F0,#D0,#50,#E0,#00
DB #20,#20,#00,#20,#00,#20,#3C,#50,#5C,#7C,#DC,#FC,#5C,#FC,#DC,#FC
DB #50,#FC,#00,#50,#3C,#3C,#00,#50,#FC,#20,#00,#FC,#00,#E0,#1C,#FC
DB #88,#88,#20,#88,#A8,#50,#88,#88,#A8,#A8,#70,#C8,#F0,#08,#A4,#88
DB #80,#88,#30,#30,#28,#20,#00,#B0,#20,#00,#00,#10,#50,#60,#00,#80
DB #00,#88,#F8,#F8,#F8,#F8,#F8,#70,#88,#88,#70,#70,#88,#20,#48,#D8
DB #78,#78,#20,#50,#68,#50,#00,#20,#20,#20,#F8,#F8,#80,#F8,#70,#70
DB #00,#40,#00,#50,#70,#60,#58,#00,#40,#20,#30,#20,#00,#00,#00,#60
DB #A8,#40,#70,#08,#90,#08,#88,#20,#88,#78,#00,#00,#60,#F8,#60,#20
DB #BC,#F8,#88,#80,#88,#80,#80,#98,#88,#40,#10,#A0,#80,#88,#98,#88
DB #F0,#A8,#F0,#08,#20,#88,#88,#A8,#20,#20,#40,#80,#30,#20,#00,#00
DB #00,#78,#88,#80,#88,#F0,#40,#88,#88,#40,#10,#C0,#40,#A8,#88,#88
DB #88,#88,#80,#70,#40,#88,#50,#A8,#20,#78,#20,#80,#40,#20,#00,#84
DB #F8,#88,#88,#80,#48,#80,#A8,#08,#A8,#A8,#A0,#48,#88,#88,#88,#88
DB #F0,#80,#20,#08,#A8,#20,#88,#78,#A8,#A8,#48,#94,#88,#08,#A4,#78
DB #78,#88,#F0,#80,#48,#F0,#70,#30,#A8,#A8,#E0,#48,#A8,#F8,#88,#88
DB #20,#54,#98,#20,#20,#20,#50,#00,#20,#10,#50,#10,#10,#50,#20,#00
DB #20,#20,#00,#20,#00,#20,#20,#50,#40,#40,#00,#00,#40,#00,#00,#00
DB #50,#00,#00,#50,#20,#20,#00,#50,#20,#20,#00,#FC,#00,#E0,#1C,#FC
DB #88,#80,#20,#78,#A8,#20,#88,#78,#A8,#A8,#48,#A8,#88,#78,#E4,#88
DB #F0,#F0,#18,#60,#20,#20,#F8,#00,#50,#00,#00,#10,#50,#80,#00,#80
DB #00,#F8,#88,#F8,#F8,#A8,#F8,#70,#88,#88,#70,#88,#70,#20,#48,#D8
DB #70,#38,#F8,#00,#28,#50,#00,#F8,#20,#F8,#30,#60,#80,#50,#F8,#20
DB #00,#00,#00,#F8,#28,#D8,#90,#00,#40,#20,#48,#20,#60,#00,#C0,#C0
DB #C8,#40,#80,#88,#F8,#88,#88,#20,#88,#08,#40,#20,#30,#00,#C0,#00
DB #80,#88,#88,#88,#90,#80,#80,#88,#88,#40,#90,#90,#80,#88,#88,#88
DB #80,#98,#90,#88,#20,#88,#50,#F8,#50,#20,#80,#80,#18,#20,#00,#00
DB #00,#88,#88,#80,#88,#80,#40,#78,#88,#40,#10,#A0,#40,#A8,#88,#88
DB #F0,#78,#80,#08,#40,#88,#50,#A8,#50,#08,#40,#40,#40,#40,#00,#84
DB #88,#88,#88,#80,#48,#80,#A8,#88,#C8,#C8,#90,#48,#88,#88,#88,#88
DB #80,#88,#20,#88,#70,#50,#88,#08,#A8,#A8,#48,#94,#88,#08,#A4,#48
DB #88,#88,#88,#80,#48,#80,#A8,#88,#C8,#C8,#90,#48,#88,#88,#88,#88
DB #88,#A8,#64,#20,#E0,#E0,#D0,#F0,#E0,#D0,#50,#D0,#F0,#F0,#E0,#E0
DB #3C,#FC,#FC,#3C,#FC,#FC,#3C,#5C,#7C,#5C,#FC,#DC,#5C,#FC,#DC,#FC
DB #FC,#FC,#FC,#7C,#3C,#3C,#7C,#FC,#FC,#E0,#3C,#FC,#FC,#E0,#1C,#00
DB #F0,#88,#20,#08,#70,#50,#88,#08,#A8,#A8,#48,#A8,#88,#08,#A4,#78
DB #80,#80,#30,#30,#20,#20,#00,#68,#50,#30,#00,#D0,#50,#F0,#78,#80
DB #00,#A8,#D8,#70,#70,#20,#20,#20,#D8,#50,#A8,#88,#20,#E0,#58,#70
DB #60,#18,#70,#50,#28,#30,#78,#70,#20,#70,#20,#20,#F8,#00,#00,#00
DB #00,#40,#00,#50,#F0,#98,#68,#00,#20,#40,#00,#00,#60,#00,#C0,#80
DB #70,#E0,#F8,#70,#10,#70,#70,#20,#70,#70,#00,#40,#00,#00,#00,#20
DB #78,#88,#F0,#70,#E0,#F8,#80,#78,#88,#E0,#60,#88,#F8,#88,#88,#70
DB #80,#78,#88,#70,#20,#70,#20,#50,#88,#20,#F8,#E0,#08,#E0,#00,#00
DB #00,#78,#F0,#78,#78,#78,#E0,#08,#88,#E0,#90,#90,#E0,#A8,#88,#70
DB #80,#08,#80,#F0,#30,#70,#20,#50,#88,#F0,#F8,#60,#40,#C0,#00,#FC
DB #88,#F0,#F0,#80,#FC,#F8,#A8,#70,#88,#88,#88,#88,#88,#88,#70,#88
DB #80,#70,#20,#70,#20,#88,#FC,#08,#F8,#FC,#70,#E4,#F0,#F0,#98,#88
DB #78,#70,#F0,#80,#FC,#78,#A8,#70,#88,#88,#88,#C8,#88,#88,#70,#88
DB #20,#54,#98,#20,#20,#20,#50,#50,#20,#50,#50,#50,#00,#00,#00,#20
DB #00,#00,#20,#20,#00,#20,#20,#50,#00,#50,#00,#50,#50,#00,#50,#00
DB #00,#20,#50,#00,#00,#20,#50,#50,#20,#00,#20,#FC,#FC,#E0,#1C,#00
DB #80,#70,#20,#70,#20,#88,#FC,#08,#F8,#FC,#70,#C8,#F0,#F0,#98,#88
DB #F8,#78,#60,#18,#20,#A0,#20,#B0,#20,#30,#30,#70,#00,#00,#78,#80
DB #00,#88,#F8,#20,#20,#70,#70,#00,#F8,#20,#D8,#88,#70,#C0,#D8,#A8
DB #40,#08,#20,#00,#28,#88,#78,#20,#20,#20,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#20,#00,#00,#00,#00,#00,#00,#00,#C0,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#70,#00,#00,#60,#00,#00,#00,#00,#00
DB #80,#08,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#84,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#04,#00,#00,#04,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#84,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #88,#A8,#64,#20,#20,#20,#50,#50,#20,#50,#50,#50,#00,#00,#00,#20
DB #00,#00,#20,#20,#00,#20,#20,#50,#00,#50,#00,#50,#50,#00,#50,#00
DB #00,#20,#50,#00,#00,#20,#50,#50,#20,#00,#20,#FC,#FC,#E0,#1C,#00
DB #80,#00,#00,#00,#20,#00,#04,#00,#00,#04,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#20,#40,#00,#00,#00,#00,#00,#30,#00,#00,#78,#80
DB #00,#70,#70,#00,#00,#00,#00,#00,#F8,#00,#F8,#70,#20,#00,#C0,#20
DB #00,#00,#00,#00,#00,#70,#00,#F8,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#FC
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #20,#54,#98,#20,#20,#20,#50,#50,#20,#50,#50,#50,#00,#00,#00,#20
DB #00,#00,#20,#20,#00,#20,#20,#50,#00,#50,#00,#50,#50,#00,#50,#00
DB #00,#20,#50,#00,#00,#20,#50,#50,#20,#00,#20,#FC,#FC,#E0,#1C,#00
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
DB #00,#00,#FC,#FC,#20,#00,#00,#00,#00,#00,#00,#10,#00,#00,#78,#80
; INCLUDE "keyinter.asm"
ADRST20;
DB I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF
DB I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF,I500&#FF
DS #F0
DB I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256
DB I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256
DS #F0
;