added project descriptions

master
Your Name 5 years ago
parent 04bd31ca35
commit fb90122c49

@ -14,30 +14,29 @@ compile :
image : compile
sudo dd if=/dev/zero of=disk.img bs=1024 count=720
#cat boot.bin program.bin > exe.bin
sudo dd if=boot.bin of=disk.img bs=512 count=1 conv=notrunc
sudo dd if=program.bin of=disk.img bs=512 seek=1 count=4 conv=notrunc
sudo dd if=software.bin of=disk.img bs=512 seek=5 count=1 conv=notrunc
sudo dd if=food.bin of=disk.img bs=512 seek=6 count=1 conv=notrunc
sudo dd if=beep.bin of=disk.img bs=512 seek=7 count=1 conv=notrunc
sudo dd if=voice.bin of=disk.img bs=512 seek=8 count=1 conv=notrunc
sudo dd if=silence.bin of=disk.img bs=512 seek=9 count=1 conv=notrunc
sudo dd if=light.bin of=disk.img bs=512 seek=10 count=1 conv=notrunc
sudo dd if=software.bin of=disk.img bs=512 seek=5 count=2 conv=notrunc
sudo dd if=food.bin of=disk.img bs=512 seek=7 count=2 conv=notrunc
sudo dd if=voice.bin of=disk.img bs=512 seek=9 count=2 conv=notrunc
sudo dd if=beep.bin of=disk.img bs=512 seek=11 count=2 conv=notrunc
sudo dd if=silence.bin of=disk.img bs=512 seek=13 count=2 conv=notrunc
sudo dd if=light.bin of=disk.img bs=512 seek=15 count=2 conv=notrunc
flashusb : image
sudo dd if=boot.bin of=/dev/sdb bs=512 count=1
sudo dd if=program.bin of=/dev/sdb bs=512 seek=1 count=4
sudo dd if=software.bin of=/dev/sdb bs=512 seek=5 count=1
sudo dd if=food.bin of=/dev/sdb bs=512 seek=6 count=1
sudo dd if=beep.bin of=/dev/sdb bs=512 seek=7 count=1
sudo dd if=voice.bin of=/dev/sdb bs=512 seek=8 count=1
sudo dd if=silence.bin of=/dev/sdb bs=512 seek=9 count=1
sudo dd if=light.bin of=/dev/sdb bs=512 seek=10 count=1
# sudo dd if=exe.bin of=/dev/sdb bs=512 count=4
sudo dd if=software.bin of=/dev/sdb bs=512 seek=5 count=2
sudo dd if=food.bin of=/dev/sdb bs=512 seek=7 count=2
sudo dd if=voice.bin of=/dev/sdb bs=512 seek=9 count=2
sudo dd if=beep.bin of=/dev/sdb bs=512 seek=11 count=2
sudo dd if=silence.bin of=/dev/sdb bs=512 seek=13 count=2
sudo dd if=light.bin of=/dev/sdb bs=512 seek=15 count=2
run : image
setxkbmap -layout us -model us
qemu-system-x86_64 disk.img -soundhw pcspk
clean :

@ -1,4 +1,4 @@
[org 0x4000]
[org 0x5000]
start:
mov [bootdev], dl
@ -6,7 +6,7 @@ start:
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 4Fh ; YellowOnBlue
mov bh, 2Fh ; YellowOnBlue
int 10H ; execute interrupt
mov al, 182 ; meaning that we're about to load
@ -20,12 +20,13 @@ start:
in al, 61h
or al, 00000011b
out 61h, al ; Send the new value
; mov bx, 200 ; Pause for duration of note.
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
in al, 61h ; Turn off note (get value from
; port 61h).
@ -33,6 +34,164 @@ start:
out 61h, al ; Send new value.
mov ah, 02h ;top bar setting the position and then write title $
mov bh, 0h
mov dh, 0h
mov dl, 20h
int 10h
mov si, title
call print
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, 17h
mov dl, 2h
int 10h
mov si, menuexit
call print
main:
mov bx, 1
mov ah, 06h ;draw rect on background
mov cx, 060Fh
mov dx, 103Bh
mov bh, 3Fh
int 10h
push dx
push cx
mov si, description
call printinrect
pop cx
pop dx
push dx
push cx
call drawshadow
jmp waitforkey
pop cx
pop dx
drawshadow:
push cx
push dx
mov al, dl
mov ah, ch
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
pop dx
pop cx
mov al, cl
mov ah, dh
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
ret
printinrect:
mov ax, 0
mov [writtenchars], ax
push cx
mov bx, dx
push bx
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, ch
mov dl, cl
int 10h
.loop:
mov ax, [writtenchars]
inc ax
mov [writtenchars], ax
lodsb ; load next char
mov bh, 0
mov ah, 0x03
int 10h ;read cursor position
push dx
pop dx
pop bx
cmp dh, bh ;comp for scroll
jg .stop
push bx
push dx
or al,al
jz .exit
mov bx, [writtenchars]
cmp bx, [scrollchars]
jg .writechar
.continue:
pop dx
pop bx
cmp dl, bl ;if caracter over width of rect
je .newline ; go to next line
push bx
jmp .loop
.writechar:
mov ah, 0x0e
mov bh, 0x00
mov cx, 0x01
int 10h ;write char
jmp .continue
.stop:
pop cx
ret
.exit:
pop dx
pop bx
pop cx
ret
.newline:
pop cx
push bx
mov dl, cl ;set column
inc dh ;increment row by one, works!
mov ah, 02h ;sets cursor
mov bh, 0h ;page number 0 constant
int 10h
pop bx
push cx
push bx
jmp .loop
print:
lodsb
or al,al
jz .exit
mov ah,0x0e
int 10h
jmp print
.exit:
ret
waitforkey:
mov ah, 0x00
int 0x16
@ -49,4 +208,14 @@ exit:
jmp 0x0:0x1000
bootdev db 0x80 ; Boot device number
description db "The Smart Speaker Theatre questions the default mode of smart speakers as digital assistants, through an intervention that involves kidnapping a Google Home and having it interrogated by a team of rogue speakers and by you, their user."
scroll db 1
scrollchars dw 0
writtenchars dw 0
menuhelp db "F1 Help", 0
menuselect db " ",0x18,"/",0x19," Select Item",0
menuexit db 0x0D,0x0A," ESC Exit", 0
menuenter db " Enter Select",0
title db "UPSETTING SETTINGS",0

Binary file not shown.

233
db

@ -0,0 +1,233 @@
Disk /dev/loop0: 4.7 MiB, 4927488 bytes, 9624 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop1: 3.7 MiB, 3846144 bytes, 7512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop2: 140.7 MiB, 147496960 bytes, 288080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop3: 174 MiB, 182419456 bytes, 356288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop4: 53.7 MiB, 56315904 bytes, 109992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop5: 180.2 MiB, 188928000 bytes, 369000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop6: 140.7 MiB, 147496960 bytes, 288080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop7: 53.7 MiB, 56328192 bytes, 110016 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: HGST HTS725050A7
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xe2dc99ec
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
/dev/sda2 1026048 490772479 489746432 233.5G 7 HPFS/NTFS/exFAT
/dev/sda3 490774526 976771071 485996546 231.8G 5 Extended
/dev/sda5 490774528 960620543 469846016 224G 83 Linux
/dev/sda6 960622592 976771071 16148480 7.7G 82 Linux swap / Solaris
Disk /dev/loop8: 1008 KiB, 1032192 bytes, 2016 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop9: 3.7 MiB, 3821568 bytes, 7464 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop10: 3.7 MiB, 3821568 bytes, 7464 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop11: 4 MiB, 4214784 bytes, 8232 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop12: 14.8 MiB, 15458304 bytes, 30192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop13: 34.8 MiB, 36503552 bytes, 71296 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop14: 35.3 MiB, 37027840 bytes, 72320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop15: 174.5 MiB, 182951936 bytes, 357328 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop16: 171.8 MiB, 180133888 bytes, 351824 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop17: 34.6 MiB, 36216832 bytes, 70736 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop18: 174.3 MiB, 182808576 bytes, 357048 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop19: 14.5 MiB, 15208448 bytes, 29704 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop20: 89.4 MiB, 93720576 bytes, 183048 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop21: 89.3 MiB, 93581312 bytes, 182776 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop22: 88.4 MiB, 92733440 bytes, 181120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop23: 4.7 MiB, 4927488 bytes, 9624 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop24: 4 MiB, 4218880 bytes, 8240 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop25: 4.7 MiB, 4927488 bytes, 9624 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop26: 130 MiB, 136286208 bytes, 266184 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop27: 53.7 MiB, 56315904 bytes, 109992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop28: 151 MiB, 158363648 bytes, 309304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop29: 14.8 MiB, 15458304 bytes, 30192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop30: 140.7 MiB, 147496960 bytes, 288080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop31: 1008 KiB, 1032192 bytes, 2016 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop32: 151 MiB, 158347264 bytes, 309272 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop33: 2.3 MiB, 2355200 bytes, 4600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop34: 174.3 MiB, 182808576 bytes, 357048 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/cryptswap1: 7.7 GiB, 8267497472 bytes, 16147456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Binary file not shown.

@ -28,19 +28,170 @@ mov cx, 1
mov dx, 200
int 15h
;.pause1:
; mov cx, 65535
;.pause2:
; dec cx
; jne .pause2
; dec bx
; jne .pause1
in al, 61h ; Turn off note (get value from
; port 61h).
and al, 11111100b ; Reset bits 1 and 0.
out 61h, al ; Send new value.
mov ah, 02h ;top bar setting the position and then write title $
mov bh, 0h
mov dh, 0h
mov dl, 20h
int 10h
mov si, title
call print
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, 17h
mov dl, 2h
int 10h
mov si, menuexit
call print
main:
mov bx, 1
mov ah, 06h ;draw rect on background
mov cx, 060Fh
mov dx, 103Bh
mov bh, 70h
int 10h
push dx
push cx
mov si, description
call printinrect
pop cx
pop dx
push dx
push cx
call drawshadow
jmp waitforkey
pop cx
pop dx
drawshadow:
push cx
push dx
mov al, dl
mov ah, ch
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
pop dx
pop cx
mov al, cl
mov ah, dh
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
ret
printinrect:
mov ax, 0
mov [writtenchars], ax
push cx
mov bx, dx
push bx
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, ch
mov dl, cl
int 10h
.loop:
mov ax, [writtenchars]
inc ax
mov [writtenchars], ax
lodsb ; load next char
mov bh, 0
mov ah, 0x03
int 10h ;read cursor position
push dx
pop dx
pop bx
cmp dh, bh ;comp for scroll
jg .stop
push bx
push dx
or al,al
jz .exit
mov bx, [writtenchars]
cmp bx, [scrollchars]
jg .writechar
.continue:
pop dx
pop bx
cmp dl, bl ;if caracter over width of rect
je .newline ; go to next line
push bx
jmp .loop
.writechar:
mov ah, 0x0e
mov bh, 0x00
mov cx, 0x01
int 10h ;write char
jmp .continue
.stop:
pop cx
ret
.exit:
pop dx
pop bx
pop cx
ret
.newline:
pop cx
push bx
mov dl, cl ;set column
inc dh ;increment row by one, works!
mov ah, 02h ;sets cursor
mov bh, 0h ;page number 0 constant
int 10h
pop bx
push cx
push bx
jmp .loop
print:
lodsb
or al,al
jz .exit
mov ah,0x0e
int 10h
jmp print
.exit:
ret
waitforkey:
mov ah, 0x00
int 0x16
@ -57,4 +208,14 @@ exit:
jmp 0x0:0x1000
bootdev db 0x80 ; Boot device number
description db "Is it time to eat, or is there no more time to eat? questions the default mode of techno-solutionism through an intervention that subverts the culture of reviews, peering through the lens of food to shed light onto an ideology built on patterns of authoritativeness and bland lifestyle choices."
scroll db 1
scrollchars dw 0
writtenchars dw 0
menuhelp db "F1 Help", 0
menuselect db " ",0x18,"/",0x19," Select Item",0
menuexit db 0x0D,0x0A," ESC Exit", 0
menuenter db " Enter Select",0
title db "UPSETTING SETTINGS",0

Binary file not shown.

@ -6,7 +6,7 @@ start:
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 4Fh ; YellowOnBlue
mov bh, 0Fh ; YellowOnBlue
int 10H ; execute interrupt
mov al, 182 ; meaning that we're about to load
@ -22,61 +22,174 @@ start:
out 61h, al ; Send the new value
; mov bx, 200 ; Pause for duration of note.
mov ah, 06h ; Scroll up function
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 12h ; YellowOnBlue
int 10H ; execute interrupt
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
mov ah, 06h ; Scroll up function
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 2Bh ; YellowOnBlue
int 10H ; execute interrupt
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
mov ah, 06h ; Scroll up function
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 3Fh ; YellowOnBlue
int 10H ; execute interrupt
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
;.pause1:
; mov cx, 65535
;.pause2:
; dec cx
; jne .pause2
; dec bx
; jne .pause1
in al, 61h ; Turn off note (get value from
; port 61h).
and al, 11111100b ; Reset bits 1 and 0.
out 61h, al ; Send new value.
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
mov ah, 02h ;top bar setting the position and then write title $
mov bh, 0h
mov dh, 0h
mov dl, 20h
int 10h
mov si, title
call print
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, 17h
mov dl, 2h
int 10h
mov si, menuexit
call print
main:
mov bx, 1
mov ah, 06h ;draw rect on background
mov cx, 060Fh
mov dx, 103Bh
mov bh, 87h
int 10h
push dx
push cx
mov si, description
call printinrect
pop cx
pop dx
push dx
push cx
call drawshadow
jmp waitforkey
pop cx
pop dx
drawshadow:
push cx
push dx
mov al, dl
mov ah, ch
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 70h
int 10h
pop dx
pop cx
mov al, cl
mov ah, dh
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 70h
int 10h
ret
printinrect:
mov ax, 0
mov [writtenchars], ax
push cx
mov bx, dx
push bx
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, ch
mov dl, cl
int 10h
.loop:
mov ax, [writtenchars]
inc ax
mov [writtenchars], ax
lodsb ; load next char
mov bh, 0
mov ah, 0x03
int 10h ;read cursor position
push dx
pop dx
pop bx
cmp dh, bh ;comp for scroll
jg .stop
push bx
push dx
or al,al
jz .exit
mov bx, [writtenchars]
cmp bx, [scrollchars]
jg .writechar
.continue:
pop dx
pop bx
cmp dl, bl ;if caracter over width of rect
je .newline ; go to next line
push bx
jmp .loop
.writechar:
mov ah, 0x0e
mov bh, 0x00
mov cx, 0x01
int 10h ;write char
jmp .continue
.stop:
pop cx
ret
.exit:
pop dx
pop bx
pop cx
ret
.newline:
pop cx
push bx
mov dl, cl ;set column
inc dh ;increment row by one, works!
mov ah, 02h ;sets cursor
mov bh, 0h ;page number 0 constant
int 10h
pop bx
push cx
push bx
jmp .loop
print:
lodsb
or al,al
jz .exit
mov ah,0x0e
int 10h
jmp print
.exit:
ret
waitforkey:
@ -95,4 +208,14 @@ exit:
jmp 0x0:0x1000
bootdev db 0x80 ; Boot device number
description db "Eigengrau challenges the default mode of rituals in the club space through an intervention that involves a collective experience while creating a transcendental oneness for body and soul through help of light, sound, and space."
scroll db 1
scrollchars dw 0
writtenchars dw 0
menuhelp db "F1 Help", 0
menuselect db " ",0x18,"/",0x19," Select Item",0
menuexit db 0x0D,0x0A," ESC Exit", 0
menuenter db " Enter Select",0
title db "UPSETTING SETTINGS",0

Binary file not shown.

@ -97,7 +97,7 @@ print_projects:
mov ah, 06h ;draw rect on background
mov ch, dh
mov cl, 4h
mov dl, 24h
mov dl, 40h
mov bh, 7Ch
int 10h
jmp .drawstring
@ -106,7 +106,7 @@ print_projects:
mov ah, 06h ;draw rect on background
mov ch, dh
mov cl, 4h
mov dl, 24h
mov dl, 40h
mov bh, 1Eh
int 10h
jmp .drawstring
@ -127,8 +127,12 @@ waitforkey:
int 0x16
cmp ah, 1Fh
je .up
cmp ah, 50h
je .up
cmp ah, 11h
je .down
cmp ah, 48h
je .down
cmp ah, 1Ch
je loadproject
cmp ah, 01h
@ -233,23 +237,23 @@ loadproject:
jmp load
.two
mov bx, 0x3000 ; BX = 0x1000. ES:BX=0x0:0x1000
mov cl, 07 ; Sector to read = 4
mov cl, 08 ; Sector to read = 4
jmp load
.three
mov bx, 0x4000 ; BX = 0x1000. ES:BX=0x0:0x1000
mov cl, 08 ; Sector to read = 4
mov cl, 10 ; Sector to read = 4
jmp load
.four
mov bx, 0x5000 ; BX = 0x1000. ES:BX=0x0:0x1000
mov cl, 09 ; Sector to read = 4
mov cl, 12 ; Sector to read = 4
jmp load
.five
mov bx, 0x6000 ; BX = 0x1000. ES:BX=0x0:0x1000
mov cl, 10 ; Sector to read = 4
mov bx, 0x9000 ; BX = 0x1000. ES:BX=0x0:0x1000
mov cl, 14 ; Sector to read = 4
jmp load
.six
mov bx, 0x7000 ; BX = 0x1000. ES:BX=0x0:0x1000
mov cl, 11 ; Sector to read = 4
mov cl, 16 ; Sector to read = 4
jmp load
@ -265,7 +269,7 @@ load:
mov es, ax ; ES = 0
; ES:BX = starting address to read sector(s) in$
mov ah, 02 ; Int 13h/AH=2 = Read Sectors From Drive;
mov al, 0x01 ; Sectors to read = 1
mov al, 0x02 ; Sectors to read = 1
mov ch, 00 ; CH=Cylinder. Second sector of disk
; is at Cylinder 0 not 1
mov dh, 00 ; Head to read = 0
@ -425,25 +429,25 @@ scroll db 1
scrollchars dw 0
writtenchars dw 0
msg1 db "ARTIST / TITLE",0
msg1 db " ARTIST | TITLE",0
project1 db "Alex / Poetic Software",0
project2 db "Alice / f00d",0
project3 db "Angeliki / Voices", 0
project4 db "Joca / Ghost in the Speaker", 0
project5 db "Tash / Silence making", 0
project6 db "Zalan / Phantasmagoria", 0
project1 db " Alex | Poetic Software",0
project2 db " Alice | Is it time to eat / is there no more time to eat?",0
project3 db " Angeliki | Let's amplify unspeakable things", 0
project4 db " Joca | The Smart Speaker Theatre", 0
project5 db " Tash | Instant Warnet", 0
project6 db " Zalan | Eigengrau", 0
projects dq project1, project2, project3, project4, project5, project6
helptext db "NOT MY DEFAULT arises from the defaults of computers. In every application there are settings predefined by their creators, that most of the times stay untouched by us, as users. It's their default, not ours, but it's our fault when we don't change it. Society is made of similar preset frameworks that we take for granted. The graduation projects engage with these different default modes and intervene in their core structure/source/root. You are invited to become root users, active listeners, smart speakers, conscious food consumers, counter trolls, sensorial spectators!",0
helptext db "The concept behind 'Upsetting settings' arises from the defaults of technology.", 0x0A,"Graduation projects initiated by Alexander Roidl, Alice Strete, Angeliki Diakrousi, Joca van der Horst, Natasha Berting and Zalan Szakacs. The works resulted from a year of research done at the Experimental Publishing (XPUB) master in Fine Art and Design program of the Piet Zwart Institute. XPUB focuses on the acts of making things public and creating publics in the age of post-digital networks. It uses publishing as the inquiry and participation into the technological frameworks, political contexts, and cultural processes through which things are made. This supports an artistic practice where the default modes can be questioned and challenged.",0
menuhelp db "F1 Help", 0
menuselect db " W/S Select Item",0
menuselect db " ",0x18,"/",0x19," Select Item",0
menuexit db 0x0D,0x0A," ESC Exit", 0
menuenter db " Enter Select",0
title db 'NOT MY DEFAULT',0
title db "UPSETTING SETTINGS",0
wolf_error_msg db 'Program not found!',0x0D,0x0A,0
wolf_error_msg1 db 'Press any key to restart..',0

Binary file not shown.

@ -1,4 +1,4 @@
[org 0x6000]
[org 0x9000]
start:
mov [bootdev], dl
@ -6,7 +6,7 @@ start:
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 4Fh ; YellowOnBlue
mov bh, 5Dh ; YellowOnBlue
int 10H ; execute interrupt
mov al, 182 ; meaning that we're about to load
@ -28,19 +28,170 @@ mov cx, 1
mov dx, 200
int 15h
;.pause1:
; mov cx, 65535
;.pause2:
; dec cx
; jne .pause2
; dec bx
; jne .pause1
in al, 61h ; Turn off note (get value from
; port 61h).
and al, 11111100b ; Reset bits 1 and 0.
out 61h, al ; Send new value.
mov ah, 02h ;top bar setting the position and then write title $
mov bh, 0h
mov dh, 0h
mov dl, 20h
int 10h
mov si, title
call print
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, 17h
mov dl, 2h
int 10h
mov si, menuexit
call print
main:
mov bx, 1
mov ah, 06h ;draw rect on background
mov cx, 060Fh
mov dx, 103Bh
mov bh, 70h
int 10h
push dx
push cx
mov si, description
call printinrect
pop cx
pop dx
push dx
push cx
call drawshadow
jmp waitforkey
pop cx
pop dx
drawshadow:
push cx
push dx
mov al, dl
mov ah, ch
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
pop dx
pop cx
mov al, cl
mov ah, dh
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
ret
printinrect:
mov ax, 0
mov [writtenchars], ax
push cx
mov bx, dx
push bx
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, ch
mov dl, cl
int 10h
.loop:
mov ax, [writtenchars]
inc ax
mov [writtenchars], ax
lodsb ; load next char
mov bh, 0
mov ah, 0x03
int 10h ;read cursor position
push dx
pop dx
pop bx
cmp dh, bh ;comp for scroll
jg .stop
push bx
push dx
or al,al
jz .exit
mov bx, [writtenchars]
cmp bx, [scrollchars]
jg .writechar
.continue:
pop dx
pop bx
cmp dl, bl ;if caracter over width of rect
je .newline ; go to next line
push bx
jmp .loop
.writechar:
mov ah, 0x0e
mov bh, 0x00
mov cx, 0x01
int 10h ;write char
jmp .continue
.stop:
pop cx
ret
.exit:
pop dx
pop bx
pop cx
ret
.newline:
pop cx
push bx
mov dl, cl ;set column
inc dh ;increment row by one, works!
mov ah, 02h ;sets cursor
mov bh, 0h ;page number 0 constant
int 10h
pop bx
push cx
push bx
jmp .loop
print:
lodsb
or al,al
jz .exit
mov ah,0x0e
int 10h
jmp print
.exit:
ret
waitforkey:
mov ah, 0x00
int 0x16
@ -57,4 +208,14 @@ exit:
jmp 0x0:0x1000
bootdev db 0x80 ; Boot device number
description db "Instant Warnet confronts the default mode of who is included and who is excluded in contemporary social media spaces through an intervention that uses play and performance to turn the tables on networks of harassment online."
scroll db 1
scrollchars dw 0
writtenchars dw 0
menuhelp db "F1 Help", 0
menuselect db " ",0x18,"/",0x19," Select Item",0
menuexit db 0x0D,0x0A," ESC Exit", 0
menuenter db " Enter Select",0
title db "UPSETTING SETTINGS",0

Binary file not shown.

@ -2,6 +2,13 @@
start:
mov [bootdev], dl
mov ah, 06h ; Scroll up function
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 9Eh ; CHANGE BACKGROUND HERE first back then front
int 10H ; execute interrupt
mov al, 182 ; meaning that we're about to load
out 43h, al ; prepare speaker for output
@ -13,49 +20,183 @@ start:
in al, 61h
or al, 00000011b
out 61h, al ; Send the new value
; mov bx, 200 ; Pause for duration of note.
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
mov al, 0
mov ah, 86h
mov cx, 1
mov dx, 200
int 15h
in al, 61h ; Turn off note (get value from
in al, 61h ; Turn off note (get value from
; port 61h).
and al, 11111100b ; Reset bits 1 and 0.
out 61h, al ; Send new value.
and al, 11111100b ; Reset bits 1 and 0.
out 61h, al ; Send new value.
mov ah, 06h ; Scroll up function
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 9Bh ; YellowOnBlue
int 10H ; execute interrupt
mov ah, 02h ;top bar setting the position and then write title $
mov bh, 0h
mov dh, 0h
mov dl, 20h
int 10h
mov si, title
call print
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, 17h
mov dl, 2h
int 10h
mov si, menuexit
call print
main:
mov bx, 1
mov ah, 06h ;draw rect on background
mov cx, 060Fh
mov dx, 103Bh
mov bh, 70h ;BACKGROUND OF BOX first back then front
int 10h
push dx
push cx
mov si, description
call printinrect
pop cx
pop dx
push dx
push cx
call drawshadow
jmp waitforkey
pop cx
pop dx
drawshadow:
push cx
push dx
mov al, dl
mov ah, ch
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 1Ch ;shadow color
int 10h
pop dx
pop cx
mov al, cl
mov ah, dh
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 1Ch ;shadow color
int 10h
ret
printinrect:
mov ax, 0
mov [writtenchars], ax
push cx
mov bx, dx
push bx
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, ch
mov dl, cl
int 10h
.loop:
mov ax, [writtenchars]
inc ax
mov [writtenchars], ax
lodsb ; load next char
mov bh, 0
mov ah, 0x03
int 10h ;read cursor position
push dx
pop dx
pop bx
cmp dh, bh ;comp for scroll
jg .stop
push bx
push dx
or al,al
jz .exit
mov bx, [writtenchars]
cmp bx, [scrollchars]
jg .writechar
.continue:
pop dx
pop bx
cmp dl, bl ;if caracter over width of rect
je .newline ; go to next line
push bx
jmp .loop
.writechar:
mov ah, 0x0e
mov bh, 0x00
mov cx, 0x01
int 10h ;write char
jmp .continue
.stop:
pop cx
ret
.exit:
pop dx
pop bx
pop cx
ret
.newline:
pop cx
push bx
mov dl, cl ;set column
inc dh ;increment row by one, works!
mov ah, 02h ;sets cursor
mov bh, 0h ;page number 0 constant
int 10h
pop bx
push cx
push bx
jmp .loop
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, 2h
mov dl, 2h
int 10h
mov si, description
call print
jmp waitforkey
print:
lodsb
or al,al
jz .exit
mov ah,0x0e
int 10h
jmp print
.exit:
ret
lodsb
or al,al
jz .exit
mov ah,0x0e
int 10h
jmp print
.exit:
ret
waitforkey:
mov ah, 0x00
int 0x16
cmp ah, 01h
je exit
mov ah, 0x00
int 0x16
cmp ah, 01h
je exit
jmp waitforkey
exit:
@ -66,13 +207,16 @@ exit:
mov dl, [bootdev]
jmp 0x0:0x1000
description db "Poetic Software is a project",0
bootdev db 0x80 ; Boot device number
description db "Poetic Software challenges the default mode of software as a tool where functionality and productivity are predominant through an intervention that involves software as a non-functional, emotional, and cultural object of artistic practice."
scroll db 1
scrollchars dw 0
writtenchars dw 0
menuhelp db "F1 Help", 0
menuselect db " ",0x18,"/",0x19," Select Item",0
menuexit db 0x0D,0x0A," ESC Exit", 0
menuenter db " Enter Select",0
%assign usedMemory ($-$$)
%assign usableMemory (512*16)
%warning [usedMemory/usableMemory] Bytes used
times (512*16)-($-$$) db 0 ;kernel must have size multiple of 512 so le$
title db "UPSETTING SETTINGS",0

Binary file not shown.

@ -1,4 +1,4 @@
[org 0x5000]
[org 0x4000]
start:
mov [bootdev], dl
@ -6,7 +6,7 @@ start:
xor al, al ; Clear entire screen
xor cx, cx ; Upper left corner CH=row, CL=column
mov dx, 184FH ; lower right corner DH=row, DL=column
mov bh, 4Fh ; YellowOnBlue
mov bh, 1Ch ; YellowOnBlue
int 10H ; execute interrupt
mov al, 182 ; meaning that we're about to load
@ -28,19 +28,170 @@ mov cx, 1
mov dx, 200
int 15h
;.pause1:
; mov cx, 65535
;.pause2:
; dec cx
; jne .pause2
; dec bx
; jne .pause1
in al, 61h ; Turn off note (get value from
; port 61h).
and al, 11111100b ; Reset bits 1 and 0.
out 61h, al ; Send new value.
mov ah, 02h ;top bar setting the position and then write title $
mov bh, 0h
mov dh, 0h
mov dl, 20h
int 10h
mov si, title
call print
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, 17h
mov dl, 2h
int 10h
mov si, menuexit
call print
main:
mov bx, 1
mov ah, 06h ;draw rect on background
mov cx, 060Fh
mov dx, 103Bh
mov bh, 70h
int 10h
push dx
push cx
mov si, description
call printinrect
pop cx
pop dx
push dx
push cx
call drawshadow
jmp waitforkey
pop cx
pop dx
drawshadow:
push cx
push dx
mov al, dl
mov ah, ch
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
pop dx
pop cx
mov al, cl
mov ah, dh
inc ah
inc al
mov cx, ax
mov bl, dl
mov bh, dh
inc bl
inc bh
mov dx, bx
mov ah, 06h ;draw shadow
mov bh, 0Ch
int 10h
ret
printinrect:
mov ax, 0
mov [writtenchars], ax
push cx
mov bx, dx
push bx
mov ah, 02h ;sets cursor to top to write
mov bh, 0h
mov dh, ch
mov dl, cl
int 10h
.loop:
mov ax, [writtenchars]
inc ax
mov [writtenchars], ax
lodsb ; load next char
mov bh, 0
mov ah, 0x03
int 10h ;read cursor position
push dx
pop dx
pop bx
cmp dh, bh ;comp for scroll
jg .stop
push bx
push dx
or al,al
jz .exit
mov bx, [writtenchars]
cmp bx, [scrollchars]
jg .writechar
.continue:
pop dx
pop bx
cmp dl, bl ;if caracter over width of rect
je .newline ; go to next line
push bx
jmp .loop
.writechar:
mov ah, 0x0e
mov bh, 0x00
mov cx, 0x01
int 10h ;write char
jmp .continue
.stop:
pop cx
ret
.exit:
pop dx
pop bx
pop cx
ret
.newline:
pop cx
push bx
mov dl, cl ;set column
inc dh ;increment row by one, works!
mov ah, 02h ;sets cursor
mov bh, 0h ;page number 0 constant
int 10h
pop bx
push cx
push bx
jmp .loop
print:
lodsb
or al,al
jz .exit
mov ah,0x0e
int 10h
jmp print
.exit:
ret
waitforkey:
mov ah, 0x00
int 0x16
@ -57,4 +208,14 @@ exit:
jmp 0x0:0x1000
bootdev db 0x80 ; Boot device number
description db "Let's amplify unspeakable things challenges the default mode of authoritative voices, that establish exclusive speech platforms, through an intervention that creates a safe space for excluded voices to be explored, in situated meetings and on an online audio archive."
scroll db 1
scrollchars dw 0
writtenchars dw 0
menuhelp db "F1 Help", 0
menuselect db " ",0x18,"/",0x19," Select Item",0
menuexit db 0x0D,0x0A," ESC Exit", 0
menuenter db " Enter Select",0
title db "UPSETTING SETTINGS",0

Binary file not shown.
Loading…
Cancel
Save